#include <revolution/mem.h>
MEMHeapHandle MEMCreateUnitHeapEx(
void* startAddress,
u32 heapSize,
u32 memBlockSize,
u32 alignment,
u16 optFlag );
| startAddress | Start address of the allocated memory region in the heap. |
| heapSize | Size in bytes of the memory region allocated to the heap. |
| memBlockSize | Size of memory block in bytes. |
| alignment | Memory block alignment. Specify the following values: 4, 8, 16, 32. |
| optFlag | Heap options (explained below). |
Returns the heap handle when a heap can be created. Returns MEM_HEAP_INVALID_HANDLE (a NULL value) if a heap can't be created.
Creates the unit heap. The heap region is a memory region that has a size specified by heapSize and a start address specified by startAddress.
Each memory block has a fixed size specified by memBlockSize. Each memory block has an alignment specified by alignment with 4, 8, 16, and 32 as possible values.
Heap options can be specified with optFlag.
MEM_HEAP_OPT_0_CLEAR |
The allocated memory block is filled with zeroes upon allocation from the heap. |
MEM_HEAP_OPT_DEBUG_FILL |
Upon heap creation or whenever memory blocks are allocated or freed, each is filled with different 32-bit values in the memory region. This flag is used for debugging to find memory access bugs caused by either a failure to initialize memory or invalid memory regions. This option is not valid for the FINALROM version of the library. |
MEM_HEAP_OPT_THREAD_SAFE |
Enables exclusive processing between threads. |
2006/03/01 Initial version.
CONFIDENTIAL