/** * @file kc_memory_entry_inner.h * @brief KC メモリ管理 Entry サブモジュール (内部用) * @copyright 2003 - 2023 Nomura Kei * @depends * kc.h * kc_memory_mark.h * kc_memory_entry.h * * KcMemoryEntry の操作をする関数群を格納したサブモジュールです。 */ #ifndef KC_MEMORY_ENTRY_INNER_H #define KC_MEMORY_ENTRY_INNER_H #include <kc_memory_entry.h> #ifdef __cplusplus extern "C" { namespace kc { using namespace std; #endif /** * KcMemoryEntry を構築します。 * entry が NULL の場合、新規に KeMemoryEntry を構築します。 * entry が NULL でない場合、entry の管理するメモリサイズを変更し、各種値を更新します。 * 構築に失敗した場合、NULL を返します。 * * @param entry メモリエントリ * @param alignment アライメント * @param size メモリサイズ * @param mark メモリ状態 * @param file メモリ確保ファイル名 * @param func メモリ確保関数名 * @param line メモリ確保行番号 * @return 構築した KcMemoryEntry */ KcMemoryEntry *KcMemoryEntry_new(KcMemoryEntry *entry, size_t alignment, size_t size, KcMemoryMark mark, const char *file, const char *func, int line); /** * KcMemoryEntry を破棄します。 * * @param entry 破棄するメモリエントリ */ void KcMemoryEntry_delete(KcMemoryEntry *entry); /** * 指定された entry に、指定された値を設定します。 * entry が NULL の場合、何もしません。 * * @param entry メモリエントリ * @param size メモリサイズ * @param mark メモリ状態 * @param file メモリ確保ファイル名 * @param func メモリ確保関数名 * @param line メモリ確保行番号 */ void KcMemoryEntry_set(KcMemoryEntry *entry, size_t size, KcMemoryMark mark, const char *file, const char *func, int line); #ifdef __cplusplus } // namespace kc } // extern "C" #endif #endif // KC_MEMORY_ENTRY_INNER_H