Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
/*
 *	iocs.h
 *	X680x0 IOCS call interface
 *
 *	written by ITOH Yasufumi
 *	(based on PD libc 1.1.32 by PROJECT C Library)
 *	public domain
 *
 *	$NetBSD: iocs.h,v 1.9 2014/02/11 08:06:07 tsutsui Exp $
 */
/*
 * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
 * --------------------------------------------------------------------
 * This file is written by the Project C Library Group,  and completely
 * in public domain. You can freely use, copy, modify, and redistribute
 * the whole contents, without this notice.
 * --------------------------------------------------------------------
 * Id: iocs.h,v 1.1.1.1 1993/04/18 16:14:27 mura Exp
 * Id: iocs_p.h,v 1.5 1993/10/06 16:46:12 mura Exp
 * Id: scsi.h,v 1.3 1994/07/31 17:21:50 mura Exp
 */

#ifndef __X68K_IOCS_H__
#define __X68K_IOCS_H__

#include <sys/cdefs.h>

struct iocs_boxptr {
	short		x1;
	short		y1;
	short		x2;
	short		y2;
	unsigned short	color;
	unsigned short	linestyle;
};

struct iocs_circleptr {
	short		x;
	short		y;
	unsigned short	radius;
	unsigned short	color;
	short		start;
	short		end;
	unsigned short	ratio;
};

struct iocs_fillptr {
	short		x1;
	short		y1;
	short		x2;
	short		y2;
	unsigned short	color;
};

struct iocs_fntbuf {
	short		xl;
	short		yl;
	unsigned char	buffer[72];
};

struct iocs_getptr {
	short	x1;
	short	y1;
	short	x2;
	short	y2;
	void	*buf_start;
	void	*buf_end;
};

struct iocs_lineptr {
	short		x1;
	short		y1;
	short		x2;
	short		y2;
	unsigned short	color;
	unsigned short	linestyle;
};

struct iocs_paintptr {
	short		x;
	short		y;
	unsigned short	color;
	void		*buf_start;
	void		*buf_end;
} __attribute__((__packed__));

struct iocs_pointptr {
	short		x;
	short		y;
	unsigned short	color;
};

struct iocs_psetptr {
	short		x;
	short		y;
	unsigned short	color;
};

struct iocs_putptr {
	short		x1;
	short		y1;
	short		x2;
	short		y2;
	const void	*buf_start;
	const void	*buf_end;
};

struct iocs_symbolptr {
	short		x1;
	short		y1;
	unsigned char	*string_address;
	unsigned char	mag_x;
	unsigned char	mag_y;
	unsigned short	color;
	unsigned char	font_type;
	unsigned char	angle;
} __attribute__((__packed__));

struct iocs_regs {
	int	d0;
	int	d1;
	int	d2;
	int	d3;
	int	d4;
	int	d5;
	int	d6;
	int	d7;
	int	a1;
	int	a2;
	int	a3;
	int	a4;
	int	a5;
	int	a6;
};

struct iocs_chain {
	void		*addr;
	unsigned short	len;
} __attribute__((__packed__));

struct iocs_chain2 {
	void			*addr;
	unsigned short		len;
	const struct iocs_chain2 *next;
} __attribute__((__packed__));

struct iocs_clipxy {
	short	xs;
	short	ys;
	short	xe;
	short	ye;
};

struct iocs_patst {
	short	offsetx;
	short	offsety;
	short	shadow[16];
	short	pattern[16];
};

struct iocs_tboxptr {
	unsigned short	vram_page;
	short		x;
	short		y;
	short		x1;
	short		y1;
	unsigned short	line_style;
};

struct iocs_txfillptr {
	unsigned short	vram_page;
	short		x;
	short		y;
	short		x1;
	short		y1;
	unsigned short	fill_patn;
};

struct iocs_trevptr {
	unsigned short	vram_page;
	short		x;
	short		y;
	short		x1;
	short		y1;
};

struct iocs_xlineptr {
	unsigned short	vram_page;
	short		x;
	short		y;
	short		x1;
	unsigned short	line_style;
};

