スタックに積み上げるようにメモリを確保していくアロケータです。
[詳解]
#include "nn/nlib/heap/StackHeap.h"
|
errno_t | Init (void *start, size_t size, uint32_t heap_option) noexcept |
| スタックヒープを初期化します。 [詳解]
|
|
void | FreeAll () noexcept |
| メモリを全て解放し、ヒープを初期化直後の状態に戻します。
|
|
errno_t | ResizeTop (void *p, size_t from_size, size_t to_size) noexcept |
| 最も最近に確保したメモリのサイズを変更します。 [詳解]
|
|
errno_t | Adjust (void **start, size_t *size) noexcept |
| ヒープのサイズを現在までに確保した領域まで切り詰めます。 [詳解]
|
|
void * | Alloc (size_t n, size_t algn) noexcept |
| アライメントを指定してメモリブロックを確保します。 [詳解]
|
|
void * | Alloc (size_t n) noexcept |
| メモリブロックを確保します。 [詳解]
|
|
errno_t | Free (void *p) noexcept |
| 次のメモリ確保位置をp の位置まで戻します。 [詳解]
|
|
void | Dump () noexcept |
| ヒープの状態をダンプします。
|
|
スタックに積み上げるようにメモリを確保していくアロケータです。
- 説明
- このアロケータを使う場合、確保・解放の順番がLIFOの順番になっている必要があります。
StackHeap.h の 16 行目に定義があります。
§ Adjust()
nn::nlib::heap::StackHeap::Adjust |
( |
void ** |
start, |
|
|
size_t * |
size |
|
) |
| |
|
noexcept |
ヒープのサイズを現在までに確保した領域まで切り詰めます。
- 引数
-
[in] | start | ヒープから外される領域の開始位置へのポインタが格納されます |
[in] | size | ヒープから外される領域のサイズが格納されます。 |
- 戻り値
- 0ならば成功。それ以外の場合は失敗です。
§ Alloc() [1/2]
nn::nlib::heap::StackHeap::Alloc |
( |
size_t |
n, |
|
|
size_t |
algn |
|
) |
| |
|
inlinenoexcept |
アライメントを指定してメモリブロックを確保します。
- 引数
-
[in] | n | メモリブロックのサイズ |
[in] | algn | アライメント |
- 戻り値
- 確保されたメモリへのポインタ。失敗した場合は
NULL
- 説明
- アライメントは2のべき乗を指定する必要があります。
StackHeap.h の 24 行目に定義があります。
§ Alloc() [2/2]
nn::nlib::heap::StackHeap::Alloc |
( |
size_t |
n | ) |
|
|
inlinenoexcept |
メモリブロックを確保します。
- 引数
-
- 戻り値
- 確保されたメモリへのポインタ。失敗した場合は
NULL
StackHeap.h の 33 行目に定義があります。
§ Free()
nn::nlib::heap::StackHeap::Free |
( |
void * |
p | ) |
|
|
inlinenoexcept |
次のメモリ確保位置をp
の位置まで戻します。
- 引数
-
- 戻り値
- 0ならば成功。0以外の場合はポインタが不正です。
StackHeap.h の 34 行目に定義があります。
§ Init()
nn::nlib::heap::StackHeap::Init |
( |
void * |
start, |
|
|
size_t |
size, |
|
|
uint32_t |
heap_option |
|
) |
| |
|
noexcept |
スタックヒープを初期化します。
- 引数
-
[in] | start | ヒープの開始位置へのポインタ |
[in] | size | ヒープのサイズ |
[in] | heap_option | 値は利用されません |
- 戻り値
- 成功ならば0
§ ResizeTop()
nn::nlib::heap::StackHeap::ResizeTop |
( |
void * |
p, |
|
|
size_t |
from_size, |
|
|
size_t |
to_size |
|
) |
| |
|
noexcept |
最も最近に確保したメモリのサイズを変更します。
- 引数
-
[in] | p | 最も最近に確保したメモリへのポインタ |
[in] | from_size | 元のサイズ |
[in] | to_size | 変更後のサイズ |
- 戻り値
- 0ならば成功。それ以外の場合は失敗です。
このクラス詳解は次のファイルから抽出されました: