summaryrefslogtreecommitdiff
path: root/include/dolphin/GBAPriv.h
blob: 43d23e162fccf173b1993f82280ff90e058726d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef _DOLPHIN_GBAPRIV
#define _DOLPHIN_GBAPRIV

#include "types.h"

#include <dolphin/gba.h>
#include <dolphin/os.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef void (*GBATransferCallback)(s32 chan);

typedef struct GBASecParams {
  u8 data[0x40];
} GBASecParams;

typedef struct GBA {
  u8 command;
  u8 src[4];
  u8 dst[4];
  u8 _09;
  s8 _0a;
  s8 _0b;
  s32 _0c;
  s32 _10;
  u8* status;
  u8* buffer;
  GBACallback callback;
  s32 result;
  OSThreadQueue thread_queue;
  OSTime delay;
  GBATransferCallback _38;
  s32 _3c;
  s32 palette_color;
  s32 palette_speed;
  u8* program;
  s32 program_length;
  s32 jboot_status;
  GBACallback jboot_callback;
  char data2[0x74u - 0x58u];
  u8* challenge_cipher;
  char data3[0xf8 - 0x78u];
  GBASecParams* param;
  char data4[0x100u - 0xfcu];
} GBA;

extern GBA __GBA[4];
extern BOOL __GBAReset;

void __GBAHandler(s32 chan, u32 sr, OSContext* context);
void __GBASyncCallback(s32 chan, s32 ret);
s32 __GBASync(s32 chan);
OSTime __GBASetDelay(s32 chan, OSTime delay);
s32 __GBATransfer(s32 chan, s32 w1, s32 w2, GBATransferCallback callback);

#ifdef __cplusplus
}
#endif

#endif // _DOLPHIN_GBAPRIV