libdragon
rspq_constants.h
1#ifndef __RSPQ_INTERNAL
2#define __RSPQ_INTERNAL
3
4#define RSPQ_DEBUG 1
5
6#define RSPQ_DRAM_LOWPRI_BUFFER_SIZE 0x200
7#define RSPQ_DRAM_HIGHPRI_BUFFER_SIZE 0x80
8
9#define RSPQ_DMEM_BUFFER_SIZE 0x100
10#define RSPQ_OVERLAY_TABLE_SIZE 0x10
11#define RSPQ_OVERLAY_DESC_SIZE 0x10
12
14#define RSPQ_MAX_OVERLAY_COUNT 8
15#define RSPQ_OVERLAY_ID_COUNT 16
16#define RSPQ_MAX_OVERLAY_COMMAND_COUNT ((RSPQ_MAX_OVERLAY_COUNT - 1) * 16)
17
19#define RSPQ_BLOCK_MIN_SIZE 64
20#define RSPQ_BLOCK_MAX_SIZE 4192
21
23#define RSPQ_MAX_BLOCK_NESTING_LEVEL 8
24#define RSPQ_LOWPRI_CALL_SLOT (RSPQ_MAX_BLOCK_NESTING_LEVEL+0)
25#define RSPQ_HIGHPRI_CALL_SLOT (RSPQ_MAX_BLOCK_NESTING_LEVEL+1)
26
28#define SP_STATUS_SIG_SYNCPOINT SP_STATUS_SIG2
29#define SP_WSTATUS_SET_SIG_SYNCPOINT SP_WSTATUS_SET_SIG2
30#define SP_WSTATUS_CLEAR_SIG_SYNCPOINT SP_WSTATUS_CLEAR_SIG2
31
33#define SP_STATUS_SIG_HIGHPRI_RUNNING SP_STATUS_SIG3
34#define SP_WSTATUS_SET_SIG_HIGHPRI_RUNNING SP_WSTATUS_SET_SIG3
35#define SP_WSTATUS_CLEAR_SIG_HIGHPRI_RUNNING SP_WSTATUS_CLEAR_SIG3
36
38#define SP_STATUS_SIG_HIGHPRI_REQUESTED SP_STATUS_SIG4
39#define SP_WSTATUS_SET_SIG_HIGHPRI_REQUESTED SP_WSTATUS_SET_SIG4
40#define SP_WSTATUS_CLEAR_SIG_HIGHPRI_REQUESTED SP_WSTATUS_CLEAR_SIG4
41
43#define SP_STATUS_SIG_BUFDONE_HIGH SP_STATUS_SIG5
44#define SP_WSTATUS_SET_SIG_BUFDONE_HIGH SP_WSTATUS_SET_SIG5
45#define SP_WSTATUS_CLEAR_SIG_BUFDONE_HIGH SP_WSTATUS_CLEAR_SIG5
46
48#define SP_STATUS_SIG_BUFDONE_LOW SP_STATUS_SIG6
49#define SP_WSTATUS_SET_SIG_BUFDONE_LOW SP_WSTATUS_SET_SIG6
50#define SP_WSTATUS_CLEAR_SIG_BUFDONE_LOW SP_WSTATUS_CLEAR_SIG6
51
53#define SP_STATUS_SIG_MORE SP_STATUS_SIG7
54#define SP_WSTATUS_SET_SIG_MORE SP_WSTATUS_SET_SIG7
55#define SP_WSTATUS_CLEAR_SIG_MORE SP_WSTATUS_CLEAR_SIG7
56
57// RSP assert codes (for assers generated by rsp_queue.S)
58#define ASSERT_INVALID_OVERLAY 0xFF01
59#define ASSERT_INVALID_COMMAND 0xFF02
60
62#define RSPQ_DEBUG_MARKER 0xABCD0123
63
64#endif