Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ar.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_AR_H_
2#define _DOLPHIN_AR_H_
3
4#include <dolphin/types.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10typedef void (*ARQCallback)(u32 pointerToARQRequest);
11
12struct ARQRequest {
13 /* 0x00 */ struct ARQRequest *next;
14 /* 0x04 */ u32 owner;
15 /* 0x08 */ u32 type;
16 /* 0x0C */ u32 priority;
17 /* 0x10 */ u32 source;
18 /* 0x14 */ u32 dest;
19 /* 0x18 */ u32 length;
21};
22
23#define ARQ_DMA_ALIGNMENT 32
24
25#define ARAM_DIR_MRAM_TO_ARAM 0x00
26#define ARAM_DIR_ARAM_TO_MRAM 0x01
27
28#define ARStartDMARead(mmem, aram, len) \
29 ARStartDMA(ARAM_DIR_ARAM_TO_MRAM, mmem, aram, len)
30#define ARStartDMAWrite(mmem, aram, len) \
31 ARStartDMA(ARAM_DIR_MRAM_TO_ARAM, mmem, aram, len)
32
33typedef struct ARQRequest ARQRequest;
34
35#define ARQ_TYPE_MRAM_TO_ARAM ARAM_DIR_MRAM_TO_ARAM
36#define ARQ_TYPE_ARAM_TO_MRAM ARAM_DIR_ARAM_TO_MRAM
37
38#define ARQ_PRIORITY_LOW 0
39#define ARQ_PRIORITY_HIGH 1
40
41// AR
44void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length);
47BOOL ARCheckInit(void);
48u32 ARInit(u32* stack_index_addr, u32 num_entries);
49void ARReset(void);
50void ARSetSize(void);
52u32 ARGetSize(void);
54void ARClear(u32 flag);
55
56// ARQ
57void ARQInit(void);
58void ARQReset(void);
60void ARQRemoveRequest(ARQRequest* request);
62void ARQFlushQueue(void);
65BOOL ARQCheckInit(void);
66
67#ifdef __cplusplus
68}
69#endif
70
71#endif
static BOOL flag
Definition DEMOAVX.c:20
u32 dest
Definition GXTev.c:8
unsigned int size
Definition __os.h:106
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:10
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
BOOL ARQCheckInit(void)
Definition arq.c:251
void ARClear(u32 flag)
Definition ar.c:154
void ARQRemoveRequest(ARQRequest *request)
Definition arq.c:168
Definition ar.h:12
struct ARQRequest * next
Definition ar.h:13
u32 owner
Definition ar.h:14
ARQCallback callback
Definition ar.h:20
u32 priority
Definition ar.h:16
u32 length
Definition ar.h:19
u32 source
Definition ar.h:17
u32 dest
Definition ar.h:18
u32 type
Definition ar.h:15
int BOOL
Definition types.h:30
unsigned long u32
Definition types.h:9