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