sead
Loading...
Searching...
No Matches
seadFrameHeap.h
Go to the documentation of this file.
1#ifndef SEAD_FRAME_HEAP_H_
2#define SEAD_FRAME_HEAP_H_
3
4#include <heap/seadHeap.h>
5
6namespace sead {
7
8class FrameHeap : public Heap
9{
11
12public:
13 FrameHeap(const SafeString& name, Heap* parent, void* start, u32 size, HeapDirection direction, bool enable_lock);
14 ~FrameHeap() override;
15
16 void destroy() override;
17 size_t adjust() override;
18 void* tryAlloc(size_t size, s32 alignment) override;
19 void free(void* ptr) override;
20 void* resizeFront(void*, size_t) override;
21 void* resizeBack(void*, size_t) override;
22 void freeAll() override;
23 const void* getStartAddress() const override;
24 const void* getEndAddress() const override;
25 size_t getSize() const override;
26 size_t getFreeSize() const override;
27 size_t getMaxAllocatableSize(s32 alignment = 4) const override;
28 bool isInclude(const void*) const override;
29 bool isFreeable() const override;
30 bool isResizable() const override;
31 bool isAdjustable() const override;
32
33public:
34 static FrameHeap* tryCreate(u32 size, const SafeString& name, Heap* parent = nullptr, HeapDirection direction = cHeapDirection_Forward, bool enable_lock = false);
35
36protected:
38
39protected:
40 class State
41 {
42 void* mHeadPtr;
43 void* mTailPtr;
44
45 friend class FrameHeap;
46 };
47
49};
50#ifdef cafe
51static_assert(sizeof(FrameHeap) == 0x98, "sead::FrameHeap size mismatch");
52#endif // cafe
53
54} // namespace sead
55
56#endif // SEAD_FRAME_HEAP_H_
Definition seadFrameHeap.h:41
void * mTailPtr
Definition seadFrameHeap.h:43
void * mHeadPtr
Definition seadFrameHeap.h:42
Definition seadFrameHeap.h:9
size_t getMaxAllocatableSize(s32 alignment=4) const override
~FrameHeap() override
size_t getFreeSize() const override
void destroy() override
const void * getStartAddress() const override
void free(void *ptr) override
void * resizeBack(void *, size_t) override
void freeAll() override
static FrameHeap * tryCreate(u32 size, const SafeString &name, Heap *parent=nullptr, HeapDirection direction=cHeapDirection_Forward, bool enable_lock=false)
Definition seadFrameHeap.cpp:11
bool isFreeable() const override
void * tryAlloc(size_t size, s32 alignment) override
bool isInclude(const void *) const override
State state
Definition seadFrameHeap.h:48
const void * getEndAddress() const override
bool isResizable() const override
size_t adjust() override
void * resizeFront(void *, size_t) override
FrameHeap(const SafeString &name, Heap *parent, void *start, u32 size, HeapDirection direction, bool enable_lock)
size_t getSize() const override
bool isAdjustable() const override
Definition seadHeap.h:23
HeapDirection
Definition seadHeap.h:26
@ cHeapDirection_Forward
Definition seadHeap.h:27
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96