mirror of
https://github.com/libretro/Play-.git
synced 2024-12-12 11:05:36 +00:00
106 lines
2.1 KiB
C
106 lines
2.1 KiB
C
#pragma once
|
|
|
|
#include "Types.h"
|
|
|
|
enum CONST_SIF_CMD
|
|
{
|
|
SIF_CMD_INIT = 0x80000002,
|
|
SIF_CMD_REND = 0x80000008,
|
|
SIF_CMD_BIND = 0x80000009,
|
|
SIF_CMD_CALL = 0x8000000A,
|
|
SIF_CMD_OTHERDATA = 0x8000000C,
|
|
};
|
|
|
|
struct SIFDMAREG
|
|
{
|
|
uint32 srcAddr;
|
|
uint32 dstAddr;
|
|
uint32 size;
|
|
uint32 flags;
|
|
};
|
|
static_assert(sizeof(SIFDMAREG) == 0x10, "sizeof(SIFDMAREG) must be 16 bytes.");
|
|
|
|
struct SIFCMDHEADER
|
|
{
|
|
uint32 size;
|
|
uint32 dest;
|
|
uint32 commandId;
|
|
uint32 optional;
|
|
};
|
|
static_assert(sizeof(SIFCMDHEADER) == 0x10, "sizeof(SIFCMDHEADER) must be 16 bytes.");
|
|
|
|
struct SIFRPCBIND
|
|
{
|
|
SIFCMDHEADER header;
|
|
uint32 recordId;
|
|
uint32 packetAddr;
|
|
uint32 rpcId;
|
|
uint32 clientDataAddr;
|
|
uint32 serverId;
|
|
};
|
|
static_assert(sizeof(SIFRPCBIND) == 0x24, "sizeof(SIFRPCBIND) must be 36 bytes.");
|
|
|
|
struct SIFRPCCALL
|
|
{
|
|
SIFCMDHEADER header;
|
|
uint32 recordId;
|
|
uint32 packetAddr;
|
|
uint32 rpcId;
|
|
uint32 clientDataAddr;
|
|
uint32 rpcNumber;
|
|
uint32 sendSize;
|
|
uint32 recv;
|
|
uint32 recvSize;
|
|
uint32 recvMode;
|
|
uint32 serverDataAddr;
|
|
};
|
|
static_assert(sizeof(SIFRPCCALL) == 0x38, "sizeof(SIFRPCCALL) must be 56 bytes.");
|
|
|
|
struct SIFRPCREQUESTEND
|
|
{
|
|
SIFCMDHEADER header;
|
|
uint32 recordId;
|
|
uint32 packetAddr;
|
|
uint32 rpcId;
|
|
uint32 clientDataAddr;
|
|
uint32 commandId;
|
|
uint32 serverDataAddr;
|
|
uint32 buffer;
|
|
uint32 cbuffer;
|
|
};
|
|
static_assert(sizeof(SIFRPCREQUESTEND) == 0x30, "sizeof(SIFRPCREQUESTEND) must be 48 bytes.");
|
|
|
|
struct SIFRPCOTHERDATA
|
|
{
|
|
SIFCMDHEADER header;
|
|
uint32 recordId;
|
|
uint32 packetAddr;
|
|
uint32 rpcId;
|
|
uint32 receiveDataAddr;
|
|
uint32 srcPtr;
|
|
uint32 dstPtr;
|
|
uint32 size;
|
|
};
|
|
static_assert(sizeof(SIFRPCOTHERDATA) == 0x2C, "sizeof(SIFRPCOTHERDATA) must be 44 bytes.");
|
|
|
|
struct SIFRPCHEADER
|
|
{
|
|
uint32 packetAddr;
|
|
uint32 rpcId;
|
|
uint32 semaId;
|
|
uint32 mode;
|
|
};
|
|
static_assert(sizeof(SIFRPCHEADER) == 0x10, "sizeof(SIFRPCHEADER) must be 16 bytes.");
|
|
|
|
struct SIFRPCCLIENTDATA
|
|
{
|
|
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.");
|