Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / arch / ppc / osi.h
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 (samuel@ibrium.se)
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 */