Play-/Source/SifDefs.h

116 lines
2.3 KiB
C
Raw Normal View History

#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-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
{
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 04:16:16 -05:00
static_assert(sizeof(SIFCMDHEADER) == 0x10, "sizeof(SIFCMDHEADER) must be 16 bytes.");
struct SIFSETSREG
{
2018-04-30 21:01:23 +01:00
SIFCMDHEADER header;
uint32 index;
uint32 value;
};
static_assert(sizeof(SIFSETSREG) == 0x18, "sizeof(SIFSETREG) must be 24 bytes.");
2014-11-06 04:16:16 -05:00
struct SIFRPCBIND
{
2018-04-30 21:01:23 +01:00
SIFCMDHEADER header;
uint32 recordId;
uint32 packetAddr;
uint32 rpcId;
uint32 clientDataAddr;
uint32 serverId;
};
2014-11-06 04:16:16 -05:00
static_assert(sizeof(SIFRPCBIND) == 0x24, "sizeof(SIFRPCBIND) must be 36 bytes.");
2014-11-06 04:16:16 -05:00
struct SIFRPCCALL
{
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 04:16:16 -05:00
static_assert(sizeof(SIFRPCREQUESTEND) == 0x30, "sizeof(SIFRPCREQUESTEND) must be 48 bytes.");
2014-11-06 04:16:16 -05:00
struct SIFRPCOTHERDATA
{
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 04:16:16 -05:00
static_assert(sizeof(SIFRPCOTHERDATA) == 0x2C, "sizeof(SIFRPCOTHERDATA) must be 44 bytes.");
struct SIFRPCHEADER
{
2018-04-30 21:01:23 +01:00
uint32 packetAddr;
uint32 rpcId;
uint32 semaId;
uint32 mode;
};
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;
};
static_assert(sizeof(SIFRPCCLIENTDATA) == 0x28, "sizeof(SIFRPCCLIENTDATA) must be 40 bytes.");