1 #ifndef _MINIX_COM_H
2 #define _MINIX_COM_H
3
4 /*===========================================================================*
5 * Magic process numbers *
6 *===========================================================================*/
7
8 #define ANY 0x7ace /* used to indicate 'any process' */
9 #define NONE 0x6ace /* used to indicate 'no process at all' */
10 #define SELF 0x8ace /* used to indicate 'own process' */
11
12 /*===========================================================================*
13 * Process numbers of processes in the system image *
14 *===========================================================================*/
15
16 /* The values of several task numbers depend on whether they or other tasks
17 * are enabled. They are defined as (PREVIOUS_TASK - ENABLE_TASK) in general.
18 * ENABLE_TASK is either 0 or 1, so a task either gets a new number, or gets
19 * the same number as the previous task and is further unused. Note that the
20 * order should correspond to the order in the task table defined in table.c.
21 */
22
23 /* Kernel tasks. These all run in the same address space. */
24 #define IDLE -4 /* runs when no one else can run */
25 #define CLOCK -3 /* alarms and other clock functions */
26 #define SYSTEM -2 /* request system functionality */
27 #define KERNEL -1 /* pseudo-process for IPC and scheduling */
28 #define HARDWARE KERNEL /* for hardware interrupt handlers */
29
30 /* Number of tasks. Note that NR_PROCS is defined in <minix/config.h>. */
31 #define NR_TASKS 4
32
33 /* User-space processes, that is, device drivers, servers, and INIT. */
34 #define PM_PROC_NR 0 /* process manager */
35 #define FS_PROC_NR 1 /* file system */
36 #define RS_PROC_NR 2 /* reincarnation server */
37 #define MEM_PROC_NR 3 /* memory driver (RAM disk, null, etc.) */
38 #define LOG_PROC_NR 4 /* log device driver */
39 #define TTY_PROC_NR 5 /* terminal (TTY) driver */
40 #define DRVR_PROC_NR 6 /* device driver for boot medium */
41 #define DS_PROC_NR 7 /* data store server */
42 #define INIT_PROC_NR 8 /* init -- goes multiuser */
43
44 /* Number of processes contained in the system image. */
45 #define NR_BOOT_PROCS (NR_TASKS + INIT_PROC_NR + 1)
46
47 /*===========================================================================*
48 * Kernel notification types *
49 *===========================================================================*/
50
51 /* Kernel notification types. In principle, these can be sent to any process,
52 * so make sure that these types do not interfere with other message types.
53 * Notifications are prioritized because of the way they are unhold() and
54 * blocking notifications are delivered. The lowest numbers go first. The
55 * offset are used for the per-process notification bit maps.
56 */
57 #define NOTIFY_MESSAGE 0x1000
58 #define NOTIFY_FROM(p_nr) (NOTIFY_MESSAGE | ((p_nr) + NR_TASKS))
59 # define SYN_ALARM NOTIFY_FROM(CLOCK) /* synchronous alarm */
60 # define SYS_SIG NOTIFY_FROM(SYSTEM) /* system signal */
61 # define HARD_INT NOTIFY_FROM(HARDWARE) /* hardware interrupt */
62 # define NEW_KSIG NOTIFY_FROM(HARDWARE) /* new kernel signal */
63 # define FKEY_PRESSED NOTIFY_FROM(TTY_PROC_NR)/* function key press */
64 # define DEV_PING NOTIFY_FROM(RS_PROC_NR) /* driver liveness ping */
65
66 /* Shorthands for message parameters passed with notifications. */
67 #define NOTIFY_SOURCE m_source
68 #define NOTIFY_TYPE m_type
69 #define NOTIFY_ARG m2_l1
70 #define NOTIFY_TIMESTAMP m2_l2
71 #define NOTIFY_FLAGS m2_i1
72
73 /*===========================================================================*
74 * Messages for BLOCK and CHARACTER device drivers *
75 *===========================================================================*/
76
77 /* Message types for device drivers. */
78 #define DEV_RQ_BASE 0x400 /* base for device request types */
79 #define DEV_RS_BASE 0x500 /* base for device response types */
80
81 #define CANCEL (DEV_RQ_BASE + 0) /* force a task to cancel */
82 #define DEV_READ (DEV_RQ_BASE + 3) /* read from minor device */
83 #define DEV_WRITE (DEV_RQ_BASE + 4) /* write to minor device */
84 #define DEV_IOCTL (DEV_RQ_BASE + 5) /* I/O control code */
85 #define DEV_OPEN (DEV_RQ_BASE + 6) /* open a minor device */
86 #define DEV_CLOSE (DEV_RQ_BASE + 7) /* close a minor device */
87 #define DEV_SCATTER (DEV_RQ_BASE + 8) /* write from a vector */
88 #define DEV_GATHER (DEV_RQ_BASE + 9) /* read into a vector */
89 #define TTY_SETPGRP (DEV_RQ_BASE + 10) /* set process group */
90 #define TTY_EXIT (DEV_RQ_BASE + 11) /* process group leader exited */
91 #define DEV_SELECT (DEV_RQ_BASE + 12) /* request select() attention */
92 #define DEV_STATUS (DEV_RQ_BASE + 13) /* request driver status */
93
94 #define DEV_REPLY (DEV_RS_BASE + 0) /* general task reply */
95 #define DEV_CLONED (DEV_RS_BASE + 1) /* return cloned minor */
96 #define DEV_REVIVE (DEV_RS_BASE + 2) /* driver revives process */
97 #define DEV_IO_READY (DEV_RS_BASE + 3) /* selected device ready */
98 #define DEV_NO_STATUS (DEV_RS_BASE + 4) /* empty status reply */
99
100 /* Field names for messages to block and character device drivers. */
101 #define DEVICE m2_i1 /* major-minor device */
102 #define PROC_NR m2_i2 /* which (proc) wants I/O? */
103 #define COUNT m2_i3 /* how many bytes to transfer */
104 #define REQUEST m2_i3 /* ioctl request code */
105 #define POSITION m2_l1 /* file offset */
106 #define ADDRESS m2_p1 /* core buffer address */
107
108 /* Field names for DEV_SELECT messages to device drivers. */
109 #define DEV_MINOR m2_i1 /* minor device */
110 #define DEV_SEL_OPS m2_i2 /* which select operations are requested */
111 #define DEV_SEL_WATCH m2_i3 /* request notify if no operations are ready */
112
113 /* Field names used in reply messages from tasks. */
114 #define REP_PROC_NR m2_i1 /* # of proc on whose behalf I/O was done */
115 #define REP_STATUS m2_i2 /* bytes transferred or error number */
116 # define SUSPEND -998 /* status to suspend caller, reply later */
117
118 /* Field names for messages to TTY driver. */
119 #define TTY_LINE DEVICE /* message parameter: terminal line */
120 #define TTY_REQUEST COUNT /* message parameter: ioctl request code */
121 #define TTY_SPEK POSITION/* message parameter: ioctl speed, erasing */
122 #define TTY_FLAGS m2_l2 /* message parameter: ioctl tty mode */
123 #define TTY_PGRP m2_i3 /* message parameter: process group */
124
125 /* Field names for the QIC 02 status reply from tape driver */
126 #define TAPE_STAT0 m2_l1
127 #define TAPE_STAT1 m2_l2
128
129 /*===========================================================================*
130 * Messages for networking layer *
131 *===========================================================================*/
132
133 /* Message types for network layer requests. This layer acts like a driver. */
134 #define NW_OPEN DEV_OPEN
135 #define NW_CLOSE DEV_CLOSE
136 #define NW_READ DEV_READ
137 #define NW_WRITE DEV_WRITE
138 #define NW_IOCTL DEV_IOCTL
139 #define NW_CANCEL CANCEL
140
141 /* Base type for data link layer requests and responses. */
142 #define DL_RQ_BASE 0x800
143 #define DL_RS_BASE 0x900
144
145 /* Message types for data link layer requests. */
146 #define DL_WRITE (DL_RQ_BASE + 3)
147 #define DL_WRITEV (DL_RQ_BASE + 4)
148 #define DL_READ (DL_RQ_BASE + 5)
149 #define DL_READV (DL_RQ_BASE + 6)
150 #define DL_INIT (DL_RQ_BASE + 7)
151 #define DL_STOP (DL_RQ_BASE + 8)
152 #define DL_GETSTAT (DL_RQ_BASE + 9)
153 #define DL_GETNAME (DL_RQ_BASE +10)
154
155 /* Message type for data link layer replies. */
156 #define DL_INIT_REPLY (DL_RS_BASE + 20)
157 #define DL_TASK_REPLY (DL_RS_BASE + 21)
158 #define DL_NAME_REPLY (DL_RS_BASE + 22)
159
160 /* Field names for data link layer messages. */
161 #define DL_PORT m2_i1
162 #define DL_PROC m2_i2
163 #define DL_COUNT m2_i3
164 #define DL_MODE m2_l1
165 #define DL_CLCK m2_l2
166 #define DL_ADDR m2_p1
167 #define DL_STAT m2_l1
168 #define DL_NAME m3_ca1
169
170 /* Bits in 'DL_STAT' field of DL replies. */
171 # define DL_PACK_SEND 0x01
172 # define DL_PACK_RECV 0x02
173 # define DL_READ_IP 0x04
174
175 /* Bits in 'DL_MODE' field of DL requests. */
176 # define DL_NOMODE 0x0
177 # define DL_PROMISC_REQ 0x2
178 # define DL_MULTI_REQ 0x4
179 # define DL_BROAD_REQ 0x8
180
181 /*===========================================================================*
182 * SYSTASK request types and field names *
183 *===========================================================================*/
184
185 /* System library calls are dispatched via a call vector, so be careful when
186 * modifying the system call numbers. The numbers here determine which call
187 * is made from the call vector.
188 */
189 #define KERNEL_CALL 0x600 /* base for kernel calls to SYSTEM */
190
191 # define SYS_FORK (KERNEL_CALL + 0) /* sys_fork() */
192 # define SYS_EXEC (KERNEL_CALL + 1) /* sys_exec() */
193 # define SYS_EXIT (KERNEL_CALL + 2) /* sys_exit() */
194 # define SYS_NICE (KERNEL_CALL + 3) /* sys_nice() */
195 # define SYS_PRIVCTL (KERNEL_CALL + 4) /* sys_privctl() */
196 # define SYS_TRACE (KERNEL_CALL + 5) /* sys_trace() */
197 # define SYS_KILL (KERNEL_CALL + 6) /* sys_kill() */
198
199 # define SYS_GETKSIG (KERNEL_CALL + 7) /* sys_getsig() */
200 # define SYS_ENDKSIG (KERNEL_CALL + 8) /* sys_endsig() */
201 # define SYS_SIGSEND (KERNEL_CALL + 9) /* sys_sigsend() */
202 # define SYS_SIGRETURN (KERNEL_CALL + 10) /* sys_sigreturn() */
203
204 # define SYS_NEWMAP (KERNEL_CALL + 11) /* sys_newmap() */
205 # define SYS_SEGCTL (KERNEL_CALL + 12) /* sys_segctl() */
206 # define SYS_MEMSET (KERNEL_CALL + 13) /* sys_memset() */
207
208 # define SYS_UMAP (KERNEL_CALL + 14) /* sys_umap() */
209 # define SYS_VIRCOPY (KERNEL_CALL + 15) /* sys_vircopy() */
210 # define SYS_PHYSCOPY (KERNEL_CALL + 16) /* sys_physcopy() */
211 # define SYS_VIRVCOPY (KERNEL_CALL + 17) /* sys_virvcopy() */
212 # define SYS_PHYSVCOPY (KERNEL_CALL + 18) /* sys_physvcopy() */
213
214 # define SYS_IRQCTL (KERNEL_CALL + 19) /* sys_irqctl() */
215 # define SYS_INT86 (KERNEL_CALL + 20) /* sys_int86() */
216 # define SYS_DEVIO (KERNEL_CALL + 21) /* sys_devio() */
217 # define SYS_SDEVIO (KERNEL_CALL + 22) /* sys_sdevio() */
218 # define SYS_VDEVIO (KERNEL_CALL + 23) /* sys_vdevio() */
219
220 # define SYS_SETALARM (KERNEL_CALL + 24) /* sys_setalarm() */
221 # define SYS_TIMES (KERNEL_CALL + 25) /* sys_times() */
222 # define SYS_GETINFO (KERNEL_CALL + 26) /* sys_getinfo() */
223 # define SYS_ABORT (KERNEL_CALL + 27) /* sys_abort() */
224 # define SYS_IOPENABLE (KERNEL_CALL + 28) /* sys_enable_iop() */
225
226 #define NR_SYS_CALLS 29 /* number of system calls */
227
228 /* Field names for SYS_MEMSET, SYS_SEGCTL. */
229 #define MEM_PTR m2_p1 /* base */
230 #define MEM_COUNT m2_l1 /* count */
231 #define MEM_PATTERN m2_l2 /* pattern to write */
232 #define MEM_CHUNK_BASE m4_l1 /* physical base address */
233 #define MEM_CHUNK_SIZE m4_l2 /* size of mem chunk */
234 #define MEM_TOT_SIZE m4_l3 /* total memory size */
235 #define MEM_CHUNK_TAG m4_l4 /* tag to identify chunk of mem */
236
237 /* Field names for SYS_DEVIO, SYS_VDEVIO, SYS_SDEVIO. */
238 #define DIO_REQUEST m2_i3 /* device in or output */
239 # define DIO_INPUT 0 /* input */
240 # define DIO_OUTPUT 1 /* output */
241 #define DIO_TYPE m2_i1 /* flag indicating byte, word, or long */
242 # define DIO_BYTE 'b' /* byte type values */
243 # define DIO_WORD 'w' /* word type values */
244 # define DIO_LONG 'l' /* long type values */
245 #define DIO_PORT m2_l1 /* single port address */
246 #define DIO_VALUE m2_l2 /* single I/O value */
247 #define DIO_VEC_ADDR m2_p1 /* address of buffer or (p,v)-pairs */
248 #define DIO_VEC_SIZE m2_l2 /* number of elements in vector */
249 #define DIO_VEC_PROC m2_i2 /* number of process where vector is */
250
251 /* Field names for SYS_SIGNARLM, SYS_FLAGARLM, SYS_SYNCALRM. */
252 #define ALRM_EXP_TIME m2_l1 /* expire time for the alarm call */
253 #define ALRM_ABS_TIME m2_i2 /* set to 1 to use absolute alarm time */
254 #define ALRM_TIME_LEFT m2_l1 /* how many ticks were remaining */
255 #define ALRM_PROC_NR m2_i1 /* which process wants the alarm? */
256 #define ALRM_FLAG_PTR m2_p1 /* virtual address of timeout flag */
257
258 /* Field names for SYS_IRQCTL. */
259 #define IRQ_REQUEST m5_c1 /* what to do? */
260 # define IRQ_SETPOLICY 1 /* manage a slot of the IRQ table */
261 # define IRQ_RMPOLICY 2 /* remove a slot of the IRQ table */
262 # define IRQ_ENABLE 3 /* enable interrupts */
263 # define IRQ_DISABLE 4 /* disable interrupts */
264 #define IRQ_VECTOR m5_c2 /* irq vector */
265 #define IRQ_POLICY m5_i1 /* options for IRQCTL request */
266 # define IRQ_REENABLE 0x001 /* reenable IRQ line after interrupt */
267 # define IRQ_BYTE 0x100 /* byte values */
268 # define IRQ_WORD 0x200 /* word values */
269 # define IRQ_LONG 0x400 /* long values */
270 #define IRQ_PROC_NR m5_i2 /* process number, SELF, NONE */
271 #define IRQ_HOOK_ID m5_l3 /* id of irq hook at kernel */
272
273 /* Field names for SYS_SEGCTL. */
274 #define SEG_SELECT m4_l1 /* segment selector returned */
275 #define SEG_OFFSET m4_l2 /* offset in segment returned */
276 #define SEG_PHYS m4_l3 /* physical address of segment */
277 #define SEG_SIZE m4_l4 /* segment size */
278 #define SEG_INDEX m4_l5 /* segment index in remote map */
279
280 /* Field names for SYS_VIDCOPY. */
281 #define VID_REQUEST m4_l1 /* what to do? */
282 # define VID_VID_COPY 1 /* request vid_vid_copy() */
283 # define MEM_VID_COPY 2 /* request mem_vid_copy() */
284 #define VID_SRC_ADDR m4_l2 /* virtual address in memory */
285 #define VID_SRC_OFFSET m4_l3 /* offset in video memory */
286 #define VID_DST_OFFSET m4_l4 /* offset in video memory */
287 #define VID_CP_COUNT m4_l5 /* number of words to be copied */
288
289 /* Field names for SYS_ABORT. */
290 #define ABRT_HOW m1_i1 /* RBT_REBOOT, RBT_HALT, etc. */
291 #define ABRT_MON_PROC m1_i2 /* process where monitor params are */
292 #define ABRT_MON_LEN m1_i3 /* length of monitor params */
293 #define ABRT_MON_ADDR m1_p1 /* virtual address of monitor params */
294
295 /* Field names for _UMAP, _VIRCOPY, _PHYSCOPY. */
296 #define CP_SRC_SPACE m5_c1 /* T or D space (stack is also D) */
297 #define CP_SRC_PROC_NR m5_i1 /* process to copy from */
298 #define CP_SRC_ADDR m5_l1 /* address where data come from */
299 #define CP_DST_SPACE m5_c2 /* T or D space (stack is also D) */
300 #define CP_DST_PROC_NR m5_i2 /* process to copy to */
301 #define CP_DST_ADDR m5_l2 /* address where data go to */
302 #define CP_NR_BYTES m5_l3 /* number of bytes to copy */
303
304 /* Field names for SYS_VCOPY and SYS_VVIRCOPY. */
305 #define VCP_NR_OK m1_i2 /* number of successfull copies */
306 #define VCP_VEC_SIZE m1_i3 /* size of copy vector */
307 #define VCP_VEC_ADDR m1_p1 /* pointer to copy vector */
308
309 /* Field names for SYS_GETINFO. */
310 #define I_REQUEST m7_i3 /* what info to get */
311 # define GET_KINFO 0 /* get kernel information structure */
312 # define GET_IMAGE 1 /* get system image table */
313 # define GET_PROCTAB 2 /* get kernel process table */
314 # define GET_RANDOMNESS 3 /* get randomness buffer */
315 # define GET_MONPARAMS 4 /* get monitor parameters */
316 # define GET_KENV 5 /* get kernel environment string */
317 # define GET_IRQHOOKS 6 /* get the IRQ table */
318 # define GET_KMESSAGES 7 /* get kernel messages */
319 # define GET_PRIVTAB 8 /* get kernel privileges table */
320 # define GET_KADDRESSES 9 /* get various kernel addresses */
321 # define GET_SCHEDINFO 10 /* get scheduling queues */
322 # define GET_PROC 11 /* get process slot if given process */
323 # define GET_MACHINE 12 /* get machine information */
324 # define GET_LOCKTIMING 13 /* get lock()/unlock() latency timing */
325 # define GET_BIOSBUFFER 14 /* get a buffer for BIOS calls */
326 #define I_PROC_NR m7_i4 /* calling process */
327 #define I_VAL_PTR m7_p1 /* virtual address at caller */
328 #define I_VAL_LEN m7_i1 /* max length of value */
329 #define I_VAL_PTR2 m7_p2 /* second virtual address */
330 #define I_VAL_LEN2 m7_i2 /* second length, or proc nr */
331
332 /* Field names for SYS_TIMES. */
333 #define T_PROC_NR m4_l1 /* process to request time info for */
334 #define T_USER_TIME m4_l1 /* user time consumed by process */
335 #define T_SYSTEM_TIME m4_l2 /* system time consumed by process */
336 #define T_CHILD_UTIME m4_l3 /* user time consumed by process' children */
337 #define T_CHILD_STIME m4_l4 /* sys time consumed by process' children */
338 #define T_BOOT_TICKS m4_l5 /* number of clock ticks since boot time */
339
340 /* Field names for SYS_TRACE, SYS_SVRCTL. */
341 #define CTL_PROC_NR m2_i1 /* process number of the caller */
342 #define CTL_REQUEST m2_i2 /* server control request */
343 #define CTL_MM_PRIV m2_i3 /* privilege as seen by PM */
344 #define CTL_ARG_PTR m2_p1 /* pointer to argument */
345 #define CTL_ADDRESS m2_l1 /* address at traced process' space */
346 #define CTL_DATA m2_l2 /* data field for tracing */
347
348 /* Field names for SYS_KILL, SYS_SIGCTL */
349 #define SIG_REQUEST m2_l2 /* PM signal control request */
350 #define S_GETSIG 0 /* get pending kernel signal */
351 #define S_ENDSIG 1 /* finish a kernel signal */
352 #define S_SENDSIG 2 /* POSIX style signal handling */
353 #define S_SIGRETURN 3 /* return from POSIX handling */
354 #define S_KILL 4 /* servers kills process with signal */
355 #define SIG_PROC m2_i1 /* process number for inform */
356 #define SIG_NUMBER m2_i2 /* signal number to send */
357 #define SIG_FLAGS m2_i3 /* signal flags field */
358 #define SIG_MAP m2_l1 /* used by kernel to pass signal bit map */
359 #define SIG_CTXT_PTR m2_p1 /* pointer to info to restore signal context */
360
361 /* Field names for SYS_FORK, _EXEC, _EXIT, _NEWMAP. */
362 #define PR_PROC_NR m1_i1 /* indicates a (child) process */
363 #define PR_PRIORITY m1_i2 /* process priority */
364 #define PR_PPROC_NR m1_i2 /* indicates a (parent) process */
365 #define PR_PID m1_i3 /* process id at process manager */
366 #define PR_STACK_PTR m1_p1 /* used for stack ptr in sys_exec, sys_getsp */
367 #define PR_TRACING m1_i3 /* flag to indicate tracing is on/ off */
368 #define PR_NAME_PTR m1_p2 /* tells where program name is for dmp */
369 #define PR_IP_PTR m1_p3 /* initial value for ip after exec */
370 #define PR_MEM_PTR m1_p1 /* tells where memory map is for sys_newmap */
371
372 /* Field names for SYS_INT86 */
373 #define INT86_REG86 m1_p1 /* pointer to registers */
374
375 /* Field names for SELECT (FS). */
376 #define SEL_NFDS m8_i1
377 #define SEL_READFDS m8_p1
378 #define SEL_WRITEFDS m8_p2
379 #define SEL_ERRORFDS m8_p3
380 #define SEL_TIMEOUT m8_p4
381
382 /*===========================================================================*
383 * Messages for the Reincarnation Server *
384 *===========================================================================*/
385
386 #define RS_RQ_BASE 0x700
387
388 #define RS_UP (RS_RQ_BASE + 0) /* start system service */
389 #define RS_DOWN (RS_RQ_BASE + 1) /* stop system service */
390 #define RS_REFRESH (RS_RQ_BASE + 2) /* restart system service */
391 #define RS_RESCUE (RS_RQ_BASE + 3) /* set rescue directory */
392 #define RS_SHUTDOWN (RS_RQ_BASE + 4) /* alert about shutdown */
393
394 # define RS_CMD_ADDR m1_p1 /* command string */
395 # define RS_CMD_LEN m1_i1 /* length of command */
396 # define RS_PID m1_i1 /* pid of system service */
397 # define RS_PERIOD m1_i2 /* heartbeat period */
398 # define RS_DEV_MAJOR m1_i3 /* major device number */
399
400 /*===========================================================================*
401 * Messages for the Data Store Server *
402 *===========================================================================*/
403
404 #define DS_RQ_BASE 0x800
405
406 #define DS_PUBLISH (DS_RQ_BASE + 0) /* publish information */
407 #define DS_RETRIEVE (DS_RQ_BASE + 1) /* retrieve information */
408 #define DS_SUBSCRIBE (DS_RQ_BASE + 2) /* subscribe to information */
409
410 # define DS_KEY m2_i1 /* key for the information */
411 # define DS_FLAGS m2_i2 /* flags provided by caller */
412 # define DS_AUTH m2_p1 /* authorization of caller */
413 # define DS_VAL_L1 m2_l1 /* first long data value */
414 # define DS_VAL_L2 m2_l2 /* second long data value */
415
416 /*===========================================================================*
417 * Miscellaneous messages used by TTY *
418 *===========================================================================*/
419
420 /* Miscellaneous request types and field names, e.g. used by IS server. */
421 #define PANIC_DUMPS 97 /* debug dumps at the TTY on RBT_PANIC */
422 #define FKEY_CONTROL 98 /* control a function key at the TTY */
423 # define FKEY_REQUEST m2_i1 /* request to perform at TTY */
424 # define FKEY_MAP 10 /* observe function key */
425 # define FKEY_UNMAP 11 /* stop observing function key */
426 # define FKEY_EVENTS 12 /* request open key presses */
427 # define FKEY_FKEYS m2_l1 /* F1-F12 keys pressed */
428 # define FKEY_SFKEYS m2_l2 /* Shift-F1-F12 keys pressed */
429 #define DIAGNOSTICS 100 /* output a string without FS in between */
430 # define DIAG_PRINT_BUF m1_p1
431 # define DIAG_BUF_COUNT m1_i1
432 # define DIAG_PROC_NR m1_i2
433 #define GET_KMESS 101 /* get kmess from TTY */
434 # define GETKM_PTR m1_p1
435
436
437 #endif /* _MINIX_COM_H */
Cache object: 3d38bdb23a82c75d34be0d2632e45c3e
|