struct iocs_ylineptr {
	unsigned short	vram_page;
	short		x;
	short		y;
	short		y1;
	unsigned short	line_style;
};

struct iocs_tlineptr {
	unsigned short	vram_page;
	short		x;
	short		y;
	short		x1;
	short		y1;
	unsigned short	line_style;
};

/*
 * for SCSI calls
 */

struct iocs_readcap {
	unsigned long	block;
	unsigned long	size;
};

struct iocs_inquiry {
	unsigned char	unit;
	unsigned char	info;
	unsigned char	ver;
	unsigned char	reserve;
	unsigned char	size;
	unsigned char	class[3];
	char		vendor[8];
	char		product[16];
	char		revision[4];
};

/*
 * arguments:
 *	dn		32bit arg -> 32bit data reg (input)
 *	an		32bit arg -> 32bit addr reg (input)
 *	odn		32bit arg -> 32bit addr (location to store dn value)
 *	dn=(num)	(no C arg) -> load immediate value to the data register
 *	dn=ww		two 32bit args -> (LSWord #1) << 16 | (LSWord #2)
 *	dn=bb		two 32bit args -> (LSByte #1) << 8 | (LSByte #2)
 *	dn=hsv		three args (H S V) -> encode HSV values in dn
 * opts:
 *	retd2		return value is d2 of IOCS call
 *	err_d0		nonzero d0 is an error -- skip storing values
 *	noret		the IOCS call never returns
 *	c_md		special for IOCS_CACHE_MD
 *	b_super		special for IOCS_B_SUPER
 *	sp_regst	special for IOCS_SP_REGST
 *	b_curmod	special for IOCS_B_CURMOD
 *	b_curpat	special for IOCS_B_CURPAT
 *	b_scroll	special for IOCS_B_SCROLL
 *	trap15		special for IOCS_TRAP15
 */

