NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
EXICommon.h
1#ifndef RVL_SDK_EXI_COMMON_H
2#define RVL_SDK_EXI_COMMON_H
3#include <types.h>
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8// Forward declarations
9typedef struct OSContext OSContext;
10
11typedef enum {
12 EXI_STATE_DMA_ACCESS = (1 << 0),
13 EXI_STATE_IMM_ACCESS = (1 << 1),
14 EXI_STATE_SELECTED = (1 << 2),
15 EXI_STATE_ATTACHED = (1 << 3),
16 EXI_STATE_LOCKED = (1 << 4),
17
18 EXI_STATE_BUSY = EXI_STATE_DMA_ACCESS | EXI_STATE_IMM_ACCESS
19} EXIState;
20
21typedef enum {
22 EXI_FREQ_1MHZ,
23 EXI_FREQ_2MHZ,
24 EXI_FREQ_4MHZ,
25 EXI_FREQ_8MHZ,
26 EXI_FREQ_16MHZ,
27 EXI_FREQ_32HZ,
28 EXI_MAX_FREQ
29} EXIFreq;
30
31typedef enum { EXI_CHAN_0, EXI_CHAN_1, EXI_CHAN_2, EXI_MAX_CHAN } EXIChannel;
32
33typedef enum { EXI_DEV_EXT, EXI_DEV_INT, EXI_DEV_NET, EXI_MAX_DEV } EXIDev;
34
35typedef enum { EXI_READ, EXI_WRITE, EXI_TYPE_2, EXI_MAX_TYPE } EXIType;
36
37typedef enum {
38 EXI_ID_MEMCARD_59 = 0x00000004,
39 EXI_ID_MEMCARD_123 = 0x00000008,
40 EXI_ID_MEMCARD_251 = 0x00000010,
41 EXI_ID_MEMCARD_507 = 0x00000020,
42 EXI_ID_MEMCARD_1019 = 0x00000040,
43 EXI_ID_MEMCARD_2043 = 0x00000080,
44 EXI_ID_USB_ADAPTER = 0x01010000,
45 EXI_ID_IS_DOL_VIEWER = 0x05070000,
46 EXI_ID_BROADBAND_ADAPTER = 0x04020200,
47 EXI_ID_INVALID = 0xFFFFFFFF
48} EXIDeviceID;
49
50typedef void (*EXICallback)(EXIChannel chan, OSContext* ctx);
51
52extern const u32 __EXIFreq;
53
54static u32 __EXISwap32(u32 val) {
55 return val >> 24 & 0x000000FF | val >> 8 & 0x0000FF00 |
56 val << 8 & 0x00FF0000 | val << 24 & 0xFF000000;
57}
58
59BOOL EXIWriteReg(EXIChannel chan, u32 dev, u32 cmd, const void* buf, s32 len);
60
61#ifdef __cplusplus
62}
63#endif
64#endif