Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JKRAram.h
Go to the documentation of this file.
1#ifndef JKRARAM_H
2#define JKRARAM_H
3
7
8class JKRHeap;
9class JKRAMCommand;
10class JKRAramBlock;
11
16class JKRAram : public JKRThread {
17private:
18 JKRAram(u32, u32, s32);
19 virtual ~JKRAram();
20
21 /* vt[03] */ void* run(void); /* override */
22
23public:
28//private:
29 /* 0x00 */ // vtable
30 /* 0x04 */ // JKRThread
31 /* 0x7C */ u32 mAudioMemoryPtr;
33 /* 0x84 */ u32 mGraphMemoryPtr;
35 /* 0x8C */ u32 mAramMemoryPtr;
36 /* 0x90 */ u32 mAramMemorySize;
38 /* 0x98 */ u32 mStackArray[3];
39
40public:
41 static JKRAram* create(u32, u32, s32, s32, s32);
42 static void checkOkAddress(u8*, u32, JKRAramBlock*, u32);
43 static void changeGroupIdIfNeed(u8*, int);
45 static u8* aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*);
46 static void dump(void);
48 static JKRAram* getManager() { return sAramObject; }
51
52 static u8 decideAramGroupId(int groupId) {
53 u8 finalGroupId;
54 if (groupId < 0) {
55 finalGroupId = getAramHeap()->getCurrentGroupID();
56 } else {
57 finalGroupId = groupId;
58 }
59 return finalGroupId;
60 }
61
62 static u32 getSZSBufferSize() { return sSZSBufferSize; }
64
66
67private:
70 static OSMessage sMessageBuffer[4];
72};
73
75 return JKRAram::getAramHeap()->alloc(size, allocMode);
76}
77
78inline void JKRFreeToAram(JKRAramBlock* block) {
79 JKRAram::getAramHeap()->free(block);
80}
81
82inline u8* JKRAramToMainRam(u32 p1, u8* p2, u32 p3, JKRExpandSwitch p4, u32 p5, JKRHeap* p6,
83 int p7, u32* p8) {
84 return JKRAram::aramToMainRam(p1, p2, p3, p4, p5, p6, p7, p8);
85}
86
87inline JKRAramBlock* JKRMainRamToAram(u8 *buf, u32 bufSize, u32 alignedSize, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap *heap, int id, u32 *pSize) {
88 return JKRAram::mainRamToAram(buf, bufSize, alignedSize, expandSwitch, fileSize, heap, id, pSize);
89}
90
94
98
99inline u32 JKRGetAramUsedSize(u8 param_0) {
100 return JKRAram::getAramHeap()->getUsedSize(param_0);
101}
102
103// void JKRDecompressFromAramToMainRam(u32, void*, u32, u32, u32, u32*);
104
105#endif /* JKRARAM_H */
JKRAramBlock * JKRMainRamToAram(u8 *buf, u32 bufSize, u32 alignedSize, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap *heap, int id, u32 *pSize)
Definition JKRAram.h:87
void JKRFreeToAram(JKRAramBlock *block)
Definition JKRAram.h:78
u32 JKRGetAramUsedSize(u8 param_0)
Definition JKRAram.h:99
u32 JKRGetAramFreeSize()
Definition JKRAram.h:95
JKRAramBlock * JKRAllocFromAram(u32 size, JKRAramHeap::EAllocMode allocMode)
Definition JKRAram.h:74
u32 JKRGetAramTotalFreeSize()
Definition JKRAram.h:91
u8 * JKRAramToMainRam(u32 p1, u8 *p2, u32 p3, JKRExpandSwitch p4, u32 p5, JKRHeap *p6, int p7, u32 *p8)
Definition JKRAram.h:82
JKRExpandSwitch
Definition JKRDvdRipper.h:7
Definition JKRAramPiece.h:16
Definition JKRAramBlock.h:12
Definition JKRAramHeap.h:12
u32 getFreeSize()
Definition JKRAramHeap.cpp:89
u32 getUsedSize(u8)
EAllocMode
Definition JKRAramHeap.h:14
u8 getCurrentGroupID() const
Definition JKRAramHeap.h:36
JKRAramBlock * alloc(u32, EAllocMode)
Definition JKRAramHeap.cpp:27
void free(JKRAramBlock *block)
Definition JKRAramHeap.h:32
u32 getTotalFreeSize()
Definition JKRAramHeap.cpp:104
Definition JKRAram.h:16
static void changeGroupIdIfNeed(u8 *, int)
Definition JKRAram.cpp:116
u32 getGraphMemory() const
Definition JKRAram.h:26
static void checkOkAddress(u8 *, u32, JKRAramBlock *, u32)
Definition JKRAram.cpp:106
void * run(void)
Definition JKRAram.cpp:88
static OSMessageQueue sMessageQueue
Definition JKRAram.h:47
static JSUList< JKRAMCommand > & getCommandList()
Definition JKRAram.h:50
u32 getAudioMemory() const
Definition JKRAram.h:24
static JKRAram * sAramObject
Definition JKRAram.h:68
u32 mAramMemoryPtr
Definition JKRAram.h:35
static u32 sSZSBufferSize
Definition JKRAram.h:69
static JKRAram * create(u32, u32, s32, s32, s32)
Definition JKRAram.cpp:27
u32 mAudioMemoryPtr
Definition JKRAram.h:31
static JKRAramBlock * mainRamToAram(u8 *, u32, u32, JKRExpandSwitch, u32, JKRHeap *, int, u32 *)
Definition JKRAram.cpp:124
static u32 getSZSBufferSize()
Definition JKRAram.h:62
u32 mAudioMemorySize
Definition JKRAram.h:32
u32 mGraphMemoryPtr
Definition JKRAram.h:33
JKRAram(u32, u32, s32)
Definition JKRAram.cpp:49
static JKRAram * getManager()
Definition JKRAram.h:48
static void setSZSBufferSize(u32 size)
Definition JKRAram.h:63
u32 mStackArray[3]
Definition JKRAram.h:38
u32 mAramMemorySize
Definition JKRAram.h:36
u32 mGraphMemorySize
Definition JKRAram.h:34
static void dump(void)
static u8 * aramToMainRam(u32, u8 *, u32, JKRExpandSwitch, u32, JKRHeap *, int, u32 *)
Definition JKRAram.cpp:193
static u8 decideAramGroupId(int groupId)
Definition JKRAram.h:52
u32 getGraphMemSize() const
Definition JKRAram.h:27
static OSMessage sMessageBuffer[4]
Definition JKRAram.h:40
JKRAramHeap * mAramHeap
Definition JKRAram.h:37
virtual ~JKRAram()
Definition JKRAram.cpp:82
u32 getAudioMemSize() const
Definition JKRAram.h:25
static JKRAramHeap * getAramHeap()
Definition JKRAram.h:49
static JSUList< JKRAMCommand > sAramCommandList
Definition JKRAram.h:71
Definition JKRHeap.h:23
Definition JKRThread.h:23
Definition JSUList.h:96
void * OSMessage
Definition OSMessage.h:13
unsigned int size
Definition __os.h:106
unsigned long u32
Definition types.h:12
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
IOSResourceRequest * buf[RESPONSE_REQ_BUF_LEN]
Definition ipcclt.c:47
Definition OSMessage.h:18