/*  (none) ; trap15 */	int IOCS_TRAP15(const struct iocs_regs *, struct iocs_regs *);
/* 00 */	int IOCS_B_KEYINP (void);
/* 01 */	int IOCS_B_KEYSNS (void);
/* 02 */	int IOCS_B_SFTSNS (void);
/* 04 d1 */	int IOCS_BITSNS (int);
/* 05 d1 */	void IOCS_SKEYSET (int);
/* 0c d1 */	void IOCS_TVCTRL (int);
/* 0d d1 d2 */	void IOCS_LEDMOD (int, int);
/* 0e d1 d2 */	int IOCS_TGUSEMD (int, int);
/* 0f d1=ww a1 */	int IOCS_DEFCHR (int, int, const void *);
/* 10 d1 */	int IOCS_CRTMOD (int);
/* 11 d1 */	int IOCS_CONTRAST (int);
/* 12 d1=hsv */	int __pure IOCS_HSVTORGB (int, int, int) __attribute__((const));
/* 13 d1 d2 */	int IOCS_TPALET (int, int);
/* 14 d1 d2 */	int IOCS_TPALET2 (int, int);
/* 15 d1 */	void IOCS_TCOLOR (int);
/* 19 d1=ww a1 */	int IOCS_FNTGET (int, int, struct iocs_fntbuf *);
/* 1a d1 d2 a1 */	void IOCS_TEXTGET (int, int, struct iocs_fntbuf *);
/* 1b d1 d2 a1 */	void IOCS_TEXTPUT (int, int, const struct iocs_fntbuf *);
/* 1c d1 d2 a1 a2 */	void IOCS_CLIPPUT (int, int, const struct iocs_fntbuf *, const struct iocs_clipxy *);
/* 1d d1 d2 d3 */	void IOCS_SCROLL (int, int, int);
/* 1e */	void IOCS_B_CURON (void);
/* 1f */	void IOCS_B_CUROFF (void);
/* 20 d1 */	int IOCS_B_PUTC (int);
/* 21 a1 */	int IOCS_B_PRINT (const char *);
/* 22 d1 */	int IOCS_B_COLOR (int);
/* 23 d1 d2 */	int IOCS_B_LOCATE (int, int);
/* 24 */	void IOCS_B_DOWN_S (void);
/* 25 */	void IOCS_B_UP_S (void);
/* 26 d1 */	void IOCS_B_UP (int);
/* 27 d1 */	void IOCS_B_DOWN (int);
/* 28 d1 */	void IOCS_B_RIGHT (int);
/* 29 d1 */	void IOCS_B_LEFT (int);
/* 2a d1=0 */	void IOCS_B_CLR_ED (void);
/* 2a d1=1 */	void IOCS_B_CLR_ST (void);
/* 2a d1=2 */	void IOCS_B_CLR_AL (void);
/* 2b d1=0 */	void IOCS_B_ERA_ED (void);
/* 2b d1=1 */	void IOCS_B_ERA_ST (void);
/* 2b d1=2 */	void IOCS_B_ERA_AL (void);
/* 2c d1 */	void IOCS_B_INS (int);
/* 2d d1 */	void IOCS_B_DEL (int);
/* 2e d1=ww d2=ww ; retd2 */	int IOCS_B_CONSOL (int, int, int, int);
/* 2f d1 d2 d3 d4 a1 ; retd2 */	int IOCS_B_PUTMES (int, int, int, int, const char *);
/* 30 d1 */	int IOCS_SET232C (int);
/* 31 */	int IOCS_LOF232C (void);
/* 32 */	int IOCS_INP232C (void);
/* 33 */	int IOCS_ISNS232C (void);
/* 34 */	int IOCS_OSNS232C (void);
/* 35 d1 */	void IOCS_OUT232C (int);
/* 3b d1 */	int IOCS_JOYGET (int);
/* 3c d1=bb */	int IOCS_INIT_PRN (int, int);
/* 3d */	int IOCS_SNSPRN (void);
/* 3e d1 */	void IOCS_OUTLPT (int);
/* 3f d1 */	void IOCS_OUTPRN (int);
/* 40 d1 d2 */	int IOCS_B_SEEK (int, int);
/* 41 d1 d2 d3 a1 */	int IOCS_B_VERIFY (int, int, int, const void *);
/* 42 d1 d2 d3 a1 */	int IOCS_B_READDI (int, int, int, void *);
/* 43 d1 a1 d2 */	int IOCS_B_DSKINI (int, const void *, int);
/* 44 d1 */	int IOCS_B_DRVSNS (int);
/* 45 d1 d2 d3 a1 */	int IOCS_B_WRITE (int, int, int, const void *);
/* 46 d1 d2 d3 a1 */	int IOCS_B_READ (int, int, int, void *);
/* 47 d1 */	int IOCS_B_RECALI (int);
/* 48 d1 d2 d3 a1 */	int IOCS_B_ASSIGN (int, int, int, const void *);
/* 49 d1 d2 d3 a1 */	int IOCS_B_WRITED (int, int, int, const void *);
/* 4a d1 d2 od2 */	int IOCS_B_READID (int, int, void *);
/* 4b d1 d2 d3 */	int IOCS_B_BADFMT (int, int, int);
/* 4c d1 d2 d3 a1 */	int IOCS_B_READDL (int, int, int, void *);
/* 4d d1 d2 d3 a1 */	int IOCS_B_FORMAT (int, int, int, const void *);
/* 4e d1 d2 */	int IOCS_B_DRVCHK (int, int);
/* 4f d1 */	int IOCS_B_EJECT (int);
/* 50 d1 */	int IOCS_BINDATEBCD (int);
/* 51 d1 */	void IOCS_BINDATESET (int);
/* 52 d1 */	int IOCS_TIMEBCD (int);
/* 53 d1 */	void IOCS_TIMESET (int);
/* 54 */	int IOCS_BINDATEGET (void);
/* 55 d1 */	int IOCS_DATEBIN (int);
/* 56 */	int IOCS_TIMEGET (void);
/* 57 d1 */	int IOCS_TIMEBIN (int);
/* 58 a1 */	int IOCS_DATECNV (const char *);
/* 59 a1 */	int IOCS_TIMECNV (const char *);
/* 5a d1 a1 */	int IOCS_DATEASC (int, char *);
/* 5b d1 a1 */	int IOCS_TIMEASC (int, char *);
/* 5c d1 a1 */	void IOCS_DAYASC (int, char *);
/* 5d d1 */	int IOCS_ALARMMOD (int);
/* 5e d1 d2 a1 */	int IOCS_ALARMSET (int, int, int);
/* 5f od1 od2 od0 */	int IOCS_ALARMGET (int *, int *, int *);
/* 60 a1 d1 d2 */	void IOCS_ADPCMOUT (const void *, int, int);
/* 61 a1 d1 d2 */	void IOCS_ADPCMINP (void *, int, int);
/* 62 a1 d1 d2 */	void IOCS_ADPCMAOT (const struct iocs_chain *, int, int);
/* 63 a1 d1 d2 */	void IOCS_ADPCMAIN (const struct iocs_chain *, int, int);
/* 64 a1 d1 */	void IOCS_ADPCMLOT (const struct iocs_chain2 *, int);
/* 65 a1 d1 */	void IOCS_ADPCMLIN (const struct iocs_chain2 *, int);
/* 66 */	int IOCS_ADPCMSNS (void);
/* 67 d1 */	void IOCS_ADPCMMOD (int);
/* 68 d1 d2 */	void IOCS_OPMSET (int, int);
/* 69 */	int IOCS_OPMSNS (void);
/* 6a a1 */	int IOCS_OPMINTST (const void *);
/* 6b a1 d1=bb */	int IOCS_TIMERDST (const void *, int, int);
/* 6c a1 d1=bb */	int IOCS_VDISPST (const void *, int, int);
/* 6d a1 d1 */	int IOCS_CRTCRAS (const void *, int);
/* 6e a1 */	int IOCS_HSYNCST (const void *);
/* 6f a1 */	int IOCS_PRNINTST (const void *);
/* 70 */	void IOCS_MS_INIT (void);
/* 71 */	void IOCS_MS_CURON (void);
/* 72 */	void IOCS_MS_CUROF (void);
/* 73 */	int IOCS_MS_STAT (void);
/* 74 */	int IOCS_MS_GETDT (void);
/* 75 */	int IOCS_MS_CURGT (void);
/* 76 d1=ww */	int IOCS_MS_CURST (int, int);
/* 77 d1=ww d2=ww */	int IOCS_MS_LIMIT (int, int, int, int);
/* 78 d1 d2 */	int IOCS_MS_OFFTM (int, int);
/* 79 d1 d2 */	int IOCS_MS_ONTM (int, int);
/* 7a d1 a1 */	void IOCS_MS_PATST (int, const struct iocs_patst *);
/* 7b d1 */	void IOCS_MS_SEL (int);
/* 7c a1 */	void IOCS_MS_SEL2 (const short *);
/* 7d d1 d2=ww */	int IOCS_SKEY_MOD (int, int, int);
/* 7e */	void IOCS_DENSNS (void);
/* 7f */	int IOCS_ONTIME (void);
/* 80 d1 a1 */	int IOCS_B_INTVCS (int, int);
/* 81 ; b_super */	int IOCS_B_SUPER (int);
/* 82 a1 */	int IOCS_B_BPEEK (const void *);
/* 83 a1 */	int IOCS_B_WPEEK (const void *);
/* 84 a1 */	int IOCS_B_LPEEK (const void *);
/* 85 a1 a2 d1 */	void IOCS_B_MEMSTR (const void *, void *, int);
/* 86 a1 d1 */	void IOCS_B_BPOKE (void *, int);
/* 87 a1 d1 */	void IOCS_B_WPOKE (void *, int);
/* 88 a1 d1 */	void IOCS_B_LPOKE (void *, int);
/* 89 a1 a2 d1 */	void IOCS_B_MEMSET (void *, const void *, int);
/* 8a a1 a2 d1 d2 */	void IOCS_DMAMOVE (void *, void *, int, int);
/* 8b a1 a2 d1 d2 */	void IOCS_DMAMOV_A (const struct iocs_chain *, void *, int, int);
/* 8c a1 a2 d1 */	void IOCS_DMAMOV_L (const struct iocs_chain2 *, void *, int);
/* 8d */	int IOCS_DMAMODE (void);
/* 8e */	int __pure IOCS_BOOTINF (void) __attribute__((const));
/* 8f */	int __pure IOCS_ROMVER (void) __attribute__((const));
/* 90 */	void IOCS_G_CLR_ON (void);
/* 94 d1 d2 */	int IOCS_GPALET (int, int);
/* a0 d1 */	int __pure IOCS_SFTJIS (int) __attribute__((const));
/* a1 d1 */	int __pure IOCS_JISSFT (int) __attribute__((const));
/* a2 d1=ww */	int __pure IOCS_AKCONV (int, int) __attribute__((const));
/* a3 d1 a1 a2 */	int IOCS_RMACNV (int, char *, char *);
/* a4 a1 */	int IOCS_DAKJOB (char *);
/* a5 a1 */	int IOCS_HANJOB (char *);
/* ac d1=0 */	int IOCS_MPU_STAT (void);		/* ROM 1.3 only */
/* ac d1=1 */	int IOCS_CACHE_ST (void);		/* ROM 1.3 only */
/* ac d1=3 d2 ; c_md */	int IOCS_CACHE_MD (int);	/* ROM 1.3 only */
/* ad d1 ; b_curmod */	void IOCS_B_CURMOD (int);		/*1.3/IOCS.X*/
/* ad d1=2 d2 ; b_curpat */	void IOCS_B_CURPAT (int);	/*1.3/IOCS.X*/
/* ad d1=2 d2=0 */	void IOCS_B_CURPAT1 (void);	/*1.3/IOCS.X*/
/* ad d1=3 d2 */	void IOCS_B_CURDEF (void *);	/*1.3/IOCS.X*/
/* ad d1=16 d2 ; b_scroll */	void IOCS_B_SCROLL (int);	/*1.3/IOCS.X*/
/* ae */	void IOCS_OS_CURON (void);
/* af */	void IOCS_OS_CUROF (void);
/* b0 d1 */	int IOCS_DRAWMODE (int);		/* ROM 1.3, IOCS.X */
/* b1 d1 */	int IOCS_APAGE (int);
/* b2 d1 */	int IOCS_VPAGE (int);
/* b3 d1 d2 d3 */	int IOCS_HOME (int, int, int);
/* b4 d1 d2 d3 d4 */	int IOCS_WINDOW (int, int, int, int);
/* b5 */	int IOCS_WIPE (void);
/* b6 a1 */	int IOCS_PSET (const struct iocs_psetptr *);
/* b7 a1 */	int IOCS_POINT (const struct iocs_pointptr *);
/* b8 a1 */	int IOCS_LINE (const struct iocs_lineptr *);
/* b9 a1 */	int IOCS_BOX (const struct iocs_boxptr *);
/* ba a1 */	int IOCS_FILL (const struct iocs_fillptr *);
/* bb a1 */	int IOCS_CIRCLE (const struct iocs_circleptr *);
/* bc a1 */	int IOCS_PAINT (struct iocs_paintptr *);
/* bd a1 */	int IOCS_SYMBOL (const struct iocs_symbolptr *);
/* be a1 */	int IOCS_GETGRM (struct iocs_getptr *);
/* bf a1 */	int IOCS_PUTGRM (const struct iocs_putptr *);
/* c0 */	int IOCS_SP_INIT (void);
/* c1 */	int IOCS_SP_ON (void);
/* c2 */	void IOCS_SP_OFF (void);
/* c3 d1 */	int IOCS_SP_CGCLR (int);
/* c4 d1 d2 a1 */	int IOCS_SP_DEFCG (int, int, const void *);
/* c5 d1 d2 a1 */	int IOCS_SP_GTPCG (int, int, void *);

