13#define IO_QUEUE_DEFINE_WRITE(name, control) \
14 void name(u32 address, u32 value) { \
15 IO_WRITE_QUEUE_PUSH(address, value, control); \
49 u32 wordCount = size >> 2;
55 u8 routineBytes[wordCount << 2];
61 routine(queue,
count);
67#undef IO_QUEUE_DEFINE_WRITE
static __inline__ void Dma_Set(const volatile void *source, volatile void *destination, u32 control, volatile u32 *channel)
Starts a DMA transfer: stores the source, destination and control words into channel's registers with...
void IoWriteQueue_ClearBits16(u32 address, u32 value)
Queues clearing a halfword register's bits.
void(*) QueueFlushRoutine(struct IoWriteQueue *queue, u32 count)
void IoWriteQueue_Store32(u32 address, u32 value)
Queues a word store.
#define IO_QUEUE_DEFINE_WRITE(name, control)
The queued register writers: each adds a write of value to address that the VBlank handler carries ou...
void IoWriteQueue_FlushPending(void)
Runs the queued register writes and empties the queue, with a copy of the executor routine on the sta...
void IoWriteQueue_ClearBits8(u32 address, u32 value)
Queues clearing a byte register's bits.
void IoWriteQueue_SetBits32(u32 address, u32 value)
Queues setting a word register's bits.
void IoWriteQueue_SetBits16(u32 address, u32 value)
Queues setting a halfword register's bits.
void IoWriteQueue_SetBits8(u32 address, u32 value)
Queues setting a byte register's bits.
void IoWriteQueue_Store8(u32 address, u32 value)
Queues a byte store.
void IoWriteQueue_ClearBits32(u32 address, u32 value)
Queues clearing a word register's bits.
void IoWriteQueue_Store16(u32 address, u32 value)
Queues a halfword store.
#define IO_WRITE_16
Writes a halfword.
struct IoWriteQueue gIoWriteQueue
#define IO_WRITE_32
Writes a word.
#define IO_WRITE_CLEAR
Clears the value's bits in the register instead of storing it.
#define IO_WRITE_8
Writes a byte.
#define IO_WRITE_SET
ORs the value into the register instead of storing it.
What every part of the runtime object shares: its includes and the library call two parts make.
The register writes VBlank carries out once the frame loop has finished a frame; IoWriteQueue_FlushPe...
u16 count
Entries waiting, at most 32.
u8 TransferCommandExecutor_Size[]
const u8 Resource_ExecuteTransfer[]