#include <iris/os.h>
void* OS_AllocFromArenaHi( OSArenaId id, u32 size, u32 alignment );
void* OS_AllocFromMainArenaHi( u32 size, u32 alignment );
void* OS_AllocFromITCMArenaHi( u32 size, u32 alignment );
void* OS_AllocFromDTCMArenaHi( u32 size, u32 alignment );
void* OS_AllocFromSharedArenaHi( u32 size, u32 alignment );
void* OS_AllocFromWramArenaHi( u32 size, u32 alignment );
| id | アリーナID |
| size | 確保する大きさ(サイズ) |
| alignment | 領域の先頭アドレスのアラインメント指定 |
確保した領域の先頭アドレスです。
アリーナの上位から領域を確保します。
id はアリーナIDでアリーナを指定します。アリーナIDについては OS_InitArena() を参照してください。
size は確保する大きさで、バイトで指定します。
alignment は確保する領域のアラインメント指定です。
領域を確保した後に、アリーナの上位境界アドレスが領域を取った分だけ変化します。
下位方向の境界チェックは行っていませんので、アリーナの大きさ以上に領域を確保すると不具合が発生します。
OS_AllocFromMainArenaHi は OS_AllocFromArenaHi( OS_ARENA_MAIN, … ) の
inline です。
OS_AllocFromITCMArenaHi は OS_AllocFromArenaHi( OS_ARENA_ITCM, … ) の
inline です。
OS_AllocFromDTCMArenaHiは OS_AllocFromArenaHi( OS_ARENA_DTCM, … ) の inline
です。
OS_AllocFromSharedArenaHi は OS_AllocFromArenaHi( OS_ARENA_SHARED, … )
の inline です。
OS_AllocFromWramArenaHi は OS_AllocFromArenaHi( OS_ARENA_WRAM, … ) の
inline です。
OS_InitArena, OS_AllocFromArenaLo
2004/01/06 初版