

#include <nitro/os.h>
void* OS_AllocFromArenaLo( OSArenaId id, u32 size, u32 alignment );void* OS_AllocFromMainArenaLo( u32 size, u32 alignment ); void* OS_AllocFromSubPrivArenaLo( u32 size, u32 alignment ); void* OS_AllocFromMainExArenaLo( 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_AllocFromWramMainArenaLo( u32 size, u32 alignment ); void* OS_AllocFromWramSubArenaLo( u32 size, u32 alignment ); void* OS_AllocFromWramSubPrivArenaLo( u32 size, u32 alignment );
| id | アリーナID |
| size | 確保する大きさ(サイズ) |
| alignment | 領域の先頭アドレスのアラインメント指定 |
確保した領域の先頭アドレスです。
アリーナの下位から領域を確保します。
id はアリーナIDでアリーナを指定します。アリーナIDについては OS_InitArena() を参照してください。
size は確保する大きさで、バイトで指定します。
alignment は確保する領域のアラインメント指定です。
領域を確保した後に、アリーナの下位境界アドレスが領域を取った分だけ変化します。
上位方向の境界チェックは行なっていませんので、アリーナの大きさ以上に領域を確保すると不具合が発生します。
OS_AllocFromMainArenaLo は OS_AllocFromArenaLo( OS_ARENA_MAIN, … ) の
inline です。
OS_AllocFromSubPrivArenaLo は OS_AllocFromArenaLo( OS_ARENA_MAIN_SUBPRIV,
… ) の inline です。
OS_AllocFromMainExArenaLo は OS_AllocFromArenaLo( OS_ARENA_MAINEX, … )
の 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_AllocFromWramMainArenaLo は OS_AllocFromArenaLo( OS_ARENA_WRAM_MAIN,
… ) の inline です。
OS_AllocFromWramSubArenaLo は OS_AllocFromArenaLo( OS_ARENA_WRAM_SUB, …
) の inline です。
OS_AllocFromWramSubPrivArenaLo は OS_AllocFromArenaLo( OS_ARENA_WRAM_SUBPRIV,
… ) の inline です。
OS_InitArena, OS_AllocFromArenaHi
2004/02/19 アリーナが6→9個に
2004/01/06 初版