16 #ifndef INCLUDE_NN_NLIB_HEAP_CENTRALHEAP_H_ 17 #define INCLUDE_NN_NLIB_HEAP_CENTRALHEAP_H_ 21 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS) 22 #undef NLIB_VIS_PUBLIC 23 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT 33 typedef void (*DestructorHandler)(
void* start,
void* end) NLIB_NOEXCEPT_FUNCPTR;
36 use_virtual_memory_(false),
57 TlsHeapCentral* central_;
58 bool use_virtual_memory_;
59 uint32_t heap_option_;
68 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS) 69 #undef NLIB_VIS_PUBLIC 70 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT 73 #endif // INCLUDE_NN_NLIB_HEAP_CENTRALHEAP_H_ int(* nmalloc_heapwalk_callback)(void *allocated_ptr, size_t size, void *user_ptr)
nmalloc_walk_allocated_ptrs()から呼び出されるユーザー定義のコールバック関数です。 ...
CentralHeap() noexcept
デフォルトコンストラクタです。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
nmalloc/nfree等が宣言されているファイルです。
~CentralHeap() noexcept
デストラクタです。
static const size_t kPageSize
ヒープのページサイズです(OSのページサイズとの関連性はありません)。
CachedHeapと対になって利用される中央ヒープクラスです。nmalloc()の実装に利用されています。 ...
void * Alloc(size_t n) noexcept
メモリブロックを確保します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
CentralHeapと対になって利用されるスレッド専用キャッシュクラスです。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。