Newer
Older
libkc / modules / src / kc_memory_entry_inner.h
  1. /**
  2. * @file kc_memory_entry_inner.h
  3. * @brief KC メモリ管理 Entry サブモジュール (内部用)
  4. * @copyright 2003 - 2023 Nomura Kei
  5. * @depends
  6. * kc.h
  7. * kc_memory_mark.h
  8. * kc_memory_entry.h
  9. *
  10. * KcMemoryEntry の操作をする関数群を格納したサブモジュールです。
  11. */
  12. #ifndef KC_MEMORY_ENTRY_INNER_H
  13. #define KC_MEMORY_ENTRY_INNER_H
  14.  
  15. #include <kc_memory_entry.h>
  16.  
  17. #ifdef __cplusplus
  18. extern "C"
  19. {
  20. namespace kc
  21. {
  22. using namespace std;
  23. #endif
  24.  
  25. /**
  26. * KcMemoryEntry を構築します。
  27. * entry が NULL の場合、新規に KeMemoryEntry を構築します。
  28. * entry が NULL でない場合、entry の管理するメモリサイズを変更し、各種値を更新します。
  29. * 構築に失敗した場合、NULL を返します。
  30. *
  31. * @param entry メモリエントリ
  32. * @param alignment アライメント
  33. * @param size メモリサイズ
  34. * @param mark メモリ状態
  35. * @param file メモリ確保ファイル名
  36. * @param func メモリ確保関数名
  37. * @param line メモリ確保行番号
  38. * @return 構築した KcMemoryEntry
  39. */
  40. KcMemoryEntry *KcMemoryEntry_new(KcMemoryEntry *entry, size_t alignment, size_t size,
  41. KcMemoryMark mark, const char *file, const char *func, int line);
  42. /**
  43. * KcMemoryEntry を破棄します。
  44. *
  45. * @param entry 破棄するメモリエントリ
  46. */
  47. void KcMemoryEntry_delete(KcMemoryEntry *entry);
  48.  
  49. /**
  50. * 指定された entry に、指定された値を設定します。
  51. * entry が NULL の場合、何もしません。
  52. *
  53. * @param entry メモリエントリ
  54. * @param size メモリサイズ
  55. * @param mark メモリ状態
  56. * @param file メモリ確保ファイル名
  57. * @param func メモリ確保関数名
  58. * @param line メモリ確保行番号
  59. */
  60. void KcMemoryEntry_set(KcMemoryEntry *entry,
  61. size_t size, KcMemoryMark mark, const char *file, const char *func, int line);
  62.  
  63. #ifdef __cplusplus
  64. } // namespace kc
  65. } // extern "C"
  66. #endif
  67. #endif // KC_MEMORY_ENTRY_INNER_H