PS2SDK
PS2 Homebrew Libraries
ps2_sbus.h
Go to the documentation of this file.
1 
6 #ifndef __PS2_SBUS_H__
7 #define __PS2_SBUS_H__
8 
9 #include <tamtypes.h>
10 #include <ps2_reg_defs.h>
11 
12 #ifdef _IOP
13 #include <irx.h>
14 
15 #define sbus_IMPORTS_start DECLARE_IMPORT_TABLE(sbus, 1, 1)
16 #define sbus_IMPORTS_end END_IMPORT_TABLE
17 #endif
18 
19 typedef void (*SBUS_IrqHandlerFunc)(int irq, void *param);
20 
21 typedef struct st_SBUS_IrqHandler
22 {
23  SBUS_IrqHandlerFunc func;
24  void *param;
26 
27 typedef struct st_SIF2_CmdPkt
28 {
30  u32 cid;
32  u32 size;
34  u32 extra;
37 } SIF2_CmdPkt;
38 
39 typedef void (*SIF2_CmdHandlerFunc)(SIF2_CmdPkt *pkt, void *param);
40 
41 typedef struct st_SIF2_CmdHandler
42 {
43  SIF2_CmdHandlerFunc func;
44  void *param;
46 
47 // SBUS
48 extern int SBUS_init(void);
49 extern int SBUS_deinit(void);
50 extern void *SBUS_set_irq_handler(int irq, SBUS_IrqHandlerFunc func, void *param);
51 extern int SBUS_rem_irq_handler(int irq);
52 extern u32 SBUS_get_reg(int reg_no);
53 extern void SBUS_set_reg(int reg_no, u32 val);
54 extern int SBUS_interrupt_remote(int irq);
55 
56 // SIF2
57 extern int SIF2_init(void);
58 extern int SIF2_deinit(void);
59 extern int SIF2_set_dma(u32 addr, u32 size, u32 attr);
60 extern void SIF2_sync_dma(void);
61 
62 // SIF2 Command
63 extern int SIF2_init_cmd(void);
64 extern int SIF2_set_cmd_handler(int cid, SIF2_CmdHandlerFunc func, void *param);
65 extern int SIF2_rem_cmd_handler(int cid);
66 extern void SIF2_send_cmd(u32 cid, void *extra, int extra_size);
67 extern void SBUS_check_intr(void);
68 
69 // SBUS
70 #define I_SBUS_init DECLARE_IMPORT(4, SBUS_init)
71 #define I_SBUS_deinit DECLARE_IMPORT(5, SBUS_deinit)
72 #define I_SBUS_set_irq_handler DECLARE_IMPORT(6, SBUS_set_irq_handler)
73 #define I_SBUS_rem_irq_handler DECLARE_IMPORT(7, SBUS_rem_irq_handler)
74 #define I_SBUS_get_reg DECLARE_IMPORT(8, SBUS_get_reg)
75 #define I_SBUS_set_reg DECLARE_IMPORT(9, SBUS_set_reg)
76 #define I_SBUS_interrupt_remote DECLARE_IMPORT(10, SBUS_interrupt_remote)
77 #define I_SBUS_check_intr DECLARE_IMPORT(11, SBUS_check_intr)
78 
79 // SIF2 DMA
80 #define I_SIF2_init DECLARE_IMPORT(12, SIF2_init)
81 #define I_SIF2_deinit DECLARE_IMPORT(13, SIF2_deinit)
82 #define I_SIF2_set_dma DECLARE_IMPORT(14, SIF2_set_dma)
83 #define I_SIF2_sync_dma DECLARE_IMPORT(15, SIF2_sync_dma)
84 
85 // SIF2 CMD
86 #define I_SIF2_init_cmd DECLARE_IMPORT(16, SIF2_init_cmd)
87 #define I_SIF2_set_cmd_handler DECLARE_IMPORT(17, SIF2_set_cmd_handler)
88 #define I_SIF2_rem_cmd_handler DECLARE_IMPORT(18, SIF2_rem_cmd_handler)
89 #define I_SIF2_send_cmd DECLARE_IMPORT(19, SIF2_send_cmd)
90 
91 #endif /* __PS2_SBUS_H__ */
st_SIF2_CmdHandler
Definition: ps2_sbus.h:41
st_SIF2_CmdPkt
Definition: ps2_sbus.h:27
st_SIF2_CmdPkt::extra_size
u32 extra_size
Definition: ps2_sbus.h:36
irx.h
tamtypes.h
st_SIF2_CmdPkt::extra
u32 extra
Definition: ps2_sbus.h:34
st_SIF2_CmdPkt::size
u32 size
Definition: ps2_sbus.h:32
st_SBUS_IrqHandler
Definition: ps2_sbus.h:21
ps2_reg_defs.h
st_SIF2_CmdPkt::cid
u32 cid
Definition: ps2_sbus.h:30