# OS_CreateHeap

## 構文

      #include <nitro/os.h>

      OSHeapHandle OS_CreateHeap( OSArenaId id, void* start, void* end );

## 引数

id | ヒープを作成するアリーナのアリーナID
start | ヒープ領域の先頭アドレス
end | ヒープ領域の終了アドレス(+1)

## 返り値

ヒープを作成することが出来た場合、ヒープへのハンドル値を返します。これは0以上の値です。
ヒープを作成することが出来なかった場合、-1を返します。

## 説明

指定のアリーナにヒープを作成します。

アリーナはアリーナID id で指定します。この値については `OS_InitArena()` を参照してください。アリーナはあらかじめ`OS_InitAlloc()` でメモリ割り当てシステムの初期化を行なっておく必要があります。ヒープのための領域は start から end までとなります。end は実際の終了位置より+1されたアドレスで、例えば

> `OS_CreateHeap( OS_ARENA_MAIN, (void*)0x2030000, (void*)0x2040000 );`

の場合、 0x2030000〜0x203FFFF の 0x10000 バイトがヒープ領域として使用されます。

作成したヒープを破壊するときは `OS_DestoryHeap()` を呼んでください。

ヒープを再初期化するときは `OS_ClearHeap()` を呼んでください。

## 参照

`OS_InitArena, OS_InitAlloc, OS_DestroyHeap, OS_ClearHeap, OS_CreateExtraHeap`

## 履歴

2004/01/06 初版