# OS_AddExtraAreaToHeap

## 構文

      #include <nitro/os.h>

      void OS_AddExtraAreaToHeap( OSArenaId id, OSHeapHandle heap );

## 引数

id | メインメモリ先頭の16KB領域を追加するヒープのあるアリーナのアリーナID
heap | メインメモリ先頭の16KB領域を追加するヒープのハンドル

## 返り値

なし。

## 説明

メインメモリ先頭の 16KB 領域のメモリブロックを既存のヒープ領域に追加します。

この関数は特殊な用途 ( 追加領域は、HYBRID ROM を NITRO モードで動作させた際に出来るメインメモリ最下位 16KB の領域で固定 ) で用いられます。通常の用途で用いられる、メインメモリブロックを既存のヒープに追加する関数は `OS_AddToHeap()` です。なお、本関数 `OS_AddExtraAreaToHeap()` は内部で `OS_AddToHeap()` を呼び出す inline 関数となっています。

TWL ROM (HYBRID ROM、LIMITED ROM ともに) では、メインメモリの最下位 16KB にシステムの予約領域が作成されます。ただしこの領域は TWL モードで動作している場合にしか使用されません。すなわち、HYBRID ROM を NITRO ハードウェア上で NITRO モードで動作させている時には、この 16KB は全く使用されていません。

本関数は、この空いた 16KB の領域を指定のアリーナのヒープとして割り当てるための関数です。NITRO ROM や、TWL LIMITED ROM では、本関数を呼ぶことは出来ません。(HYBRID ROM ビルドでしか存在しませんのでコンパイルエラーとなります。) また、HYBRID ROM を TWL ハードウェア上で TWL モードで動作させているときには、本関数を呼んでも何も行いません。

アリーナはアリーナID id で指定します。この値については `OS_InitArena()` を参照してください。アリーナはあらかじめ `OS_InitAlloc()` でメモリ割り当てシステムの初期化を行なっておく必要があります。

本関数は、16KB の領域を既存のヒープに追加する関数です。16KB の領域を1つのヒープとして作成する場合は、`OS_CreateExtraHeap()` を参照してください。なお、両方を同時に行うことは出来ません。

## 参照

`OS_AddToHeap, OS_CreateExtraHeap
`

## 履歴

2009/04/03 初版