diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-08-30 14:22:17 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-30 15:22:17 -0600 |
| commit | f8979749e3ef8e8cacf2ea8f474c7f23fc5cb6b3 (patch) | |
| tree | 69659df2105266e9b26a4d50b9a2d610b3e437a2 /include/JSystem/JKernel | |
| parent | bc30d007e11458a198c5725626a10bb06a5da536 (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.h | 82 | ||||
| -rw-r--r-- | include/JSystem/JKernel/JKRHeap.h | 12 |
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); } |
