PS2SDK
PS2 Homebrew Libraries
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#ifndef __SIO2MAN_H__
18#define __SIO2MAN_H__
19
20#include <types.h>
21#include <irx.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27struct _sio2_dma_arg { // size 12
28 void *addr;
29 int size;
30 int count;
31};
32
33typedef 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
54extern void sio2_ctrl_set(u32 val);
55extern u32 sio2_ctrl_get(void);
56extern u32 sio2_stat6c_get(void);
57extern void sio2_portN_ctrl1_set(int N, u32 val);
58extern u32 sio2_portN_ctrl1_get(int N);
59extern void sio2_portN_ctrl2_set(int N, u32 val);
60extern u32 sio2_portN_ctrl2_get(int N);
61extern u32 sio2_stat70_get(void);
62extern void sio2_regN_set(int N, u32 val);
63extern u32 sio2_regN_get(int N);
64extern u32 sio2_stat74_get(void);
65extern void sio2_unkn78_set(u32 val);
66extern u32 sio2_unkn78_get(void);
67extern void sio2_unkn7c_set(u32 val);
68extern u32 sio2_unkn7c_get(void);
69extern void sio2_data_out(u8 val);
70extern u8 sio2_data_in(void);
71extern void sio2_stat_set(u32 val);
72extern u32 sio2_stat_get(void);
73extern void sio2_pad_transfer_init(void);
74extern void sio2_mc_transfer_init(void);
75extern 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__ */