ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
sifcmd.h
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # (C)2001, Gustavo Scotti (gustavo@scotti.com)
7 # (c) 2003 Marcus R. Brown (mrbrown@0xd6.org)
8 # Licenced under Academic Free License version 2.0
9 # Review ps2sdk README & LICENSE files for further details.
10 */
11 
17 #ifndef __SIFCMD_H__
18 #define __SIFCMD_H__
19 
20 #include <tamtypes.h>
21 
22 typedef struct t_SifCmdHeader
23 {
27  u32 dsize:24;
29  void *dest;
31  int cid;
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 {
56  int index;
57  unsigned int value;
59 
60 #ifdef __cplusplus
61 extern "C"
62 #endif
63 typedef void (*SifCmdHandler_t)(void *data, void *harg);
64 
65 typedef struct t_SifCmdHandlerData
66 {
68  void *harg;
70 
72 #define RESET_ARG_MAX 79
73 
74 typedef struct _iop_reset_pkt {
75  struct t_SifCmdHeader header;
76  int arglen;
77  int mode;
78  char arg[RESET_ARG_MAX + 1];
80 
81 #ifdef __cplusplus
82 extern "C" {
83 #endif
84 
85 unsigned int SifSendCmd(int cmd, void *packet, int packet_size, void *src_extra,
86  void *dest_extra, int size_extra);
87 unsigned int iSifSendCmd(int cmd, void *packet, int packet_size, void *src_extra,
88  void *dest_extra, int size_extra);
89 void SifAddCmdHandler(int pos, SifCmdHandler_t handler, void *harg);
91 void SifInitCmd(void);
92 void SifExitCmd(void);
94 int SifGetSreg(int index);
95 
96 void SifWriteBackDCache(void *ptr, int size); //EE only
97 
98 //Send mode bits
100 #define SIF_CMD_M_INTR 0x01
102 #define SIF_CMD_M_WBDC 0x04
103 
104 #ifdef __cplusplus
105 }
106 #endif
107 
108 #endif /* __SIFCMD_H__ */
packet_t packet
Definition: font.c:24
u32 data
Definition: libmouse.c:36
struct @29::@30 pos
s32 index
Definition: libpad.c:194
void SifRemoveCmdHandler(int pos)
void SifExitCmd(void)
int SifGetSreg(int index)
unsigned int SifSendCmd(int cmd, void *packet, int packet_size, void *src_extra, void *dest_extra, int size_extra)
void SifWriteBackDCache(void *ptr, int size)
SifCmdHandlerData_t * SifSetCmdBuffer(SifCmdHandlerData_t *db, int size)
void(* SifCmdHandler_t)(void *data, void *harg)
Definition: sifcmd.h:63
void SifInitCmd(void)
void SifAddCmdHandler(int pos, SifCmdHandler_t handler, void *harg)
#define RESET_ARG_MAX
Definition: sifcmd.h:72
unsigned int iSifSendCmd(int cmd, void *packet, int packet_size, void *src_extra, void *dest_extra, int size_extra)
SifCmdHandler_t handler
Definition: sifcmd.h:67
void * dest
Definition: sifcmd.h:29
unsigned int value
Definition: sifcmd.h:57
SifCmdHeader_t header
Definition: sifcmd.h:55
unsigned int u32
Definition: tamtypes.h:30