mirror of https://github.com/zeldaret/tp.git
101 lines
2.4 KiB
C++
101 lines
2.4 KiB
C++
#ifndef JHICOMM_H
|
|
#define JHICOMM_H
|
|
|
|
#include "JSystem/JHostIO/JHICommonMem.h"
|
|
|
|
class JHICommBufHeader {
|
|
public:
|
|
void init();
|
|
void init(JHICommonMem*, u32, u32, u32);
|
|
int load();
|
|
|
|
u32 getMsgBufSize();
|
|
|
|
/* 0x00 */ JHICommonMem* mp_memBuffer;
|
|
/* 0x04 */ u32 field_0x4;
|
|
/* 0x08 */ u32 m_msgBufSize;
|
|
/* 0x0C */ u32 field_0xc;
|
|
/* 0x10 */ u32 field_0x10;
|
|
/* 0x14 */ u32 field_0x14;
|
|
/* 0x18 */ u32 field_0x18;
|
|
/* 0x1C */ u32 field_0x1c;
|
|
/* 0x20 */ u32 field_0x20;
|
|
/* 0x24 */ u32 field_0x24;
|
|
/* 0x28 */ u32 m_alignment;
|
|
/* 0x2C */ u32 field_0x2c;
|
|
};
|
|
|
|
class JHICommBufWriter {
|
|
public:
|
|
struct Header : public JHICommBufHeader {
|
|
int load();
|
|
int getRemSize();
|
|
void updatePutAdrs();
|
|
u32 getWritebleSize() const;
|
|
void alignPutAdrs();
|
|
void addPutAdrs(int);
|
|
u32 getPutAdrs() const;
|
|
|
|
/* 0x30 */ u8 field_0x30;
|
|
/* 0x31 */ u8 field_0x31;
|
|
/* 0x32 */ u8 field_0x32;
|
|
/* 0x33 */ u8 field_0x33;
|
|
/* 0x34 */ u32 field_0x34;
|
|
};
|
|
|
|
JHICommBufWriter(u32, u32, u32 alignment);
|
|
int writeBegin();
|
|
void writeEnd();
|
|
int write(void*, int);
|
|
|
|
/* 0x00 */ Header m_header;
|
|
/* 0x38 */ JHIMemBuf* mp_memBuffer;
|
|
};
|
|
|
|
class JHICommBufReader {
|
|
public:
|
|
struct Header : public JHICommBufHeader {
|
|
int load();
|
|
void updateGetAdrs();
|
|
u32 getReadableSize() const;
|
|
void addGetAdrs(int);
|
|
u32 getGetAdrs() const;
|
|
void alignGetAdrs();
|
|
int getContSize();
|
|
|
|
/* 0x30 */ u32 field_0x30;
|
|
};
|
|
|
|
JHICommBufReader(u32, u32, u32 alignment);
|
|
int readBegin();
|
|
void readEnd();
|
|
int read(void*, int);
|
|
|
|
u32 available() { return m_header.load() ? 0xFFFFFFFF : m_header.getReadableSize(); }
|
|
|
|
/* 0x00 */ Header m_header;
|
|
/* 0x34 */ JHIMemBuf* mp_memBuffer;
|
|
};
|
|
|
|
struct JHICmnMem {
|
|
u32 sendBegin() { return mp_writeBuf->writeBegin(); }
|
|
int sendCont(const void* param_0, int param_1) { return mp_writeBuf->write((void*)param_0, param_1); }
|
|
void sendEnd() { mp_writeBuf->writeEnd(); }
|
|
|
|
void setBuf(JHICommBufReader* pReader, JHICommBufWriter* pWriter) {
|
|
mp_readBuf = pReader;
|
|
mp_writeBuf = pWriter;
|
|
}
|
|
|
|
/* 0x0 */ JHICommBufReader* mp_readBuf;
|
|
/* 0x4 */ JHICommBufWriter* mp_writeBuf;
|
|
/* 0x8 */ u8 field_0x8;
|
|
};
|
|
|
|
struct JHIContext {
|
|
JHICommBufReader* mp_reader;
|
|
JHICommBufWriter* mp_writer;
|
|
};
|
|
|
|
#endif /* JHICOMM_H */
|