sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
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
18#ifndef __SIO2MAN_H__
19#define __SIO2MAN_H__
20
21#include <types.h>
22#include <irx.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28struct _sio2_dma_arg { // size 12
29 void *addr;
30 int size;
31 int count;
32};
33
34typedef struct {
35 u32 stat6c;
36
37 u32 port_ctrl1[4];
38 u32 port_ctrl2[4];
39
40 u32 stat70;
41
42 u32 regdata[16];
43
44 u32 stat74;
45
46 u32 in_size;
47 u32 out_size;
48 u8 *in;
49 u8 *out;
50
51 struct _sio2_dma_arg in_dma;
52 struct _sio2_dma_arg out_dma;
54
55extern void sio2_ctrl_set(u32 val);
56extern u32 sio2_ctrl_get(void);
57extern u32 sio2_stat6c_get(void);
58extern void sio2_portN_ctrl1_set(int N, u32 val);
59extern u32 sio2_portN_ctrl1_get(int N);
60extern void sio2_portN_ctrl2_set(int N, u32 val);
61extern u32 sio2_portN_ctrl2_get(int N);
62extern u32 sio2_stat70_get(void);
63extern void sio2_regN_set(int N, u32 val);
64extern u32 sio2_regN_get(int N);
65extern u32 sio2_stat74_get(void);
66extern void sio2_unkn78_set(u32 val);
67extern u32 sio2_unkn78_get(void);
68extern void sio2_unkn7c_set(u32 val);
69extern u32 sio2_unkn7c_get(void);
70extern void sio2_data_out(u8 val);
71extern u8 sio2_data_in(void);
72extern void sio2_stat_set(u32 val);
73extern u32 sio2_stat_get(void);
74extern void sio2_pad_transfer_init(void);
75extern void sio2_mc_transfer_init(void);
76extern int sio2_transfer(sio2_transfer_data_t *td);
77
78#define sio2man_IMPORTS_start DECLARE_IMPORT_TABLE(sio2man, 1, 1)
79#define sio2man_IMPORTS_end END_IMPORT_TABLE
80
81#define I_sio2_ctrl_set DECLARE_IMPORT(4, sio2_ctrl_set)
82#define I_sio2_ctrl_get DECLARE_IMPORT(5, sio2_ctrl_get)
83#define I_sio2_stat6c_get DECLARE_IMPORT(6, sio2_stat6c_get)
84#define I_sio2_portN_ctrl1_set DECLARE_IMPORT(7, sio2_portN_ctrl1_set)
85#define I_sio2_portN_ctrl1_get DECLARE_IMPORT(8, sio2_portN_ctrl1_get)
86#define I_sio2_portN_ctrl2_set DECLARE_IMPORT(9, sio2_portN_ctrl2_set)
87#define I_sio2_portN_ctrl2_get DECLARE_IMPORT(10, sio2_portN_ctrl2_get)
88#define I_sio2_stat70_get DECLARE_IMPORT(11, sio2_stat70_get)
89#define I_sio2_regN_set DECLARE_IMPORT(12, sio2_regN_set)
90#define I_sio2_regN_get DECLARE_IMPORT(13, sio2_regN_get)
91#define I_sio2_stat74_get DECLARE_IMPORT(14, sio2_stat74_get)
92#define I_sio2_unkn78_set DECLARE_IMPORT(15, sio2_unkn78_set)
93#define I_sio2_unkn78_get DECLARE_IMPORT(16, sio2_unkn78_get)
94#define I_sio2_unkn7c_set DECLARE_IMPORT(17, sio2_unkn7c_set)
95#define I_sio2_unkn7c_get DECLARE_IMPORT(18, sio2_unkn7c_get)
96#define I_sio2_data_out DECLARE_IMPORT(19, sio2_data_out)
97#define I_sio2_data_in DECLARE_IMPORT(20, sio2_data_in)
98#define I_sio2_stat_set DECLARE_IMPORT(21, sio2_stat_set)
99#define I_sio2_stat_get DECLARE_IMPORT(22, sio2_stat_get)
100#define I_sio2_pad_transfer_init DECLARE_IMPORT(23, sio2_pad_transfer_init)
101#define I_sio2_mc_transfer_init DECLARE_IMPORT(24, sio2_mc_transfer_init)
102#define I_sio2_transfer DECLARE_IMPORT(25, sio2_transfer)
103
104#ifdef __cplusplus
105}
106#endif
107
108#endif /* __SIO2MAN_H__ */