mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
4309c3db5b
* renamed func_XXX to _savegpr_XX * renamed func_XXX to _restgpr_XX * renamed func_XXX to _savefpr_XX * renamed func_XXX to _restfpr_XX * cleanup functions.h and moved intrisics to mwcc.h * formatting * cleanup functions.h * Added include/ar/ARQ.h * renamed func_XXX to _savegpr_25 * removed JKRAramPiece asm files * JKRAramHeap OK, JKRAramPiece OK * formatting * more formatting * Added const and removed explicit this-> * fixed merge problems * changed mMessages[1] to mMessage * foramatting Co-authored-by: Julgodis <> Co-authored-by: Pheenoh <pheenoh@gmail.com>
50 lines
1021 B
C++
50 lines
1021 B
C++
#ifndef __JKRARAMHEAP_H__
|
|
#define __JKRARAMHEAP_H__
|
|
|
|
#include "JSystem/JKernel/JKRDisposer/JKRDisposer.h"
|
|
#include "dolphin/types.h"
|
|
#include "global.h"
|
|
|
|
class JKRAramHeap : public JKRDisposer {
|
|
public:
|
|
enum EAllocMode {
|
|
HEAD = 0,
|
|
TAIL = 1,
|
|
|
|
__EALLOCMODE_FORCE_ENUM_S32 = INT32_MAX,
|
|
__EALLOCMODE_FORCE_ENUM_SIGNED = -1,
|
|
};
|
|
|
|
public:
|
|
JKRAramHeap(u32, u32);
|
|
virtual ~JKRAramHeap();
|
|
|
|
JKRAramBlock* alloc(u32, EAllocMode);
|
|
JKRAramBlock* allocFromHead(u32);
|
|
JKRAramBlock* allocFromTail(u32);
|
|
u32 getFreeSize(void);
|
|
u32 getTotalFreeSize(void);
|
|
// u32 getUsedSize(void);
|
|
void dump(void);
|
|
|
|
u8 getCurrentGroupID() const { return mGroupId; }
|
|
|
|
JKRHeap* getMgrHeap() const { return mHeap; }
|
|
|
|
private:
|
|
void lock() { OSLockMutex(&mMutex); }
|
|
|
|
void unlock() { OSUnlockMutex(&mMutex); }
|
|
|
|
public:
|
|
OSMutex mMutex;
|
|
JKRHeap* mHeap;
|
|
u32 mHeadAddress;
|
|
u32 mTailAddress;
|
|
u32 mSize;
|
|
u8 mGroupId;
|
|
u8 padding_0x41[3];
|
|
};
|
|
|
|
#endif
|