sead
Loading...
Searching...
No Matches
seadHeapPolicies.h
Go to the documentation of this file.
1#ifndef SEAD_HEAP_POLICIES_H_
2#define SEAD_HEAP_POLICIES_H_
3
4#include <basis/seadAssert.h>
5#include <heap/seadHeapMgr.h>
6
7namespace sead {
8
10{
11public:
13 : mPrimaryIndex(0)
14 {
15 for (u32 i = 0; i < 4; i++)
16 mAdjusted[i] = false;
17 }
18
19 Heap* getHeap(s32 idx) const
20 {
21 if (idx < HeapMgr::getRootHeapNum())
22 return mHeaps[idx];
23
24 SEAD_ASSERT_MSG(false, "illegal idx: %d", idx);
25 return mHeaps[0];
26 }
27
28 Heap* getHeap(s32 idx)
29 {
30 return const_cast<const HeapArray*>(this)->getHeap(idx);
31 }
32
34 {
35 return mHeaps[mPrimaryIndex];
36 }
37
38private:
40 bool mAdjusted[4];
42
43 friend class TaskMgr;
44};
45#ifdef cafe
46static_assert(sizeof(HeapArray) == 0x18, "sead::HeapArray size mismatch");
47#endif // cafe
48
50{
52 : parent(nullptr)
53 , size(0)
54 , create_slack(0)
55 , adjust_slack(0)
56 , adjust(0)
57 , temporary(0)
58 , dont_create(0)
59 {
60 }
61
69};
70#ifdef cafe
71static_assert(sizeof(HeapPolicy) == 0x14, "sead::HeapPolicy size mismatch");
72#endif // cafe
73
75{
76public:
78 : mPrimaryIndex(0)
79 {
80 }
81
84};
85#ifdef cafe
86static_assert(sizeof(HeapPolicies) == 0x54, "sead::HeapPolicies size mismatch");
87#endif // cafe
88
89} // namespace sead
90
91#endif // SEAD_HEAP_POLICIES_H_
Definition seadHeapPolicies.h:10
Heap * mHeaps[4]
Definition seadHeapPolicies.h:39
s32 mPrimaryIndex
Definition seadHeapPolicies.h:41
Heap * getHeap(s32 idx)
Definition seadHeapPolicies.h:28
HeapArray()
Definition seadHeapPolicies.h:12
Heap * getPrimaryHeap()
Definition seadHeapPolicies.h:33
bool mAdjusted[4]
Definition seadHeapPolicies.h:40
Heap * getHeap(s32 idx) const
Definition seadHeapPolicies.h:19
Definition seadHeapPolicies.h:75
HeapPolicy mPolicies[4]
Definition seadHeapPolicies.h:82
HeapPolicies()
Definition seadHeapPolicies.h:77
s32 mPrimaryIndex
Definition seadHeapPolicies.h:83
Definition seadHeap.h:23
Definition seadTaskMgr.h:19
Definition seadAssert.h:44
#define SEAD_ASSERT_MSG(condition, format,...)
Definition seadAssert.h:33
Definition seadHeapPolicies.h:50
u32 create_slack
Definition seadHeapPolicies.h:64
u32 size
Definition seadHeapPolicies.h:63
HeapPolicy()
Definition seadHeapPolicies.h:51
u8 adjust
Definition seadHeapPolicies.h:66
Heap * parent
Definition seadHeapPolicies.h:62
u8 dont_create
Definition seadHeapPolicies.h:68
u8 temporary
Definition seadHeapPolicies.h:67
u32 adjust_slack
Definition seadHeapPolicies.h:65