![]() |
GL CHOCO ENGINE
|
不定期に発生するメモリ確保、解放に対応するメモリアロケータモジュールの実装 More...
#include <stdalign.h>#include <stddef.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include "engine/base/choco_macros.h"#include "engine/base/choco_message.h"#include "engine/core/memory/choco_memory.h"
Data Structures | |
| struct | memory_system |
| メモリシステム内部状態管理構造体 More... | |
Typedefs | |
| typedef struct memory_system | memory_system_t |
| メモリシステム内部状態管理構造体 | |
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) |
| メモリシステムが管理しているメモリ使用量状態を標準出力に出力する | |
不定期に発生するメモリ確保、解放に対応するメモリアロケータモジュールの実装
| typedef struct memory_system memory_system_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 | ) |
メモリシステムが管理しているメモリ使用量状態を標準出力に出力する
使用例: