summaryrefslogtreecommitdiff
path: root/include/JSystem/JKernel
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2022-08-30 14:22:17 -0700
committerGitHub <noreply@github.com>2022-08-30 15:22:17 -0600
commitf8979749e3ef8e8cacf2ea8f474c7f23fc5cb6b3 (patch)
tree69659df2105266e9b26a4d50b9a2d610b3e437a2 /include/JSystem/JKernel
parentbc30d007e11458a198c5725626a10bb06a5da536 (diff)
j2d / map_path work, d_drawlist / d_attention cleanup (#208)
* work on fop actor / actor mng, daalink, d_a_obj_item * d_a_title mostly decompiled * daalink / d_event / JMessage / dmsg_out_font work * msg_scrn_base / msg_scrn_boss * some work on mDo machine, d_menu_save, d_tresure, and various * remove asm * progress * finish d_menu_save / d_pane_class_alpha / d_pane_class / rename some data * rename more data * remove asm / progress * match all of d_pane_class * fixes / some dKankyo doc * bunch of j2d work. d_drawlist / d_attention cleanup * progress / asm * cleanup wip * decompile JStage * setup some more JStudio structs * set up d_demo classes * some d_demo work * cleanup dolphin os stuff * some initial dEvent documentation * some At collision documentation * match JUTConsole::doDraw * dbgs work / split up some of d_a_alink into .inc files * d_a_alink_spinner work
Diffstat (limited to 'include/JSystem/JKernel')
-rw-r--r--include/JSystem/JKernel/JKRExpHeap.h82
-rw-r--r--include/JSystem/JKernel/JKRHeap.h12
2 files changed, 48 insertions, 46 deletions
diff --git a/include/JSystem/JKernel/JKRExpHeap.h b/include/JSystem/JKernel/JKRExpHeap.h
index 8ee16b87f0..d0ae61b76e 100644
--- a/include/JSystem/JKernel/JKRExpHeap.h
+++ b/include/JSystem/JKernel/JKRExpHeap.h
@@ -10,11 +10,13 @@ public:
friend class JKRExpHeap;
public:
- void initiate(CMemBlock*, CMemBlock*, u32, u8, u8);
- JKRExpHeap::CMemBlock* allocFore(u32, u8, u8, u8, u8);
- JKRExpHeap::CMemBlock* allocBack(u32, u8, u8, u8, u8);
- int free(JKRExpHeap*);
- static CMemBlock* getHeapBlock(void*);
+ void initiate(CMemBlock* prev, CMemBlock* next, u32 size, u8 groupId, u8 alignment);
+ JKRExpHeap::CMemBlock* allocFore(u32 size, u8 groupId1, u8 alignment1, u8 groupId2,
+ u8 alignment2);
+ JKRExpHeap::CMemBlock* allocBack(u32 size, u8 groupId1, u8 alignment1, u8 groupId2,
+ u8 alignment2);
+ int free(JKRExpHeap* heap);
+ static CMemBlock* getHeapBlock(void* ptr);
void newGroupId(u8 groupId) { this->mGroupId = groupId; }
bool isValid() const { return this->mMagic == 'HM'; }
@@ -38,46 +40,46 @@ public:
friend class CMemBlock;
protected:
- JKRExpHeap(void*, u32, JKRHeap*, bool);
+ JKRExpHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag);
virtual ~JKRExpHeap();
- void* allocFromHead(u32, int);
- void* allocFromHead(u32);
- void* allocFromTail(u32, int);
- void* allocFromTail(u32);
- void appendUsedList(CMemBlock*);
- void setFreeBlock(CMemBlock*, CMemBlock*, CMemBlock*);
- void removeFreeBlock(CMemBlock*);
- void removeUsedBlock(CMemBlock*);
- void recycleFreeBlock(CMemBlock*);
- void joinTwoBlocks(CMemBlock*);
+ void* allocFromHead(u32 size, int align);
+ void* allocFromHead(u32 size);
+ void* allocFromTail(u32 size, int align);
+ void* allocFromTail(u32 size);
+ void appendUsedList(CMemBlock* newblock);
+ void setFreeBlock(CMemBlock* block, CMemBlock* prev, CMemBlock* next);
+ void removeFreeBlock(CMemBlock* block);
+ void removeUsedBlock(CMemBlock* block);
+ void recycleFreeBlock(CMemBlock* block);
+ void joinTwoBlocks(CMemBlock* block);
public:
- s32 getUsedSize(u8) const;
+ s32 getUsedSize(u8 groupId) const;
s32 getTotalUsedSize(void) const;
CMemBlock* getHeadUsedList() const { return mHeadUsedList; }
public:
- /* vt[04] */ virtual u32 getHeapType(); /* override */
- /* vt[05] */ virtual bool check(); /* override */
- /* vt[06] */ virtual bool dump_sort(); /* override */
- /* vt[07] */ virtual bool dump(); /* override */
- /* vt[08] */ virtual void do_destroy(); /* override */
- /* vt[09] */ virtual void* do_alloc(u32 size, int alignment); /* override */
- /* vt[10] */ virtual void do_free(void* ptr); /* override */
- /* vt[11] */ virtual void do_freeAll(); /* override */
- /* vt[12] */ virtual void do_freeTail(); /* override */
- /* vt[13] */ virtual void do_fillFreeArea(); /* override */
- /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */
- /* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */
- /* vt[16] */ virtual s32 do_getFreeSize(); /* override */
- /* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */
- /* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */
- /* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID); /* override */
- /* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */
- /* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */
- /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&,
- JKRHeap::TState const&) const; /* override */
+ /* vt[04] */ virtual u32 getHeapType(); /* override */
+ /* vt[05] */ virtual bool check(); /* override */
+ /* vt[06] */ virtual bool dump_sort(); /* override */
+ /* vt[07] */ virtual bool dump(); /* override */
+ /* vt[08] */ virtual void do_destroy(); /* override */
+ /* vt[09] */ virtual void* do_alloc(u32 size, int alignment); /* override */
+ /* vt[10] */ virtual void do_free(void* ptr); /* override */
+ /* vt[11] */ virtual void do_freeAll(); /* override */
+ /* vt[12] */ virtual void do_freeTail(); /* override */
+ /* vt[13] */ virtual void do_fillFreeArea(); /* override */
+ /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */
+ /* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */
+ /* vt[16] */ virtual s32 do_getFreeSize(); /* override */
+ /* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */
+ /* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */
+ /* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID); /* override */
+ /* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */
+ /* vt[21] */ virtual void state_register(JKRHeap::TState* p, u32 id) const; /* override */
+ /* vt[22] */ virtual bool state_compare(JKRHeap::TState const& r1,
+ JKRHeap::TState const& r2) const; /* override */
u8 field_0x6c;
u8 mCurrentGroupId;
@@ -92,9 +94,9 @@ private:
CMemBlock* mTailUsedList;
public:
- static JKRExpHeap* createRoot(int, bool);
- static JKRExpHeap* create(u32, JKRHeap*, bool);
- static JKRExpHeap* create(void*, u32, JKRHeap*, bool);
+ static JKRExpHeap* createRoot(int maxHeaps, bool errorFlag);
+ static JKRExpHeap* create(u32 size, JKRHeap* parent, bool errorFlag);
+ static JKRExpHeap* create(void* ptr, u32 size, JKRHeap* parent, bool errorFlag);
};
inline JKRExpHeap* JKRCreateExpHeap(u32 size, JKRHeap* parent, bool errorFlag) {
diff --git a/include/JSystem/JKernel/JKRHeap.h b/include/JSystem/JKernel/JKRHeap.h
index bd12375650..38aba619a0 100644
--- a/include/JSystem/JKernel/JKRHeap.h
+++ b/include/JSystem/JKernel/JKRHeap.h
@@ -29,7 +29,7 @@ public:
};
public:
- JKRHeap(void*, u32, JKRHeap*, bool);
+ JKRHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag);
virtual ~JKRHeap();
JKRHeap* becomeSystemHeap();
@@ -77,9 +77,9 @@ public:
/* vt[18] */ virtual s32 do_getTotalFreeSize() = 0;
/* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID);
/* vt[20] */ virtual u8 do_getCurrentGroupId();
- /* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const;
- /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const;
- /* vt[23] */ virtual void state_dump(JKRHeap::TState const&) const;
+ /* vt[21] */ virtual void state_register(JKRHeap::TState* p, u32 id) const;
+ /* vt[22] */ virtual bool state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const;
+ /* vt[23] */ virtual void state_dump(JKRHeap::TState const& p) const;
void setDebugFill(bool debugFill) { mDebugFill = debugFill; }
bool getDebugFill() const { return mDebugFill; }
@@ -123,7 +123,7 @@ protected:
/* 0x6A */ u8 padding_0x6a[2];
public:
- static bool initArena(char**, u32*, int);
+ static bool initArena(char** memory, u32* size, int maxHeaps);
static void* alloc(u32 size, int alignment, JKRHeap* heap);
static void free(void* ptr, JKRHeap* heap);
static s32 resize(void* ptr, u32 size, JKRHeap* heap);
@@ -212,7 +212,7 @@ inline void JKRFreeToSysHeap(void* ptr) {
systemHeap->free(ptr);
}
-inline void JKRFree(void* ptr) {
+inline void i_JKRFree(void* ptr) {
JKRHeap::free(ptr, NULL);
}