/*
 * XXX	SP_REGST in XC iocslib:	args: int,      int, int, int, int
 *				       (c6 d1 d2 d3 d4 d5)
 *	XC manual and PD libc:	args: int, int, int, int, int, int
 *				       (c6 d0 d1 d2 d3 d4 d5 ; sp_regst)
 * we use the latter interface...
 */
/* c6 d0 d1 d2 d3 d4 d5 ; sp_regst */	int IOCS_SP_REGST (int, int, int, int, int, int);
/* c7 d1 od2 od3 od4 od5 ; err_d0 */	int IOCS_SP_REGGT (int, int *, int *, int *, int *);
/* c8 d1 d2 d3 */	int IOCS_BGSCRLST (int, int, int);
/* c9 d1 od2 od3 ; err_d0 */	int IOCS_BGSCRLGT (int, int *, int *);
/* ca d1 d2 d3 */	int IOCS_BGCTRLST (int, int, int);
/* cb d1 */	int IOCS_BGCTRLGT (int);
/* cc d1 d2 */	int IOCS_BGTEXTCL (int, int);
/* cd d1 d2 d3 d4 */	int IOCS_BGTEXTST (int, int, int, int);
/* ce d1 d2 d3 */	int IOCS_BGTEXTGT (int, int, int);
/* cf d1 d2 d3 */	int IOCS_SPALET (int, int, int);
/* d3 a1 */	void IOCS_TXXLINE (const struct iocs_xlineptr *);
/* d4 a1 */	void IOCS_TXYLINE (const struct iocs_ylineptr *);
/* d5 a1 */	void IOCS_TXLINE (struct iocs_tlineptr); /* 1.3, IOCS.X */
/* d6 a1 */	void IOCS_TXBOX (const struct iocs_tboxptr *);
/* d7 a1 */	void IOCS_TXFILL (const struct iocs_txfillptr *);
/* d8 a1 */	void IOCS_TXREV (const struct iocs_trevptr *);
/* df d1 d2 d3 */	void IOCS_TXRASCPY (int, int, int);
/* fd */	void IOCS_ABORTRST (void);
/* fe ; noret */	__dead void IOCS_IPLERR (void);
/* ff ; noret */	__dead void IOCS_ABORTJOB (void);

