PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
sifcmd-common.h
Go to the documentation of this file.
1
/*
2
# _____ ___ ____ ___ ____
3
# ____| | ____| | | |____|
4
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5
#-----------------------------------------------------------------------
6
# Copyright ps2dev - http://www.ps2dev.org
7
# Licenced under Academic Free License version 2.0
8
# Review ps2sdk README & LICENSE files for further details.
9
*/
10
16
#ifndef __SIFCMD_COMMON_H__
17
#define __SIFCMD_COMMON_H__
18
19
#include <
tamtypes.h
>
20
22
typedef
struct
t_SifCmdHeader
23
{
25
u32
psize
: 8;
27
u32
dsize
: 24;
29
void
*
dest
;
31
int
cid
;
33
u32
opt
;
34
}
SifCmdHeader_t
;
35
37
#define SIF_CMD_ID_SYSTEM 0x80000000
38
39
#define SIF_CMD_CHANGE_SADDR (SIF_CMD_ID_SYSTEM | 0)
40
#define SIF_CMD_SET_SREG (SIF_CMD_ID_SYSTEM | 1)
41
#define SIF_CMD_INIT_CMD (SIF_CMD_ID_SYSTEM | 2)
42
#define SIF_CMD_RESET_CMD (SIF_CMD_ID_SYSTEM | 3)
43
#define SIF_CMD_RPC_END (SIF_CMD_ID_SYSTEM | 8)
44
#define SIF_CMD_RPC_BIND (SIF_CMD_ID_SYSTEM | 9)
45
#define SIF_CMD_RPC_CALL (SIF_CMD_ID_SYSTEM | 10)
46
#define SIF_CMD_RPC_RDATA (SIF_CMD_ID_SYSTEM | 12)
47
49
#define SIF_SREG_RPCINIT 0
50
54
typedef
struct
t_SifCmdSRegData
55
{
56
SifCmdHeader_t
header;
57
int
index;
58
unsigned
int
value;
59
}
SifCmdSRegData_t
;
60
61
#ifdef __cplusplus
62
extern
"C"
63
#endif
64
typedef
void (*SifCmdHandler_t)(
void
*data,
void
*harg);
65
66
typedef
struct
t_SifCmdHandlerData
67
{
68
SifCmdHandler_t handler;
69
void
*harg;
70
}
SifCmdHandlerData_t
;
71
72
typedef
struct
t_SifCmdSysHandlerData
73
{
74
SifCmdHandler_t handler;
75
void
*harg;
76
void
*unknown08;
77
}
SifCmdSysHandlerData_t
;
78
80
#define RESET_ARG_MAX 79
81
82
typedef
struct
_iop_reset_pkt
83
{
84
struct
t_SifCmdHeader
header;
85
int
arglen;
86
int
mode;
87
char
arg[
RESET_ARG_MAX
+ 1];
88
}
SifCmdResetData_t
;
89
90
#ifdef __cplusplus
91
extern
"C"
{
92
#endif
93
94
extern
void
sceSifInitCmd(
void
);
95
extern
void
sceSifExitCmd(
void
);
96
extern
unsigned
int
sceSifGetSreg(
int
sreg);
97
extern
void
sceSifSetSreg(
int
sreg,
unsigned
int
value);
98
extern
void
sceSifSetCmdBuffer(
SifCmdHandlerData_t
*db,
int
size);
99
extern
void
sceSifSetSysCmdBuffer(
SifCmdSysHandlerData_t
*db,
int
size);
100
extern
void
sceSifAddCmdHandler(
int
cid
, SifCmdHandler_t handler,
void
*harg);
101
extern
void
sceSifRemoveCmdHandler(
int
cid
);
102
extern
unsigned
int
sceSifSendCmd(
int
cid
,
void
*packet,
int
packet_size,
void
*src_extra,
103
void
*dest_extra,
int
size_extra);
104
extern
unsigned
int
isceSifSendCmd(
int
cid
,
void
*packet,
int
packet_size,
void
*src_extra,
105
void
*dest_extra,
int
size_extra);
106
107
#ifdef _EE
108
extern
void
sceSifWriteBackDCache(
void
*ptr,
int
size);
// EE only
109
#endif
110
#ifdef _IOP
111
extern
unsigned
int
sceSifSendCmdIntr(
int
cid
,
void
*packet,
int
packet_size,
void
*src_extra,
112
void
*dest_extra,
int
size_extra,
void
(*completioncb)(
void
*userdata),
void
*userdata);
113
extern
unsigned
int
isceSifSendCmdIntr(
int
cid
,
void
*packet,
int
packet_size,
void
*src_extra,
114
void
*dest_extra,
int
size_extra,
void
(*completioncb)(
void
*userdata),
void
*userdata);
115
#endif
116
117
#ifdef __cplusplus
118
}
119
#endif
120
121
// For backwards compatibility purposes
122
#define SifInitCmd(...) sceSifInitCmd(__VA_ARGS__)
123
#define SifExitCmd(...) sceSifExitCmd(__VA_ARGS__)
124
#define SifGetSreg(...) sceSifGetSreg(__VA_ARGS__)
125
#define SifSetCmdBuffer(...) sceSifSetCmdBuffer(__VA_ARGS__)
126
#define SifAddCmdHandler(...) sceSifAddCmdHandler(__VA_ARGS__)
127
#define SifRemoveCmdHandler(...) sceSifRemoveCmdHandler(__VA_ARGS__)
128
#define SifSendCmd(...) sceSifSendCmd(__VA_ARGS__)
129
#define iSifSendCmd(...) isceSifSendCmd(__VA_ARGS__)
130
#define SifWriteBackDCache(...) sceSifWriteBackDCache(__VA_ARGS__)
131
132
// Send mode bits
134
#define SIF_CMD_M_INTR 0x01
136
#define SIF_CMD_M_WBDC 0x04
137
138
#endif
/* __SIFCMD_COMMON_H__ */
t_SifCmdHeader::dest
void * dest
Definition
sifcmd-common.h:29
t_SifCmdHeader::opt
u32 opt
Definition
sifcmd-common.h:33
SifCmdHeader_t
struct t_SifCmdHeader SifCmdHeader_t
t_SifCmdHeader::psize
u32 psize
Definition
sifcmd-common.h:25
t_SifCmdHeader::dsize
u32 dsize
Definition
sifcmd-common.h:27
t_SifCmdHeader::cid
int cid
Definition
sifcmd-common.h:31
RESET_ARG_MAX
#define RESET_ARG_MAX
Definition
sifcmd-common.h:80
SifCmdSRegData_t
struct t_SifCmdSRegData SifCmdSRegData_t
_iop_reset_pkt
Definition
sifcmd-common.h:83
t_SifCmdHandlerData
Definition
sifcmd-common.h:67
t_SifCmdHeader
Definition
sifcmd-common.h:23
t_SifCmdSRegData
Definition
sifcmd-common.h:55
t_SifCmdSysHandlerData
Definition
sifcmd-common.h:73
tamtypes.h
common
include
sifcmd-common.h
Generated on Tue Jan 28 2025 10:57:07 for PS2SDK by
1.12.0