sdk-world v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Loading...
Searching...
No Matches
dmaCore.h
Go to the documentation of this file.
1
5// ____ ___ | / _____ _____
6// | __ | |___/ | |
7// |___| ___| | \ __|__ | gsKit Open Source Project.
8// ----------------------------------------------------------------------
9// Copyright 2004 - Chris "Neovanglist" Gilbert <Neovanglist@LainOS.org>
10// Licenced under Academic Free License version 2.0
11// Review gsKit README & LICENSE files for further details.
12//
13// dmaCore.h - Header for dmaCore.c
14//
15
16#ifndef __DMACORE_H__
17#define __DMACORE_H__
18
19#include "dmaKit.h"
20
21#define DMA_SET_CHCR(DIR,MODE,ASP,TTE,TIE,STR,TAG) \
22 (u32)((DIR) & 0x00000001) << 0 | (u32)((MODE) & 0x00000003) << 2 | \
23 (u32)((ASP) & 0x00000003) << 4 | (u32)((TTE ) & 0x00000001) << 6 | \
24 (u32)((TIE) & 0x00000001) << 7 | (u32)((STR ) & 0x00000001) << 8 | \
25 (u32)((TAG) & 0x0000FFFF) << 16
26
27#define DMA_SET_MADR(A,B) \
28 (u32)((A) & 0x7FFFFFFF) << 0 | \
29 (u32)((B) & 0x00000001) << 31
30
31#define DMA_SET_TADR(A,B) \
32 (u32)((A) & 0x7FFFFFFF) << 0 | \
33 (u32)((B) & 0x00000001) << 31
34
35#define DMA_SET_ASR0(A,B) \
36 (u32)((A) & 0x7FFFFFFF) << 0 | \
37 (u32)((B) & 0x00000001) << 31
38
39#define DMA_SET_ASR1(A,B) \
40 (u32)((A) & 0x7FFFFFFF) << 0 | \
41 (u32)((B) & 0x00000001) << 31
42
43#define DMA_SET_SADR(A) \
44 (u32)((A) & 0x00003FFF) << 0
45
46#define DMA_SET_SIZE(A) \
47 (u32)((A) & 0x0000FFFF) << 0
48
49#define DMA_MAX_SIZE 0xFFFF
50
51#define DMA_REFE 0x0
52#define DMA_CNT 0x1
53#define DMA_NEXT 0x2
54#define DMA_REF 0x3
55#define DMA_REFS 0x4
56#define DMA_CALL 0x5
57#define DMA_RET 0x6
58#define DMA_END 0x7
59
60#define DMA_TAG(QWC,PCE,ID,IRQ,ADDR,SPR) ( \
61 ((u64)(QWC) << 0) | ((u64)(PCE) << 26) | \
62 ((u64)(ID) << 28) | ((u64)(IRQ) << 31) | \
63 ((u64)(ADDR) << 32) | ((u64)(SPR) << 63))
64
65#ifdef __cplusplus
66extern "C" {
67#endif
68
69
74int dmaKit_wait(u16 channel, u32 timeout);
75
80void dmaKit_wait_fast(void);
81
84void dmaKit_send(u16 channel, void *data, u32 size);
85
88void dmaKit_send_ucab(u16 channel, void *data, u32 size);
89
92void dmaKit_send_spr(u16 channel, void *data, u32 size);
93
96void dmaKit_send_chain(u16 channel, void *data, u32 size);
97
100void dmaKit_send_chain_ucab(u16 channel, void *data);
101
104void dmaKit_send_chain_spr(u16 channel, void *data);
105
109void dmaKit_get_spr(u16 channel, void *data, void *dest, u32 size);
110
111#ifdef __cplusplus
112}
113#endif
114
115#endif /* __DMACORE_H__ */
void dmaKit_wait_fast(void)
Definition dmaCore.c:45
void dmaKit_send(u16 channel, void *data, u32 size)
Definition dmaCore.c:56
void dmaKit_get_spr(u16 channel, void *data, void *dest, u32 size)
Definition dmaCore.c:214
void dmaKit_send_ucab(u16 channel, void *data, u32 size)
Definition dmaCore.c:84
void dmaKit_send_chain_spr(u16 channel, void *data)
Definition dmaCore.c:189
void dmaKit_send_chain(u16 channel, void *data, u32 size)
Definition dmaCore.c:135
void dmaKit_send_spr(u16 channel, void *data, u32 size)
Definition dmaCore.c:110
int dmaKit_wait(u16 channel, u32 timeout)
Definition dmaCore.c:19
void dmaKit_send_chain_ucab(u16 channel, void *data)
Definition dmaCore.c:163