mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 15:01:33 -04:00
60 lines
1.5 KiB
C++
60 lines
1.5 KiB
C++
#ifndef JASHEAPCTRL_H
|
|
#define JASHEAPCTRL_H
|
|
|
|
#include "JSystem/JSupport/JSUList.h"
|
|
#include "dolphin/os/OSMutex.h"
|
|
|
|
namespace JASystem {
|
|
namespace Kernel {
|
|
class TDisposer {
|
|
public:
|
|
virtual void onDispose() {}
|
|
};
|
|
|
|
class THeap {
|
|
public:
|
|
enum Type {
|
|
Type0,
|
|
Type1,
|
|
};
|
|
|
|
THeap(TDisposer*);
|
|
void initRootHeap(void*, u32, Type);
|
|
bool alloc(THeap*, u32);
|
|
bool free();
|
|
void insertChild(THeap* param_1, THeap* param_2, void* param_3, u32 param_4, bool param_5);
|
|
JASystem::Kernel::THeap* getTailHeap();
|
|
u32 getTailOffset();
|
|
u32 getCurOffset();
|
|
|
|
bool isAllocated() { return mBase; }
|
|
|
|
/* 0x00 */ JSUTree<THeap> mTree;
|
|
/* 0x1C */ OSMutex mMutex;
|
|
/* 0x34 */ TDisposer* mDisposer;
|
|
/* 0x38 */ Type mType;
|
|
/* 0x3C */ u8* mBase;
|
|
/* 0x40 */ u32 mSize;
|
|
/* 0x44 */ THeap* field_0x44;
|
|
};
|
|
|
|
class TSolidHeap {
|
|
public:
|
|
TSolidHeap();
|
|
~TSolidHeap() {}
|
|
int alloc(long param_1);
|
|
void freeAll();
|
|
void init(u8* param_1, long param_2);
|
|
int getRemain();
|
|
|
|
/* 0x00 */ u32 field_0x0;
|
|
/* 0x04 */ int field_0x4;
|
|
/* 0x08 */ int field_0x8;
|
|
/* 0x0C */ int field_0xc;
|
|
/* 0x10 */ int field_0x10;
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif /* JASHEAPCTRL_H */
|