PS2SDK
PS2 Homebrew Libraries
sio2man.h
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright (c) 2003 Marcus R. Brown <mrbrown@0xd6.org>
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
17 #ifndef __SIO2MAN_H__
18 #define __SIO2MAN_H__
19 
20 #include <types.h>
21 #include <irx.h>
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 struct _sio2_dma_arg { // size 12
28  void *addr;
29  int size;
30  int count;
31 };
32 
33 typedef struct {
34  u32 stat6c;
35 
36  u32 port_ctrl1[4];
37  u32 port_ctrl2[4];
38 
39  u32 stat70;
40 
41  u32 regdata[16];
42 
43  u32 stat74;
44 
45  u32 in_size;
46  u32 out_size;
47  u8 *in;
48  u8 *out;
49 
50  struct _sio2_dma_arg in_dma;
51  struct _sio2_dma_arg out_dma;
53 
54 extern void sio2_ctrl_set(u32 val);
55 extern u32 sio2_ctrl_get(void);
56 extern u32 sio2_stat6c_get(void);
57 extern void sio2_portN_ctrl1_set(int N, u32 val);
58 extern u32 sio2_portN_ctrl1_get(int N);
59 extern void sio2_portN_ctrl2_set(int N, u32 val);
60 extern u32 sio2_portN_ctrl2_get(int N);
61 extern u32 sio2_stat70_get(void);
62 extern void sio2_regN_set(int N, u32 val);
63 extern u32 sio2_regN_get(int N);
64 extern u32 sio2_stat74_get(void);
65 extern void sio2_unkn78_set(u32 val);
66 extern u32 sio2_unkn78_get(void);
67 extern void sio2_unkn7c_set(u32 val);
68 extern u32 sio2_unkn7c_get(void);
69 extern void sio2_data_out(u8 val);
70 extern u8 sio2_data_in(void);
71 extern void sio2_stat_set(u32 val);
72 extern u32 sio2_stat_get(void);
73 extern void sio2_pad_transfer_init(void);
74 extern void sio2_mc_transfer_init(void);
75 extern int sio2_transfer(sio2_transfer_data_t *td);
76 
77 #define sio2man_IMPORTS_start DECLARE_IMPORT_TABLE(sio2man, 1, 1)
78 #define sio2man_IMPORTS_end END_IMPORT_TABLE
79 
80 #define I_sio2_ctrl_set DECLARE_IMPORT(4, sio2_ctrl_set)
81 #define I_sio2_ctrl_get DECLARE_IMPORT(5, sio2_ctrl_get)
82 #define I_sio2_stat6c_get DECLARE_IMPORT(6, sio2_stat6c_get)
83 #define I_sio2_portN_ctrl1_set DECLARE_IMPORT(7, sio2_portN_ctrl1_set)
84 #define I_sio2_portN_ctrl1_get DECLARE_IMPORT(8, sio2_portN_ctrl1_get)
85 #define I_sio2_portN_ctrl2_set DECLARE_IMPORT(9, sio2_portN_ctrl2_set)
86 #define I_sio2_portN_ctrl2_get DECLARE_IMPORT(10, sio2_portN_ctrl2_get)
87 #define I_sio2_stat70_get DECLARE_IMPORT(11, sio2_stat70_get)
88 #define I_sio2_regN_set DECLARE_IMPORT(12, sio2_regN_set)
89 #define I_sio2_regN_get DECLARE_IMPORT(13, sio2_regN_get)
90 #define I_sio2_stat74_get DECLARE_IMPORT(14, sio2_stat74_get)
91 #define I_sio2_unkn78_set DECLARE_IMPORT(15, sio2_unkn78_set)
92 #define I_sio2_unkn78_get DECLARE_IMPORT(16, sio2_unkn78_get)
93 #define I_sio2_unkn7c_set DECLARE_IMPORT(17, sio2_unkn7c_set)
94 #define I_sio2_unkn7c_get DECLARE_IMPORT(18, sio2_unkn7c_get)
95 #define I_sio2_data_out DECLARE_IMPORT(19, sio2_data_out)
96 #define I_sio2_data_in DECLARE_IMPORT(20, sio2_data_in)
97 #define I_sio2_stat_set DECLARE_IMPORT(21, sio2_stat_set)
98 #define I_sio2_stat_get DECLARE_IMPORT(22, sio2_stat_get)
99 #define I_sio2_pad_transfer_init DECLARE_IMPORT(23, sio2_pad_transfer_init)
100 #define I_sio2_mc_transfer_init DECLARE_IMPORT(24, sio2_mc_transfer_init)
101 #define I_sio2_transfer DECLARE_IMPORT(25, sio2_transfer)
102 
103 #ifdef __cplusplus
104 }
105 #endif
106 
107 #endif /* __SIO2MAN_H__ */
irx.h
_sio2_dma_arg
Definition: sio2man.h:27
sio2_transfer_data_t
Definition: sio2man.h:33