|
|
1.1 root 1: /*
2: * Creation Date: <1999/03/18 03:19:43 samuel>
3: * Time-stamp: <2003/12/26 16:58:19 samuel>
4: *
5: * <os_interface.h>
6: *
7: * This file includes definitions for drivers
8: * running in the "emulated" OS. (Mainly the 'sc'
9: * mechanism of communicating)
10: *
11: * Copyright (C) 1999, 2000, 2001, 2002, 2003 Samuel Rydh ([email protected])
12: *
13: * This program is free software; you can redistribute it and/or
14: * modify it under the terms of the GNU General Public License
15: * as published by the Free Software Foundation
16: *
17: */
18:
19: #ifndef _H_OSI
20: #define _H_OSI
21:
22: /* Magic register values loaded into r3 and r4 before the 'sc' assembly instruction */
23: #define OSI_SC_MAGIC_R3 0x113724FA
24: #define OSI_SC_MAGIC_R4 0x77810F9B
25:
26:
27: /************************************************************************/
28: /* Selectors (passed in r5) */
29: /************************************************************************/
30:
31: #define OSI_CALL_AVAILABLE 0
32: #define OSI_DEBUGGER 1 /* enter debugger */
33: /* obsolete OSI_LOG_STR 3 */
34: #define OSI_CMOUNT_DRV_VOL 4 /* conditionally mount driver volume */
35: /* obsolete OSI_SCSI_xxx 5-6 */
36: #define OSI_GET_GMT_TIME 7
37: #define OSI_MOUSE_CNTRL 8
38: #define OSI_GET_LOCALTIME 9 /* return time in secs from 01/01/04 */
39:
40: #define OSI_ENET_OPEN 10
41: #define OSI_ENET_CLOSE 11
42: #define OSI_ENET_GET_ADDR 12
43: #define OSI_ENET_GET_STATUS 13
44: #define OSI_ENET_CONTROL 14
45: #define OSI_ENET_ADD_MULTI 16
46: #define OSI_ENET_DEL_MULTI 17
47: #define OSI_ENET_GET_PACKET 18
48: #define OSI_ENET_SEND_PACKET 19
49:
50: #define OSI_OF_INTERFACE 20
51: #define OSI_OF_TRAP 21
52: #define OSI_OF_RTAS 22
53:
54: #define OSI_SCSI_CNTRL 23
55: #define OSI_SCSI_SUBMIT 24
56: #define OSI_SCSI_ACK 25
57:
58: #define OSI_GET_MOUSE 26 /* -- r3 status, r4-r8 mouse data */
59: #define OSI_ACK_MOUSE_IRQ 27 /* -- int */
60:
61: #define OSI_SET_VMODE 28 /* modeID, depth -- error */
62: #define OSI_GET_VMODE_INFO 29 /* mode, depth -- r3 status, r4-r9 pb */
63: #define OSI_GET_MOUSE_DPI 30 /* -- mouse_dpi */
64:
65: #define OSI_SET_VIDEO_POWER 31
66: #define OSI_GET_FB_INFO 32 /* void -- r3 status, r4-r8 video data */
67:
68: #define OSI_SOUND_WRITE 33
69: /* #define OSI_SOUND_FORMAT 34 */
70: #define OSI_SOUND_SET_VOLUME 35
71: #define OSI_SOUND_CNTL 36
72: /* obsolete OSI_SOUND call 37 */
73:
74: #define OSI_VIDEO_ACK_IRQ 38
75: #define OSI_VIDEO_CNTRL 39
76:
77: #define OSI_SOUND_IRQ_ACK 40
78: #define OSI_SOUND_START_STOP 41
79:
80: #define OSI_REGISTER_IRQ 42 /* reg_property[0] appl_int -- irq_cookie */
81: /* obsolete OSI_IRQ 43-46 */
82:
83: #define OSI_LOG_PUTC 47 /* char -- */
84:
85: #define OSI_KBD_CNTRL 50
86: #define OSI_GET_ADB_KEY 51 /* -- adb_keycode (keycode | keycode_id in r4) */
87:
88: #define OSI_WRITE_NVRAM_BYTE 52 /* offs, byte -- */
89: #define OSI_READ_NVRAM_BYTE 53 /* offs -- byte */
90:
91: #define OSI_EXIT 54
92:
93: #define OSI_KEYCODE_TO_ADB 55 /* (keycode | keycode_id) -- adb_keycode */
94: #define OSI_MAP_ADB_KEY 56 /* keycode, adbcode -- */
95: #define OSI_SAVE_KEYMAPPING 57 /* -- */
96: #define OSI_USLEEP 58 /* usecs -- */
97: #define OSI_SET_COLOR 59 /* index value -- */
98:
99: #define OSI_PIC_MASK_IRQ 60 /* irq -- */
100: #define OSI_PIC_UNMASK_IRQ 61 /* irq -- */
101: #define OSI_PIC_ACK_IRQ 62 /* irq mask_flag -- */
102: #define OSI_PIC_GET_ACTIVE_IRQ 63
103:
104: #define OSI_GET_COLOR 64 /* index -- value */
105:
106: /* 65-67 old ablk implementation */
107: #define OSI_IRQTEST 65
108:
109: #define OSI_ENET2_OPEN 68
110: #define OSI_ENET2_CLOSE 69
111: #define OSI_ENET2_CNTRL 70
112: #define OSI_ENET2_RING_SETUP 71
113: #define OSI_ENET2_KICK 72
114: #define OSI_ENET2_GET_HWADDR 73
115: #define OSI_ENET2_IRQ_ACK 74
116:
117: #define OSI_PROM_IFACE 76
118: #define kPromClose 0
119: #define kPromPeer 1
120: #define kPromChild 2
121: #define kPromParent 3
122: #define kPromPackageToPath 4
123: #define kPromGetPropLen 5
124: #define kPromGetProp 6
125: #define kPromNextProp 7
126: #define kPromSetProp 8
127: #define kPromChangePHandle 9
128:
129: #define OSI_PROM_PATH_IFACE 77
130: #define kPromCreateNode 16
131: #define kPromFindDevice 17
132:
133: #define OSI_BOOT_HELPER 78
134: #define kBootHAscii2Unicode 32
135: #define kBootHUnicode2Ascii 33
136: #define kBootHGetStrResInd 34 /* key, buf, len -- buf */
137: #define kBootHGetRAMSize 35 /* -- ramsize */
138:
139: #define OSI_ABLK_RING_SETUP 79
140: #define OSI_ABLK_CNTRL 80
141: #define OSI_ABLK_DISK_INFO 81
142: #define OSI_ABLK_KICK 82
143: #define OSI_ABLK_IRQ_ACK 83
144: #define OSI_ABLK_SYNC_READ 84
145: #define OSI_ABLK_SYNC_WRITE 85
146: #define OSI_ABLK_BLESS_DISK 86
147:
148: #define OSI_EMUACCEL 89 /* EMULATE_xxx, nip -- index */
149: #define OSI_MAPIN_MREGS 90 /* mphys */
150: #define OSI_NVRAM_SIZE 91
151:
152: #define OSI_MTICKS_TO_USECS 92
153: #define OSI_USECS_TO_MTICKS 93
154:
155: /* obsolete OSI_BLK 94-95 */
156:
157: #define OSI_PSEUDO_FS 96
158: #define kPseudoFSOpen 1
159: #define kPseudoFSClose 2
160: #define kPseudoFSGetSize 3
161: #define kPseudoFSRead 4
162: #define kPseudoFSIndex2Name 5
163:
164: #define OSI_TTY_PUTC 97
165: #define OSI_TTY_GETC 98
166: #define OSI_TTY_IRQ_ACK 99
167:
168: #define NUM_OSI_SELECTORS 100 /* remember to increase this... */
169:
170: #endif /* _H_OSI */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.