Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JHICommonMem.h
Go to the documentation of this file.
1#ifndef JHICOMMONMEM_H
2#define JHICOMMONMEM_H
3
4#include <dolphin/types.h>
5
6inline u32 JHIhtonl(u32 v) {
7#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
8 return v;
9#else
10 // todo
11#endif
12}
13
14inline u32 JHIntohl(u32 v) {
15 return v;
16}
17
18template<typename T> class JHIComPortManager;
19
20template <typename T>
21struct JHITag {
22 JHITag(u32 tag) {
23 m_tag = tag;
24 mp_data = NULL;
25 }
26
27 s32 send(const void* param_0, s32 param_1) {
28 u32 sp10[2];
29 sp10[0] = JHIhtonl(m_tag);
30 sp10[1] = JHIhtonl(param_1);
31
32 if (mp_data->port.sendBegin() >= param_1 + 8) {
33 mp_data->port.sendCont(sp10, 8);
34 mp_data->port.sendCont(param_0, param_1);
35 mp_data->port.sendEnd();
36 }
37
38 return param_1;
39 }
40
41 virtual ~JHITag() {}
42 virtual void receive(const char*, s32) {}
43
44 /* 0x4 */ u32 m_tag;
46};
47
48class JHIMemBuf;
49
51public:
52 virtual ~JHICommonMem() {}
53 virtual int create() = 0;
54 virtual int open() = 0;
55 virtual void close() = 0;
56 virtual u8* getPointer() const = 0;
57 virtual void readIO(u32 position, u32* out_data) const = 0;
58 virtual u32 readIO(u32 position) const = 0;
59 virtual void writeIO(u32 position, u32 data) const = 0;
60 virtual void writeIO(u32 position, u8* src_data, u32 length) const = 0;
61
62 static JHIMemBuf* Instance();
64};
65
66class JHIMemBuf : public JHICommonMem {
67public:
68 JHIMemBuf();
69
70 virtual ~JHIMemBuf();
71 virtual int create();
72 virtual int open();
73 virtual void close();
74 virtual u8* getPointer() const;
75 virtual void readIO(u32 position, u32* out_data) const;
76 virtual u32 readIO(u32 position) const;
77 virtual void writeIO(u32 position, u32 data) const;
78 virtual void writeIO(u32 position, u8* src_data, u32 length) const;
79
80 /* 0x4 */ u8* mp_buffer;
81};
82
83#endif /* JHICOMMONMEM_H */
u32 JHIntohl(u32 v)
Definition JHICommonMem.h:14
u32 JHIhtonl(u32 v)
Definition JHICommonMem.h:6
Definition JOREntry.h:29
Definition JHICommonMem.h:50
virtual void close()=0
static JHIMemBuf * Instance()
Definition JHICommonMem.cpp:7
virtual ~JHICommonMem()
Definition JHICommonMem.h:52
virtual u32 readIO(u32 position) const =0
virtual void writeIO(u32 position, u32 data) const =0
virtual u8 * getPointer() const =0
virtual void readIO(u32 position, u32 *out_data) const =0
virtual void writeIO(u32 position, u8 *src_data, u32 length) const =0
static JHIMemBuf * instance
Definition JHICommonMem.h:63
virtual int open()=0
virtual int create()=0
Definition JHICommonMem.h:66
u8 * mp_buffer
Definition JHICommonMem.h:80
virtual int create()
Definition JHIMemBuf.cpp:7
virtual u8 * getPointer() const
Definition JHIMemBuf.cpp:37
virtual void writeIO(u32 position, u32 data) const
Definition JHIMemBuf.cpp:64
virtual void readIO(u32 position, u32 *out_data) const
Definition JHIMemBuf.cpp:47
virtual void close()
Definition JHIMemBuf.cpp:27
JHIMemBuf()
Definition JHICommonMem.cpp:15
virtual ~JHIMemBuf()
Definition JHIMemBuf.cpp:33
virtual int open()
Definition JHIMemBuf.cpp:23
double v
Definition e_pow.c:114
unsigned long u32
Definition types.h:12
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
Definition JHICommonMem.h:21
JHITag(u32 tag)
Definition JHICommonMem.h:22
u32 m_tag
Definition JHICommonMem.h:44
s32 send(const void *param_0, s32 param_1)
Definition JHICommonMem.h:27
virtual void receive(const char *, s32)
Definition JHICommonMem.h:42
JHIComPortManager< T > * mp_data
Definition JHICommonMem.h:45
virtual ~JHITag()
Definition JHICommonMem.h:41