KallistiOS
##version##
|
Functions to access the SH4 Store Queues. More...
Go to the source code of this file.
Macros | |
#define | QACR0 (*(volatile unsigned int *)(void *)0xff000038) |
Store Queue 0 access register. More... | |
#define | QACR1 (*(volatile unsigned int *)(void *)0xff00003c) |
Store Queue 1 access register. More... | |
Functions | |
void | sq_clr (void *dest, int n) |
Clear a block of memory. More... | |
void * | sq_cpy (void *dest, void *src, int n) |
Copy a block of memory. More... | |
void * | sq_set (void *s, uint32 c, int n) |
Set a block of memory to an 8-bit value. More... | |
void * | sq_set16 (void *s, uint32 c, int n) |
Set a block of memory to a 16-bit value. More... | |
void * | sq_set32 (void *s, uint32 c, int n) |
Set a block of memory to a 32-bit value. More... | |
Functions to access the SH4 Store Queues.
The store queues are a way to do efficient burst transfers from the CPU to external memory. They can be used in a variety of ways, such as to transfer a texture to PVR memory. The transfers are in units of 32-bytes, and the destinations must be 32-byte aligned.
#define QACR0 (*(volatile unsigned int *)(void *)0xff000038) |
Store Queue 0 access register.
#define QACR1 (*(volatile unsigned int *)(void *)0xff00003c) |
Store Queue 1 access register.
void sq_clr | ( | void * | dest, |
int | n | ||
) |
Clear a block of memory.
This function is similar to calling memset() with a value to set of 0, but uses the store queues to do its work.
dest | The address to begin clearing at (32-byte aligned). |
n | The number of bytes to clear (multiple of 32). |
void* sq_cpy | ( | void * | dest, |
void * | src, | ||
int | n | ||
) |
Copy a block of memory.
This function is similar to memcpy4(), but uses the store queues to do its work.
dest | The address to copy to (32-byte aligned). |
src | The address to copy from (32-bit (4-byte) aligned). |
n | The number of bytes to copy (multiple of 32). |
void* sq_set | ( | void * | s, |
uint32 | c, | ||
int | n | ||
) |
Set a block of memory to an 8-bit value.
This function is similar to calling memset(), but uses the store queues to do its work.
s | The address to begin setting at (32-byte aligned). |
c | The value to set (in the low 8-bits). |
n | The number of bytes to set (multiple of 32). |
void* sq_set16 | ( | void * | s, |
uint32 | c, | ||
int | n | ||
) |
Set a block of memory to a 16-bit value.
This function is similar to calling memset2(), but uses the store queues to do its work.
s | The address to begin setting at (32-byte aligned). |
c | The value to set (in the low 16-bits). |
n | The number of bytes to set (multiple of 32). |
void* sq_set32 | ( | void * | s, |
uint32 | c, | ||
int | n | ||
) |
Set a block of memory to a 32-bit value.
This function is similar to calling memset4(), but uses the store queues to do its work.
s | The address to begin setting at (32-byte aligned). |
c | The value to set (all 32-bits). |
n | The number of bytes to set (multiple of 32). |