sead
Loading...
Searching...
No Matches
seadUnitHeap.h
Go to the documentation of this file.
1#ifndef SEAD_UNIT_HEAP_H_
2#define SEAD_UNIT_HEAP_H_
3
4#include <container/seadFreeList.h>
5#include <heap/seadHeap.h>
6
7namespace sead {
8
9class UnitHeap : public Heap
10{
12
13public:
14 UnitHeap(const SafeString& name, Heap* parent, void* address, u32 size, u32, bool);
15 ~UnitHeap() override;
16
17 void destroy() override;
18 size_t adjust() override;
19 void* tryAlloc(size_t size, s32 alignment) override;
20 void free(void* ptr) override;
21 void* resizeFront(void*, size_t) override;
22 void* resizeBack(void*, size_t) override;
23 void freeAll() override;
24 const void* getStartAddress() const override;
25 const void* getEndAddress() const override;
26 size_t getSize() const override;
27 size_t getFreeSize() const override;
28 size_t getMaxAllocatableSize(int) const override;
29 bool isInclude(const void*) const override;
30 bool isFreeable() const override;
31 bool isResizable() const override;
32 bool isAdjustable() const override;
33
34public:
35 static UnitHeap* tryCreate(u32 size, const SafeString& name, u32 block_size, s32 alignment = 4, Heap* parent = nullptr, bool enable_lock = false);
36 static UnitHeap* tryCreateWithBlockNum(u32 block_size, u32 num, const SafeString& name, s32 alignment = 4, Heap* parent = nullptr, bool enable_lock = false);
37
38protected:
44};
45#ifdef cafe
46static_assert(sizeof(UnitHeap) == 0xA8, "sead::UnitHeap size mismatch");
47#endif // cafe
48
49} // namespace sead
50
51#endif // SEAD_UNIT_HEAP_H_
Definition seadFreeList.h:10
Definition seadHeap.h:23
Definition seadUnitHeap.h:10
size_t getMaxAllocatableSize(int) const override
bool isInclude(const void *) const override
static UnitHeap * tryCreateWithBlockNum(u32 block_size, u32 num, const SafeString &name, s32 alignment=4, Heap *parent=nullptr, bool enable_lock=false)
bool isResizable() const override
FreeList mFreeList
Definition seadUnitHeap.h:43
u32 mBlockSize
Definition seadUnitHeap.h:39
void * resizeFront(void *, size_t) override
void destroy() override
u32 mAreaSize
Definition seadUnitHeap.h:41
bool isFreeable() const override
const void * getEndAddress() const override
void * tryAlloc(size_t size, s32 alignment) override
~UnitHeap() override
void free(void *ptr) override
size_t getFreeSize() const override
u32 mFreeSize
Definition seadUnitHeap.h:42
static UnitHeap * tryCreate(u32 size, const SafeString &name, u32 block_size, s32 alignment=4, Heap *parent=nullptr, bool enable_lock=false)
size_t adjust() override
void * mAreaStart
Definition seadUnitHeap.h:40
bool isAdjustable() const override
void freeAll() override
void * resizeBack(void *, size_t) override
const void * getStartAddress() const override
UnitHeap(const SafeString &name, Heap *parent, void *address, u32 size, u32, bool)
size_t getSize() const override
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96