OS_AllocFromArenaLo

構文

#include <iris/os.h>
void* OS_AllocFromArenaLo( OSArenaId id, u32 size, u32 alignment );

void* OS_AllocFromMainArenaLo( u32 size, u32 alignment );
void* OS_AllocFromITCMArenaLo( u32 size, u32 alignment );
void* OS_AllocFromDTCMArenaLo( u32 size, u32 alignment );
void* OS_AllocFromSharedArenaLo( u32 size, u32 alignment );
void* OS_AllocFromWramArenaLo( u32 size, u32 alignment );

引数

id アリーナID
size 確保する大きさ(サイズ)
alignment 領域の先頭アドレスのアラインメント指定

返り値

確保した領域の先頭アドレスです。

説明

アリーナの下位から領域を確保します。
id はアリーナIDでアリーナを指定します。アリーナIDについては OS_InitArena() を参照してください。
size は確保する大きさで、バイトで指定します。
alignment は確保する領域のアラインメント指定です。
領域を確保した後に、アリーナの下位境界アドレスが領域を取った分だけ変化します。
上位方向の境界チェックは行っていませんので、アリーナの大きさ以上に領域を確保すると不具合が発生します。

OS_AllocFromMainArenaLo は OS_AllocFromArenaLo( OS_ARENA_MAIN, … ) の inline です。
OS_AllocFromITCMArenaLo は OS_AllocFromArenaLo( OS_ARENA_ITCM, … ) の inline です。
OS_AllocFromDTCMArenaLo は OS_AllocFromArenaLo( OS_ARENA_DTCM, … ) の inline です。
OS_AllocFromSharedArenaLo は OS_AllocFromArenaLo( OS_ARENA_SHARED, … ) の inline です。
OS_AllocFromWramArenaLo は OS_AllocFromArenaLo( OS_ARENA_WRAM, … ) の inline です。

参照

OS_InitArena, OS_AllocFromArenaHi

履歴

2004/01/06 初版