#include <iris/os.h>
void* OS_AllocFromHeap( OSArenaId id, OSHeapHandle heap, u32 size );
void* OS_AllocFromMain( u32 size );
void* OS_AllocFromITCM( u32 size );
void* OS_AllocFromDTCM( u32 size );
void* OS_AllocFromShared( u32 size );
void* OS_AllocFromWram( u32 size );
void* OS_AllocFromMainEx( u32 size );
void* OS_Alloc( u32 size );
| id | 領域を確保するヒープのあるアリーナのアリーナID |
| heap | 領域を確保するヒープのハンドル |
| size | 確保したい領域のサイズ(バイト) |
領域を割り当てることが出来た場合、その領域の先頭アドレスを返します。
領域を割り当てることが出来なかった場合、NULL を返します。
ヒープからメモリブロックを割り当てます。
OS_AllocFromHeap() では割り当てるヒープのハンドルと、そのヒープのあるアリーナを指定する必要があります。
アリーナはアリーナID で指定します。この値については OS_InitArena() を参照してください。
ヒープハンドルに OS_CURRENT_HEAP_HANDLE を指定すると、そのアリーナのカレントヒープが指定されたと見なします。
OS_AllocFromMain() は OS_AllocFromHeap( OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE,
… ) の inline です。
OS_AllocFromICTM() は OS_AllocFromHeap( OS_ARENA_ITCM, OS_CURRENT_HEAP_HANDLE,
… ) の inline です。
OS_AllocFromDTCM() は OS_AllocFromHeap( OS_ARENA_DTCM, OS_CURRENT_HEAP_HANDLE,
… ) の inline です。
OS_AllocFromShared() は OS_AllocFromHeap( OS_ARENA_SHARED, OS_CURRENT_HEAP_HANDLE,
… ) の inline です。
OS_AllocFromWram() は OS_AllocFromHeap( OS_ARENA_WRAM, OS_CURRENT_HEAP_HANDLE,
… ) の inline です。
OS_AllocFromMainEx() は OS_AllocFromHeap( OS_ARENA_MAINEX, OS_CURRENT_HEAP_HANDLE,
… ) の inline です。
OS_Alloc() は OS_AllocFromHeap( OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE, … ) の inline です。
OS_InitArena, OS_InitAlloc, OS_CreateHeap, OS_FreeToHeap
2004/01/06 初版