OS_AllocFromHeap

構文

#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 初版