2014-11-06 00:35:27 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Types.h"
|
|
|
|
|
|
|
|
enum CONST_SIF_CMD
|
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
SIF_CMD_SETSREG = 0x80000001,
|
|
|
|
SIF_CMD_INIT = 0x80000002,
|
|
|
|
SIF_CMD_REND = 0x80000008,
|
|
|
|
SIF_CMD_BIND = 0x80000009,
|
|
|
|
SIF_CMD_CALL = 0x8000000A,
|
|
|
|
SIF_CMD_OTHERDATA = 0x8000000C,
|
2014-11-06 00:35:27 -05:00
|
|
|
};
|
|
|
|
|
2014-11-07 02:27:33 -05:00
|
|
|
struct SIFDMAREG
|
|
|
|
{
|
|
|
|
uint32 srcAddr;
|
|
|
|
uint32 dstAddr;
|
|
|
|
uint32 size;
|
|
|
|
uint32 flags;
|
|
|
|
};
|
|
|
|
static_assert(sizeof(SIFDMAREG) == 0x10, "sizeof(SIFDMAREG) must be 16 bytes.");
|
|
|
|
|
2014-11-06 04:16:16 -05:00
|
|
|
struct SIFCMDHEADER
|
2014-11-06 00:35:27 -05:00
|
|
|
{
|
2016-11-28 22:46:42 -05:00
|
|
|
uint32 packetSize : 8;
|
2018-04-30 21:01:23 +01:00
|
|
|
uint32 destSize : 24;
|
2014-11-06 04:16:16 -05:00
|
|
|
uint32 dest;
|
|
|
|
uint32 commandId;
|
|
|
|
uint32 optional;
|
2014-11-06 00:35:27 -05:00
|
|
|
};
|
2014-11-06 04:16:16 -05:00
|
|
|
static_assert(sizeof(SIFCMDHEADER) == 0x10, "sizeof(SIFCMDHEADER) must be 16 bytes.");
|
2014-11-06 00:35:27 -05:00
|
|
|
|
2016-10-31 20:58:12 -04:00
|
|
|
struct SIFSETSREG
|
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
SIFCMDHEADER header;
|
|
|
|
uint32 index;
|
|
|
|
uint32 value;
|
2016-10-31 20:58:12 -04:00
|
|
|
};
|
|
|
|
static_assert(sizeof(SIFSETSREG) == 0x18, "sizeof(SIFSETREG) must be 24 bytes.");
|
|
|
|
|
2014-11-06 04:16:16 -05:00
|
|
|
struct SIFRPCBIND
|
2014-11-06 00:35:27 -05:00
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
SIFCMDHEADER header;
|
|
|
|
uint32 recordId;
|
|
|
|
uint32 packetAddr;
|
|
|
|
uint32 rpcId;
|
|
|
|
uint32 clientDataAddr;
|
|
|
|
uint32 serverId;
|
2014-11-06 00:35:27 -05:00
|
|
|
};
|
2014-11-06 04:16:16 -05:00
|
|
|
static_assert(sizeof(SIFRPCBIND) == 0x24, "sizeof(SIFRPCBIND) must be 36 bytes.");
|
2014-11-06 00:35:27 -05:00
|
|
|
|
2014-11-06 04:16:16 -05:00
|
|
|
struct SIFRPCCALL
|
2014-11-06 00:35:27 -05:00
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
SIFCMDHEADER header;
|
|
|
|
uint32 recordId;
|
|
|
|
uint32 packetAddr;
|
|
|
|
uint32 rpcId;
|
|
|
|
uint32 clientDataAddr;
|
|
|
|
uint32 rpcNumber;
|
|
|
|
uint32 sendSize;
|
|
|
|
uint32 recv;
|
|
|
|
uint32 recvSize;
|
|
|
|
uint32 recvMode;
|
|
|
|
uint32 serverDataAddr;
|
2014-11-06 04:16:16 -05:00
|
|
|
};
|
|
|
|
static_assert(sizeof(SIFRPCCALL) == 0x38, "sizeof(SIFRPCCALL) must be 56 bytes.");
|
|
|
|
|
|
|
|
struct SIFRPCREQUESTEND
|
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
SIFCMDHEADER header;
|
|
|
|
uint32 recordId;
|
|
|
|
uint32 packetAddr;
|
|
|
|
uint32 rpcId;
|
|
|
|
uint32 clientDataAddr;
|
|
|
|
uint32 commandId;
|
|
|
|
uint32 serverDataAddr;
|
|
|
|
uint32 buffer;
|
|
|
|
uint32 cbuffer;
|
2014-11-06 00:35:27 -05:00
|
|
|
};
|
2014-11-06 04:16:16 -05:00
|
|
|
static_assert(sizeof(SIFRPCREQUESTEND) == 0x30, "sizeof(SIFRPCREQUESTEND) must be 48 bytes.");
|
2014-11-06 00:35:27 -05:00
|
|
|
|
2014-11-06 04:16:16 -05:00
|
|
|
struct SIFRPCOTHERDATA
|
2014-11-06 00:35:27 -05:00
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
SIFCMDHEADER header;
|
|
|
|
uint32 recordId;
|
|
|
|
uint32 packetAddr;
|
|
|
|
uint32 rpcId;
|
|
|
|
uint32 receiveDataAddr;
|
|
|
|
uint32 srcPtr;
|
|
|
|
uint32 dstPtr;
|
|
|
|
uint32 size;
|
2014-11-06 00:35:27 -05:00
|
|
|
};
|
2014-11-06 04:16:16 -05:00
|
|
|
static_assert(sizeof(SIFRPCOTHERDATA) == 0x2C, "sizeof(SIFRPCOTHERDATA) must be 44 bytes.");
|
2014-11-06 00:35:27 -05:00
|
|
|
|
|
|
|
struct SIFRPCHEADER
|
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
uint32 packetAddr;
|
|
|
|
uint32 rpcId;
|
|
|
|
uint32 semaId;
|
|
|
|
uint32 mode;
|
2014-11-06 00:35:27 -05:00
|
|
|
};
|
|
|
|
static_assert(sizeof(SIFRPCHEADER) == 0x10, "sizeof(SIFRPCHEADER) must be 16 bytes.");
|
|
|
|
|
|
|
|
struct SIFRPCCLIENTDATA
|
|
|
|
{
|
2018-04-30 21:01:23 +01:00
|
|
|
SIFRPCHEADER header;
|
|
|
|
uint32 command;
|
|
|
|
uint32 buffPtr;
|
|
|
|
uint32 cbuffPtr;
|
|
|
|
uint32 endFctPtr;
|
|
|
|
uint32 endParam;
|
|
|
|
uint32 serverDataAddr;
|
2014-11-06 00:35:27 -05:00
|
|
|
};
|
|
|
|
static_assert(sizeof(SIFRPCCLIENTDATA) == 0x28, "sizeof(SIFRPCCLIENTDATA) must be 40 bytes.");
|