NNS_FndCreateUnitHeapEx

構文

#include <nnsys/fnd.h>
NNSFndHeapHandle    NNS_FndCreateUnitHeapEx(
                        void*   startAddress,
                        u32     heapSize,
                        u32     memBlockSize,
                        int     alignment,
                        u16     optFlag);

引数

startAddress ヒープに割り当てるメモリ領域の先頭アドレス
heapSize ヒープに割り当てるメモリ領域のサイズ(バイト)
memBlockSize メモリブロックのサイズ(バイト)
alignment メモリブロックのアライメント。4,8,16,32のいずれかの値を指定できます。
optFlag ヒープへのオプション(詳細は下記を参照)

返り値

ヒープを作成することが出来た場合、ヒープへのハンドル値を返します。 ヒープを作成することが出来なかった場合、NNS_FND_HEAP_INVALID_HANDLE (NULL値)を返します。

説明

ユニットヒープを作成します。 ヒープのための領域は startAddress で指定したアドレスから heapSize で指定されたサイズ分のメモリ領域になります。

各メモリブロックのサイズは、memBlockSize で指定したサイズ固定になります。 また、各メモリブロックのアライメントは alignment により指定でき、4, 8, 16, 32 のいずれかの値をとります。

optFlag で、ヒープへのオプションを指定できます。

NNS_FND_HEAP_OPT_0_CLEAR ヒープからメモリを確保したときに、確保したメモリブロックを0で埋めます。
NNS_FND_HEAP_OPT_DEBUG_FILL ヒープ作成時および、メモリブロック確保時・解放時にそれぞれ異なった32bit値でメモリ領域を埋めます。このフラグはデバッグ用で、メモリの初期化忘れや無効なメモリ領域を指しているポインタを通じてのメモリアクセスのバグを見つけるのに活用できます。最終ROM版(FINALROM)ライブラリでは機能しません。

参照

NNS_FndCreateUnitHeap

履歴

2004/04/28 ヒープを作成することができなかった場合の値を間違えていたのを修正
2004/04/01 初版