Alchemy
Loading...
Searching...
No Matches

io_queue.c File Reference

The register write queue that VBlank carries out after each finished frame. More...

Go to the source code of this file.

Macros

#define IO_QUEUE_DEFINE_WRITE(name, control)
 The queued register writers: each adds a write of value to address that the VBlank handler carries out once the frame loop has finished the frame.

Typedefs

typedef void(*) QueueFlushRoutine(struct IoWriteQueue *queue, u32 count)

Functions

void IoWriteQueue_Store8 (u32 address, u32 value)
 Queues a byte store.
void IoWriteQueue_Store16 (u32 address, u32 value)
 Queues a halfword store.
void IoWriteQueue_Store32 (u32 address, u32 value)
 Queues a word store.
void IoWriteQueue_SetBits8 (u32 address, u32 value)
 Queues setting a byte register's bits.
void IoWriteQueue_SetBits16 (u32 address, u32 value)
 Queues setting a halfword register's bits.
void IoWriteQueue_SetBits32 (u32 address, u32 value)
 Queues setting a word register's bits.
void IoWriteQueue_ClearBits8 (u32 address, u32 value)
 Queues clearing a byte register's bits.
void IoWriteQueue_ClearBits16 (u32 address, u32 value)
 Queues clearing a halfword register's bits.
void IoWriteQueue_ClearBits32 (u32 address, u32 value)
 Queues clearing a word register's bits.
void IoWriteQueue_FlushPending (void)
 Runs the queued register writes and empties the queue, with a copy of the executor routine on the stack.

Detailed Description

The register write queue that VBlank carries out after each finished frame.

Part of runtime.c, the runtime object, compiled only through it.

Definition in file io_queue.c.

Macro Definition Documentation

◆ IO_QUEUE_DEFINE_WRITE

#define IO_QUEUE_DEFINE_WRITE ( name,
control )
Value:
void name(u32 address, u32 value) { \
IO_WRITE_QUEUE_PUSH(address, value, control); \
}
unsigned int u32
Definition types.h:15

The queued register writers: each adds a write of value to address that the VBlank handler carries out once the frame loop has finished the frame.

The control word gives the width and whether the value is stored, ORed in or cleared.

Definition at line 13 of file io_queue.c.

Referenced by IoWriteQueue_ClearBits16(), IoWriteQueue_ClearBits32(), IoWriteQueue_ClearBits8(), IoWriteQueue_SetBits16(), IoWriteQueue_SetBits32(), IoWriteQueue_SetBits8(), IoWriteQueue_Store16(), IoWriteQueue_Store32(), and IoWriteQueue_Store8().

Typedef Documentation

◆ QueueFlushRoutine

typedef void(*) QueueFlushRoutine(struct IoWriteQueue *queue, u32 count)

Definition at line 7 of file io_queue.c.

Function Documentation

◆ IoWriteQueue_Store8()

void IoWriteQueue_Store8 ( u32 address,
u32 value )

Queues a byte store.

Definition at line 19 of file io_queue.c.

Referenced by IoWriteQueue_Store8().

◆ IoWriteQueue_Store16()

◆ IoWriteQueue_Store32()

void IoWriteQueue_Store32 ( u32 address,
u32 value )

Queues a word store.

Definition at line 23 of file io_queue.c.

Referenced by HeatGauge_Draw(), and IoWriteQueue_Store32().

◆ IoWriteQueue_SetBits8()

void IoWriteQueue_SetBits8 ( u32 address,
u32 value )

Queues setting a byte register's bits.

Definition at line 25 of file io_queue.c.

Referenced by IoWriteQueue_SetBits8().

◆ IoWriteQueue_SetBits16()

void IoWriteQueue_SetBits16 ( u32 address,
u32 value )

◆ IoWriteQueue_SetBits32()

void IoWriteQueue_SetBits32 ( u32 address,
u32 value )

Queues setting a word register's bits.

Definition at line 29 of file io_queue.c.

Referenced by IoWriteQueue_SetBits32().

◆ IoWriteQueue_ClearBits8()

void IoWriteQueue_ClearBits8 ( u32 address,
u32 value )

Queues clearing a byte register's bits.

Definition at line 31 of file io_queue.c.

Referenced by IoWriteQueue_ClearBits8().

◆ IoWriteQueue_ClearBits16()

void IoWriteQueue_ClearBits16 ( u32 address,
u32 value )

◆ IoWriteQueue_ClearBits32()

void IoWriteQueue_ClearBits32 ( u32 address,
u32 value )

Queues clearing a word register's bits.

Definition at line 35 of file io_queue.c.

Referenced by IoWriteQueue_ClearBits32().

◆ IoWriteQueue_FlushPending()

void IoWriteQueue_FlushPending ( void )

Runs the queued register writes and empties the queue, with a copy of the executor routine on the stack.

Called by System_VBlankHandler once the frame loop has finished a frame.

Definition at line 40 of file io_queue.c.

Referenced by IoWriteQueue_FlushPending(), System_GetLanguage(), and System_VBlankHandler().