SSBM Decomp
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#include <dolphin/types.h>
5
6struct ARQRequest;
7
8typedef void (*ARQCallback)(struct ARQRequest *);
9
11{
12 /* 0x00 */ struct ARQRequest *next;
13 /* 0x04 */ u32 owner;
14 /* 0x08 */ u32 type;
15 /* 0x0C */ u32 priority;
16 /* 0x10 */ u32 source;
17 /* 0x14 */ u32 dest;
18 /* 0x18 */ u32 length;
20};
21
22#define ARQ_DMA_ALIGNMENT 32
23
24#define ARAM_DIR_MRAM_TO_ARAM 0x00
25#define ARAM_DIR_ARAM_TO_MRAM 0x01
26
27#define ARStartDMARead(mmem, aram, len) \
28 ARStartDMA(ARAM_DIR_ARAM_TO_MRAM, mmem, aram, len)
29#define ARStartDMAWrite(mmem, aram, len) \
30 ARStartDMA(ARAM_DIR_MRAM_TO_ARAM, mmem, aram, len)
31
32typedef struct ARQRequest ARQRequest;
33
34#define ARQ_TYPE_MRAM_TO_ARAM ARAM_DIR_MRAM_TO_ARAM
35#define ARQ_TYPE_ARAM_TO_MRAM ARAM_DIR_ARAM_TO_MRAM
36
37#define ARQ_PRIORITY_LOW 0
38#define ARQ_PRIORITY_HIGH 1
39
40// ar.c
43void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length);
46int ARCheckInit(void);
47u32 ARInit(u32 * stack_index_addr, u32 num_entries);
48void ARReset(void);
49void ARSetSize(void);
52
53// arq.c
54void ARQInit(void);
55void ARQReset(void);
57void ARQRemoveRequest(struct ARQRequest * request);
59void ARQFlushQueue(void);
62
63#endif
ARQCallback ARRegisterDMACallback(ARQCallback callback)
void ARQReset(void)
u32 ARGetBaseAddress(void)
int ARCheckInit(void)
u32 ARGetSize(void)
void ARQRemoveRequest(struct ARQRequest *request)
void ARQRemoveOwnerRequest(u32 owner)
void ARReset(void)
void ARQPostRequest(struct ARQRequest *request, u32 owner, u32 type, u32 priority, u32 source, u32 dest, u32 length, ARQCallback callback)
void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length)
void ARQFlushQueue(void)
u32 ARQGetChunkSize(void)
void(* ARQCallback)(struct ARQRequest *)
Definition ar.h:8
void ARQSetChunkSize(u32 size)
u32 ARFree(u32 *length)
void ARQInit(void)
u32 ARInit(u32 *stack_index_addr, u32 num_entries)
u32 ARAlloc(u32 length)
u32 ARGetDMAStatus(void)
void ARSetSize(void)
unsigned long u32
Definition types.h:9
static void callback(HSD_GObj *gobj)
Definition ftDk_SpecialLw.c:90
Definition ar.h:11
struct ARQRequest * next
Definition ar.h:12
u32 owner
Definition ar.h:13
ARQCallback callback
Definition ar.h:19
u32 priority
Definition ar.h:15
u32 length
Definition ar.h:18
u32 source
Definition ar.h:16
u32 dest
Definition ar.h:17
u32 type
Definition ar.h:14