OS_AllocFixed

構文

#include <nitro/os.h>
void* OS_AllocFixed( OSArenaId id, void** rstart, void** rend );

引数

id メモリ割り当てを行なう領域のアリーナのアリーナID
rstart ブロック開始アドレスへのポインタ
rend ブロック終了アドレスへのポインタ

返り値

指定ブロックが割り当てられた場合、その先頭アドレスを返します。このアドレスは32バイトアラインメントされています。
rstart と rend は要求領域より大きいであろう実際の領域の先頭と終了アドレスへ補正されます。

説明

指定の領域を割り当てます。

アリーナはアリーナID id で指定します。この値については OS_InitArena() を参照してください。そのアリーナ内の別のヒープのメモリブロックと生じた重複部分は、ヒープから削除されます。これは不連続で飛び飛びのヒープの原因となるかもしれません。あるいはOS_AddToHeap() を使うことによってもこの現象が発生します。他の固定ブロックに関しての重複に対するチェックは行われません。サイズが0(zero-length) のヒープが発生するかもしれません。

OS_AllocFixed関数はOS_Alloc*() に関するどの呼び出しよりも前に呼び出す必要があります。

参照

OS_InitArena, OS_AddToHeap, OS_AllocFromHeap

履歴

2004/01/06 初版