ヒープの両端からメモリを確保することができます。
[詳解]
#include "nn/nlib/heap/FrameHeap.h"
|
errno_t | Init (void *start, size_t size, DestructorHandler handler, uint32_t heap_option) noexcept |
| フレームヒープを初期化します。 [詳解]
|
|
void | FreeAll () noexcept |
| メモリを全て解放し、ヒープを初期化直後の状態に戻します。
|
|
void | FreeTop () noexcept |
| ヒープの上部から確保したメモリを全て解放します。
|
|
void | FreeBot () noexcept |
| ヒープの下部から確保したメモリを全て解放します。
|
|
errno_t | ResizeTop (void *p, size_t from_size, size_t to_size) noexcept |
| 最も最近に確保したメモリのサイズを変更します。 [詳解]
|
|
errno_t | Adjust (void **start, size_t *size) noexcept |
| ヒープのサイズを現在までに確保した領域まで切り詰めます。両端から確保済みの場合は切り詰められないので失敗します。 [詳解]
|
|
State | SaveState () noexcept |
| 現在のヒープの状態をセーブします。 [詳解]
|
|
void | RestoreState (State state) noexcept |
| セーブしたヒープの状態に戻します。 [詳解]
|
|
void * | Alloc (size_t n) noexcept |
| メモリブロックを確保します。 [詳解]
|
|
void * | Alloc (size_t n, size_t algn) noexcept |
| アライメントを指定してメモリブロックを確保します。 [詳解]
|
|
void * | Alloc (size_t n, size_t algn, uint32_t alloc_option) noexcept |
| アライメントとアロケート時オプションを指定してメモリブロックを確保します。 [詳解]
|
|
void | Dump () noexcept |
| ヒープの状態をダンプします。
|
|
ヒープの両端からメモリを確保することができます。
FrameHeap.h の 29 行目に定義があります。
◆ AllocOption
アロケートをヒープのどちらがわから行うかを指定します。
列挙値 |
---|
kAllocOptionAllocHead | アロケートをヒープの先頭から行います。
|
kAllocOptionAllocTail | アロケートをヒープの末尾から行います。
|
FrameHeap.h の 32 行目に定義があります。
◆ Adjust()
nn::nlib::heap::FrameHeap::Adjust |
( |
void ** |
start, |
|
|
size_t * |
size |
|
) |
| |
|
noexcept |
ヒープのサイズを現在までに確保した領域まで切り詰めます。両端から確保済みの場合は切り詰められないので失敗します。
- 引数
-
[in] | start | ヒープから外される領域の開始位置へのポインタが格納されます |
[in] | size | ヒープから外される領域のサイズが格納されます。 |
- 戻り値
- 0ならば成功。それ以外の場合は失敗です。
◆ Alloc() [1/3]
nn::nlib::heap::FrameHeap::Alloc |
( |
size_t |
n | ) |
|
|
inlinenoexcept |
メモリブロックを確保します。
- 引数
-
- 戻り値
- 確保されたメモリへのポインタ。失敗した場合は
NULL
FrameHeap.h の 72 行目に定義があります。
◆ Alloc() [2/3]
nn::nlib::heap::FrameHeap::Alloc |
( |
size_t |
n, |
|
|
size_t |
algn |
|
) |
| |
|
inlinenoexcept |
アライメントを指定してメモリブロックを確保します。
- 引数
-
[in] | n | メモリブロックのサイズ |
[in] | algn | アライメント |
- 戻り値
- 確保されたメモリへのポインタ。失敗した場合は
NULL
FrameHeap.h の 73 行目に定義があります。
◆ Alloc() [3/3]
nn::nlib::heap::FrameHeap::Alloc |
( |
size_t |
n, |
|
|
size_t |
algn, |
|
|
uint32_t |
alloc_option |
|
) |
| |
|
noexcept |
アライメントとアロケート時オプションを指定してメモリブロックを確保します。
- 引数
-
[in] | n | メモリブロックのサイズ |
[in] | algn | アライメント |
[in] | alloc_option | アロケート時オプション(AllocOption 型の値) |
- 戻り値
- 確保されたメモリへのポインタ。失敗した場合は
NULL
◆ Init()
nn::nlib::heap::FrameHeap::Init |
( |
void * |
start, |
|
|
size_t |
size, |
|
|
DestructorHandler |
handler, |
|
|
uint32_t |
heap_option |
|
) |
| |
|
noexcept |
フレームヒープを初期化します。
- 引数
-
[in] | start | ヒープの開始位置へのポインタ |
[in] | size | ヒープのサイズ |
[in] | handler | デストラクタ実行時に呼び出される関数へのポインタ |
[in] | heap_option | 値は利用されません |
- 戻り値
- 初期化に成功した場合は0, それ以外の場合は失敗。
◆ ResizeTop()
nn::nlib::heap::FrameHeap::ResizeTop |
( |
void * |
p, |
|
|
size_t |
from_size, |
|
|
size_t |
to_size |
|
) |
| |
|
noexcept |
最も最近に確保したメモリのサイズを変更します。
- 引数
-
[in] | p | 最も最近に確保したメモリへのポインタ |
[in] | from_size | 元のサイズ |
[in] | to_size | 変更後のサイズ |
- 戻り値
- 0ならば成功。それ以外の場合は失敗です。
◆ RestoreState()
nn::nlib::heap::FrameHeap::RestoreState |
( |
State |
state | ) |
|
|
inlinenoexcept |
◆ SaveState()
nn::nlib::heap::FrameHeap::SaveState |
( |
| ) |
|
|
inlinenoexcept |
このクラス詳解は次のファイルから抽出されました: