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
|
/*
* Creation Date: <1999/03/18 03:19:43 samuel>
* Time-stamp: <2003/12/26 16:58:19 samuel>
*
* <os_interface.h>
*
* This file includes definitions for drivers
* running in the "emulated" OS. (Mainly the 'sc'
* mechanism of communicating)
*
* Copyright (C) 1999, 2000, 2001, 2002, 2003 Samuel Rydh (samuel@ibrium.se)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation
*
*/
#ifndef _H_OSI
#define _H_OSI
/* Magic register values loaded into r3 and r4 before the 'sc' assembly instruction */
#define OSI_SC_MAGIC_R3 0x113724FA
#define OSI_SC_MAGIC_R4 0x77810F9B
/************************************************************************/
/* Selectors (passed in r5) */
/************************************************************************/
#define OSI_CALL_AVAILABLE 0
#define OSI_DEBUGGER 1 /* enter debugger */
/* obsolete OSI_LOG_STR 3 */
#define OSI_CMOUNT_DRV_VOL 4 /* conditionally mount driver volume */
/* obsolete OSI_SCSI_xxx 5-6 */
#define OSI_GET_GMT_TIME 7
#define OSI_MOUSE_CNTRL 8
#define OSI_GET_LOCALTIME 9 /* return time in secs from 01/01/04 */
#define OSI_ENET_OPEN 10
#define OSI_ENET_CLOSE 11
#define OSI_ENET_GET_ADDR 12
#define OSI_ENET_GET_STATUS 13
#define OSI_ENET_CONTROL 14
#define OSI_ENET_ADD_MULTI 16
#define OSI_ENET_DEL_MULTI 17
#define OSI_ENET_GET_PACKET 18
#define OSI_ENET_SEND_PACKET 19
#define OSI_OF_INTERFACE 20
#define OSI_OF_TRAP 21
#define OSI_OF_RTAS 22
#define OSI_SCSI_CNTRL 23
#define OSI_SCSI_SUBMIT 24
#define OSI_SCSI_ACK 25
#define OSI_GET_MOUSE 26 /* -- r3 status, r4-r8 mouse data */
#define OSI_ACK_MOUSE_IRQ 27 /* -- int */
#define OSI_SET_VMODE 28 /* modeID, depth -- error */
#define OSI_GET_VMODE_INFO 29 /* mode, depth -- r3 status, r4-r9 pb */
#define OSI_GET_MOUSE_DPI 30 /* -- mouse_dpi */
#define OSI_SET_VIDEO_POWER 31
#define OSI_GET_FB_INFO 32 /* void -- r3 status, r4-r8 video data */
#define OSI_SOUND_WRITE 33
/* #define OSI_SOUND_FORMAT 34 */
#define OSI_SOUND_SET_VOLUME 35
#define OSI_SOUND_CNTL 36
/* obsolete OSI_SOUND call 37 */
#define OSI_VIDEO_ACK_IRQ 38
#define OSI_VIDEO_CNTRL 39
#define OSI_SOUND_IRQ_ACK 40
#define OSI_SOUND_START_STOP 41
#define OSI_REGISTER_IRQ 42 /* reg_property[0] appl_int -- irq_cookie */
/* obsolete OSI_IRQ 43-46 */
#define OSI_LOG_PUTC 47 /* char -- */
#define OSI_KBD_CNTRL 50
#define OSI_GET_ADB_KEY 51 /* -- adb_keycode (keycode | keycode_id in r4) */
#define OSI_WRITE_NVRAM_BYTE 52 /* offs, byte -- */
#define OSI_READ_NVRAM_BYTE 53 /* offs -- byte */
#define OSI_EXIT 54
#define OSI_KEYCODE_TO_ADB 55 /* (keycode | keycode_id) -- adb_keycode */
#define OSI_MAP_ADB_KEY 56 /* keycode, adbcode -- */
#define OSI_SAVE_KEYMAPPING 57 /* -- */
#define OSI_USLEEP 58 /* usecs -- */
#define OSI_SET_COLOR 59 /* index value -- */
#define OSI_PIC_MASK_IRQ 60 /* irq -- */
#define OSI_PIC_UNMASK_IRQ 61 /* irq -- */
#define OSI_PIC_ACK_IRQ 62 /* irq mask_flag -- */
#define OSI_PIC_GET_ACTIVE_IRQ 63
#define OSI_GET_COLOR 64 /* index -- value */
/* 65-67 old ablk implementation */
#define OSI_IRQTEST 65
#define OSI_ENET2_OPEN 68
#define OSI_ENET2_CLOSE 69
#define OSI_ENET2_CNTRL 70
#define OSI_ENET2_RING_SETUP 71
#define OSI_ENET2_KICK 72
#define OSI_ENET2_GET_HWADDR 73
#define OSI_ENET2_IRQ_ACK 74
#define OSI_PROM_IFACE 76
#define kPromClose 0
#define kPromPeer 1
#define kPromChild 2
#define kPromParent 3
#define kPromPackageToPath 4
#define kPromGetPropLen 5
#define kPromGetProp 6
#define kPromNextProp 7
#define kPromSetProp 8
#define kPromChangePHandle 9
#define OSI_PROM_PATH_IFACE 77
#define kPromCreateNode 16
#define kPromFindDevice 17
#define OSI_BOOT_HELPER 78
#define kBootHAscii2Unicode 32
#define kBootHUnicode2Ascii 33
#define kBootHGetStrResInd 34 /* key, buf, len -- buf */
#define kBootHGetRAMSize 35 /* -- ramsize */
#define OSI_ABLK_RING_SETUP 79
#define OSI_ABLK_CNTRL 80
#define OSI_ABLK_DISK_INFO 81
#define OSI_ABLK_KICK 82
#define OSI_ABLK_IRQ_ACK 83
#define OSI_ABLK_SYNC_READ 84
#define OSI_ABLK_SYNC_WRITE 85
#define OSI_ABLK_BLESS_DISK 86
#define OSI_EMUACCEL 89 /* EMULATE_xxx, nip -- index */
#define OSI_MAPIN_MREGS 90 /* mphys */
#define OSI_NVRAM_SIZE 91
#define OSI_MTICKS_TO_USECS 92
#define OSI_USECS_TO_MTICKS 93
/* obsolete OSI_BLK 94-95 */
#define OSI_PSEUDO_FS 96
#define kPseudoFSOpen 1
#define kPseudoFSClose 2
#define kPseudoFSGetSize 3
#define kPseudoFSRead 4
#define kPseudoFSIndex2Name 5
#define OSI_TTY_PUTC 97
#define OSI_TTY_GETC 98
#define OSI_TTY_IRQ_ACK 99
#define NUM_OSI_SELECTORS 100 /* remember to increase this... */
#endif /* _H_OSI */
|