/* SCSI calls */
/* f5 d1=0 */		void IOCS_S_RESET (void);
/* f5 d1=1 d4 */	int IOCS_S_SELECT (int);
/* f5 d1=3 d3 a1 */	int IOCS_S_CMDOUT (int, void *);
/* f5 d1=4 d3 a1 */	int IOCS_S_DATAIN (int, void *);
/* f5 d1=5 d3 a1 */	int IOCS_S_DATAOUT (int, void *);
/* f5 d1=6 a1 */	int IOCS_S_STSIN (void *);
/* f5 d1=7 a1 */	int IOCS_S_MSGIN (void *);
/* f5 d1=8 a1 */	int IOCS_S_MSGOUT (void *);
/* f5 d1=9 */		int IOCS_S_PHASE (void);
/* f5 d1=32 d3 d4 a1 */	int IOCS_S_INQUIRY (int, int, struct iocs_inquiry *);
/* f5 d1=33 d2 d3 d4 d5 a1 */	int IOCS_S_READ (int, int, int, int, void *);
/* f5 d1=34 d2 d3 d4 d5 a1 */	int IOCS_S_WRITE (int, int, int, int, void *);
/* f5 d1=35 d3 d4 */	int IOCS_S_FORMAT (int, int);
/* f5 d1=36 d4 */	int IOCS_S_TESTUNIT (int);
/* f5 d1=37 d4 a1 */	int IOCS_S_READCAP (int, struct iocs_readcap *);
/* f5 d1=38 d2 d3 d4 d5 a1 */	int IOCS_S_READEXT (int, int, int, int, void *);
/* f5 d1=39 d2 d3 d4 d5 a1 */	int IOCS_S_WRITEEXT (int, int, int, int, void *);
/* f5 d1=43 d4 */	int IOCS_S_REZEROUNIT (int);
/* f5 d1=44 d3 d4 a1 */	int IOCS_S_REQUEST (int, int, void *);
/* f5 d1=45 d2 d4 */	int IOCS_S_SEEK (int, int);
/* f5 d1=47 d3 d4 */	int IOCS_S_STARTSTOP (int, int);
/* f5 d1=49 d3 d4 a1 */	int IOCS_S_REASSIGN (int, int, void *);
/* f5 d1=50 d3 d4 */	int IOCS_S_PAMEDIUM (int, int);

#endif /* __X68K_IOCS_H__ */