dreamcast_maple.h Source File
Back to the index.
src
include
thirdparty
dreamcast_maple.h
Go to the documentation of this file.
1
/* GXemul: $Id: dreamcast_maple.h,v 1.1 2006-10-27 04:22:44 debug Exp $ */
2
/* $NetBSD: maple.h,v 1.9 2005/12/11 12:17:06 christos Exp $ */
3
4
/*-
5
* Copyright (c) 2002 The NetBSD Foundation, Inc.
6
* All rights reserved.
7
*
8
* This code is derived from software contributed to The NetBSD Foundation
9
* by ITOH Yasufumi.
10
*
11
* Redistribution and use in source and binary forms, with or without
12
* modification, are permitted provided that the following conditions
13
* are met:
14
* 1. Redistributions of source code must retain the above copyright
15
* notice, this list of conditions and the following disclaimer.
16
* 2. Redistributions in binary form must reproduce the above copyright
17
* notice, this list of conditions and the following disclaimer in the
18
* documentation and/or other materials provided with the distribution.
19
* 3. All advertising materials mentioning features or use of this software
20
* must display the following acknowledgement:
21
* This product includes software developed by the NetBSD
22
* Foundation, Inc. and its contributors.
23
* 4. Neither the name of The NetBSD Foundation nor the names of its
24
* contributors may be used to endorse or promote products derived
25
* from this software without specific prior written permission.
26
*
27
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
28
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
31
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37
* POSSIBILITY OF SUCH DAMAGE.
38
*/
39
40
/*-
41
* Copyright (c) 2001 Marcus Comstedt
42
* All rights reserved.
43
*
44
* Redistribution and use in source and binary forms, with or without
45
* modification, are permitted provided that the following conditions
46
* are met:
47
* 1. Redistributions of source code must retain the above copyright
48
* notice, this list of conditions and the following disclaimer.
49
* 2. Redistributions in binary form must reproduce the above copyright
50
* notice, this list of conditions and the following disclaimer in the
51
* documentation and/or other materials provided with the distribution.
52
* 3. All advertising materials mentioning features or use of this software
53
* must display the following acknowledgement:
54
* This product includes software developed by Marcus Comstedt.
55
* 4. Neither the name of The NetBSD Foundation nor the names of its
56
* contributors may be used to endorse or promote products derived
57
* from this software without specific prior written permission.
58
*
59
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
60
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
61
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
62
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
63
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
64
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
65
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
66
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
67
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
68
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
69
* POSSIBILITY OF SUCH DAMAGE.
70
*/
71
72
#ifndef _DREAMCAST_DEV_MAPLE_MAPLE_H_
73
#define _DREAMCAST_DEV_MAPLE_MAPLE_H_
74
75
/* signed is more effective than unsigned on SH */
76
typedef
int8_t
maple_response_t
;
77
78
/* Maple Bus command and response codes */
79
80
#define MAPLE_RESPONSE_LCDERR (-6)
81
#define MAPLE_RESPONSE_FILEERR (-5)
82
#define MAPLE_RESPONSE_AGAIN (-4)
/* request should be retransmitted */
83
#define MAPLE_RESPONSE_BADCMD (-3)
84
#define MAPLE_RESPONSE_BADFUNC (-2)
85
#define MAPLE_RESPONSE_NONE (-1)
/* unit didn't respond at all */
86
#define MAPLE_COMMAND_DEVINFO 1
87
#define MAPLE_COMMAND_ALLINFO 2
88
#define MAPLE_COMMAND_RESET 3
89
#define MAPLE_COMMAND_KILL 4
90
#define MAPLE_RESPONSE_DEVINFO 5
91
#define MAPLE_RESPONSE_ALLINFO 6
92
#define MAPLE_RESPONSE_OK 7
93
#define MAPLE_RESPONSE_DATATRF 8
94
#define MAPLE_COMMAND_GETCOND 9
95
#define MAPLE_COMMAND_GETMINFO 10
96
#define MAPLE_COMMAND_BREAD 11
97
#define MAPLE_COMMAND_BWRITE 12
98
#define MAPLE_COMMAND_GETLASTERR 13
99
#define MAPLE_COMMAND_SETCOND 14
100
101
/* Function codes */
102
#define MAPLE_FN_CONTROLLER 0
103
#define MAPLE_FN_MEMCARD 1
104
#define MAPLE_FN_LCD 2
105
#define MAPLE_FN_CLOCK 3
106
#define MAPLE_FN_MICROPHONE 4
107
#define MAPLE_FN_ARGUN 5
108
#define MAPLE_FN_KEYBOARD 6
109
#define MAPLE_FN_LIGHTGUN 7
110
#define MAPLE_FN_PURUPURU 8
111
#define MAPLE_FN_MOUSE 9
112
113
#define MAPLE_FUNC(fn) (1 << (fn))
114
115
struct
maple_devinfo
{
116
uint32_t
di_func
;
/* function code */
117
uint32_t
di_function_data
[3];
/* function data */
118
uint8_t
di_area_code
;
/* region settings */
119
uint8_t
di_connector_direction
;
/* direction of expansion connector */
120
char
di_product_name
[30];
/* name of the device */
121
char
di_product_license
[60];
/* manufacturer info */
122
uint16_t
di_standby_power
;
/* standby power consumption */
123
uint16_t
di_max_power
;
/* maximum power consumption */
124
};
125
126
#define MAPLE_CONN_TOP 0
/* connector is to the top */
127
#define MAPLE_CONN_BOTTOM 1
/* connector is to the bottom */
128
129
struct
maple_response
{
130
uint32_t
response_code
;
131
uint32_t
data
[1];
/* variable length */
132
};
133
134
#define MAPLE_FLAG_PERIODIC 1
135
#define MAPLE_FLAG_CMD_PERIODIC_TIMING 2
136
137
#if 0
138
139
struct
maple_unit;
140
141
extern
void
maple_set_callback(
struct
device *,
struct
maple_unit *,
int
,
142
void
(*)(
void
*,
struct
maple_response
*,
int
,
int
),
143
void
*);
144
extern
void
maple_enable_unit_ping(
struct
device *,
struct
maple_unit *,
145
int
/*func*/
,
int
/*enable*/
);
146
extern
void
maple_enable_periodic(
struct
device *,
struct
maple_unit *,
147
int
/*func*/
,
int
/*on*/
);
148
extern
void
maple_command(
struct
device *,
struct
maple_unit *,
149
int
/*func*/
,
int
/*command*/
,
int
/*datalen*/
,
150
const
void
*,
int
/*flags*/
);
151
extern
uint32_t maple_get_function_data(
struct
maple_devinfo
*,
int
);
152
extern
void
maple_run_polling(
struct
device *);
153
extern
int
maple_unit_ioctl(
struct
device *,
struct
maple_unit *,
154
u_long, caddr_t,
int
,
struct
lwp *);
155
156
#endif
157
158
#endif
/* _DREAMCAST_DEV_MAPLE_MAPLE_H_ */
maple_devinfo::di_function_data
uint32_t di_function_data[3]
Definition:
dreamcast_maple.h:117
maple_response_t
int8_t maple_response_t
Definition:
dreamcast_maple.h:76
maple_devinfo::di_product_license
char di_product_license[60]
Definition:
dreamcast_maple.h:121
maple_devinfo
Definition:
dreamcast_maple.h:115
maple_response::response_code
uint32_t response_code
Definition:
dreamcast_maple.h:130
maple_devinfo::di_product_name
char di_product_name[30]
Definition:
dreamcast_maple.h:120
maple_devinfo::di_standby_power
uint16_t di_standby_power
Definition:
dreamcast_maple.h:122
maple_devinfo::di_max_power
uint16_t di_max_power
Definition:
dreamcast_maple.h:123
maple_response::data
uint32_t data[1]
Definition:
dreamcast_maple.h:131
maple_devinfo::di_connector_direction
uint8_t di_connector_direction
Definition:
dreamcast_maple.h:119
maple_devinfo::di_func
uint32_t di_func
Definition:
dreamcast_maple.h:116
maple_devinfo::di_area_code
uint8_t di_area_code
Definition:
dreamcast_maple.h:118
maple_response
Definition:
dreamcast_maple.h:129
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17