![]() |
GL CHOCO ENGINE
|
不定期に発生するメモリ確保、解放に対応するメモリアロケータモジュールの定義 More...
#include <stddef.h>

Go to the source code of this file.
Enumerations | |
| enum | memory_tag_t { MEMORY_TAG_SYSTEM , MEMORY_TAG_STRING , MEMORY_TAG_RING_QUEUE , MEMORY_TAG_RENDERER , MEMORY_TAG_FILE_IO , MEMORY_TAG_MAX } |
| メモリタグリスト More... | |
| enum | memory_system_result_t { MEMORY_SYSTEM_SUCCESS = 0 , MEMORY_SYSTEM_INVALID_ARGUMENT , MEMORY_SYSTEM_RUNTIME_ERROR , MEMORY_SYSTEM_LIMIT_EXCEEDED , MEMORY_SYSTEM_NO_MEMORY } |
| メモリシステム実行結果コードリスト More... | |
Functions | |
| memory_system_result_t | memory_system_create (void) |
| メモリシステムを起動する | |
| void | memory_system_destroy (void) |
| メモリシステムを停止する | |
| memory_system_result_t | memory_system_allocate (size_t size_, memory_tag_t mem_tag_, void **out_ptr_) |
| 容量size_のメモリを確保し、mem_tag_で指定されたメモリタグのメモリ使用量を更新する | |
| void | memory_system_free (void *ptr_, size_t size_, memory_tag_t mem_tag_) |
| ptr_が保持する領域のメモリを解放し、mem_tag_で指定されたメモリタグのメモリ使用量を更新する | |
| void | memory_system_report (void) |
| メモリシステムが管理しているメモリ使用量状態を標準出力に出力する | |
不定期に発生するメモリ確保、解放に対応するメモリアロケータモジュールの定義
メモリトラッキング機能も有する
不定期に発生するメモリ確保要求に対するメモリ確保と、メモリトラッキング機能を提供する
メモリ確保は現状はmallocをラップしたAPIによって行う。将来的にはFreeListを実装予定
メモリトラッキングは、メモリタグごとに確保されたメモリ量を管理する
メモリタグは memory_tag_t を参照
なお、本APIで確保されるメモリは、全てmax_align_tにアライメントされている
| enum memory_tag_t |
| memory_system_result_t memory_system_allocate | ( | size_t | size_, |
| memory_tag_t | mem_tag_, | ||
| void ** | out_ptr_ | ||
| ) |
容量size_のメモリを確保し、mem_tag_で指定されたメモリタグのメモリ使用量を更新する
| [in] | size_ | 割り当てサイズ |
| [in] | mem_tag_ | メモリタグ |
| [out] | out_ptr_ | 割り当てたメモリ格納先(ダブルポインタを渡す) |
使用例:
| MEMORY_SYSTEM_INVALID_ARGUMENT | 以下のいずれか
|
| MEMORY_SYSTEM_LIMIT_EXCEEDED | 以下のいずれか
|
| MEMORY_SYSTEM_NO_MEMORY | メモリ割り当て失敗 |
| MEMORY_SYSTEM_SUCCESS | size_ == 0または割り当てに成功し正常終了 |
| memory_system_result_t memory_system_create | ( | void | ) |
メモリシステムを起動する
使用例:
| MEMORY_SYSTEM_RUNTIME_ERROR | メモリシステムが既に初期化済み |
| MEMORY_SYSTEM_NO_MEMORY | メモリシステム用のメモリ確保に失敗 |
| MEMORY_SYSTEM_SUCCESS | メモリシステムの初期化に成功し、正常終了 |
| void memory_system_destroy | ( | void | ) |
メモリシステムを停止する
使用例:
| void memory_system_free | ( | void * | ptr_, |
| size_t | size_, | ||
| memory_tag_t | mem_tag_ | ||
| ) |
ptr_が保持する領域のメモリを解放し、mem_tag_で指定されたメモリタグのメモリ使用量を更新する
使用例:
| [in] | ptr_ | 解放メモリアドレス |
| [in] | size_ | 解放サイズ |
| [in] | mem_tag_ | メモリタグ |
| void memory_system_report | ( | void | ) |
メモリシステムが管理しているメモリ使用量状態を標準出力に出力する
使用例: