Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
ar.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_AR_H_
2#define _DOLPHIN_AR_H_
3
4#ifdef __REVOLUTION_SDK__
5#include <revolution/aralt.h>
6#else
7#include <dolphin/types.h>
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef void (*ARQCallback)(u32 pointerToARQRequest);
14
15struct ARQRequest {
16 /* 0x00 */ struct ARQRequest *next;
17 /* 0x04 */ u32 owner;
18 /* 0x08 */ u32 type;
19 /* 0x0C */ u32 priority;
20 /* 0x10 */ u32 source;
21 /* 0x14 */ u32 dest;
22 /* 0x18 */ u32 length;
24};
25
26#define ARQ_DMA_ALIGNMENT 32
27
28#define ARAM_DIR_MRAM_TO_ARAM 0x00
29#define ARAM_DIR_ARAM_TO_MRAM 0x01
30
31#define ARStartDMARead(mmem, aram, len) \
32 ARStartDMA(ARAM_DIR_ARAM_TO_MRAM, mmem, aram, len)
33#define ARStartDMAWrite(mmem, aram, len) \
34 ARStartDMA(ARAM_DIR_MRAM_TO_ARAM, mmem, aram, len)
35
36typedef struct ARQRequest ARQRequest;
37
38#define ARQ_TYPE_MRAM_TO_ARAM ARAM_DIR_MRAM_TO_ARAM
39#define ARQ_TYPE_ARAM_TO_MRAM ARAM_DIR_ARAM_TO_MRAM
40
41#define ARQ_PRIORITY_LOW 0
42#define ARQ_PRIORITY_HIGH 1
43
44// AR
47void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length);
50BOOL ARCheckInit(void);
51u32 ARInit(u32* stack_index_addr, u32 num_entries);
52void ARReset(void);
53void ARSetSize(void);
55u32 ARGetSize(void);
57void ARClear(u32 flag);
58
59// ARQ
60void ARQInit(void);
61void ARQReset(void);
63void ARQRemoveRequest(ARQRequest* request);
65void ARQFlushQueue(void);
68BOOL ARQCheckInit(void);
69
71void __ARClearInterrupt(void);
72
73#ifdef __cplusplus
74}
75#endif
76
77#endif
78#endif
static BOOL flag
Definition DEMOAVX.c:20
u16 __ARGetInterruptStatus(void)
Definition ar.c:201
ARQCallback ARRegisterDMACallback(ARQCallback callback)
Definition ar.c:30
void ARQReset(void)
Definition arq.c:114
u32 ARGetBaseAddress(void)
Definition ar.c:142
u32 ARGetSize(void)
Definition ar.c:146
void ARQPostRequest(ARQRequest *request, u32 owner, u32 type, u32 priority, u32 source, u32 dest, u32 length, ARQCallback callback)
Definition arq.c:118
BOOL ARCheckInit(void)
Definition ar.c:100
void ARQRemoveOwnerRequest(u32 owner)
Definition arq.c:196
u32 ARGetInternalSize(void)
Definition ar.c:150
void ARReset(void)
Definition ar.c:132
void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length)
Definition ar.c:51
void ARQFlushQueue(void)
Definition arq.c:224
void(* ARQCallback)(u32 pointerToARQRequest)
Definition ar.h:13
u32 ARQGetChunkSize(void)
Definition arq.c:247
void ARQSetChunkSize(u32 size)
Definition arq.c:236
u32 ARFree(u32 *length)
Definition ar.c:86
void ARQInit(void)
Definition arq.c:99
u32 ARInit(u32 *stack_index_addr, u32 num_entries)
Definition ar.c:104
u32 ARAlloc(u32 length)
Definition ar.c:68
u32 ARGetDMAStatus(void)
Definition ar.c:41
void ARSetSize(void)
Definition ar.c:136
void __ARClearInterrupt(void)
Definition ar.c:193
BOOL ARQCheckInit(void)
Definition arq.c:251
void ARClear(u32 flag)
Definition ar.c:154
void ARQRemoveRequest(ARQRequest *request)
Definition arq.c:168
void(* ARQCallback)(u32 pointerToARQRequest)
Definition aralt.h:10
u32 dest
Definition GXTev.c:8
unsigned int size
Definition __os.h:106
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
static void callback(u32 param_0)
Definition OSExec.c:308
Definition ar.h:15
u32 owner
Definition ar.h:17
struct ARQRequest * next
Definition ar.h:16
ARQCallback callback
Definition ar.h:23
u32 priority
Definition ar.h:19
u32 length
Definition ar.h:22
u32 source
Definition ar.h:20
u32 dest
Definition ar.h:21
u32 type
Definition ar.h:18