]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/i386/linux/linux.h
This commit was generated by cvs2svn to compensate for changes in r49795,
[FreeBSD/FreeBSD.git] / sys / i386 / linux / linux.h
1 /*-
2  * Copyright (c) 1994-1996 Søren Schmidt
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer 
10  *    in this position and unchanged.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  * 3. The name of the author may not be used to endorse or promote products
15  *    derived from this software without specific prior written permission
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  *      $Id: linux.h,v 1.32 1999/08/13 14:44:13 marcel Exp $
29  */
30
31 #ifndef _I386_LINUX_LINUX_H_
32 #define _I386_LINUX_LINUX_H_
33
34 #include <i386/linux/linux_syscall.h>
35
36 typedef unsigned short linux_uid_t;
37 typedef unsigned short linux_gid_t;
38 typedef unsigned short linux_dev_t;
39 typedef unsigned long linux_ino_t;
40 typedef unsigned short linux_mode_t;
41 typedef unsigned short linux_nlink_t;
42 typedef long linux_time_t;
43 typedef long linux_clock_t;
44 typedef char * linux_caddr_t;
45 typedef long linux_off_t;
46 typedef struct {
47         long val[2];
48 } linux_fsid_t;
49 typedef int linux_pid_t;
50 typedef unsigned long linux_sigset_t;
51 typedef void (*linux_handler_t)(int);
52 typedef struct {
53         void (*lsa_handler)(int);
54         linux_sigset_t lsa_mask;
55         unsigned long lsa_flags;
56         void (*lsa_restorer)(void);
57 } linux_sigaction_t;
58 typedef int linux_key_t;
59
60 typedef struct {
61     unsigned    long sig[2];
62 } linux_new_sigset_t;
63 typedef struct {
64     void        (*lsa_handler)(int);
65     unsigned    long lsa_flags;
66     void        (*lsa_restorer)(void);
67     linux_new_sigset_t lsa_mask;
68 } linux_new_sigaction_t;
69
70
71 /*
72  * The Linux sigcontext, pretty much a standard 386 trapframe.
73  */
74
75 struct linux_sigcontext {
76         int     sc_gs;
77         int     sc_fs;
78         int     sc_es;
79         int     sc_ds;
80         int     sc_edi;
81         int     sc_esi;
82         int     sc_ebp;
83         int     sc_esp;
84         int     sc_ebx;
85         int     sc_edx;
86         int     sc_ecx;
87         int     sc_eax;
88         int     sc_trapno;
89         int     sc_err;
90         int     sc_eip;
91         int     sc_cs;
92         int     sc_eflags;
93         int     sc_esp_at_signal;
94         int     sc_ss;
95         int     sc_387;
96         int     sc_mask;
97         int     sc_cr2;
98 };
99
100 /*
101  * We make the stack look like Linux expects it when calling a signal
102  * handler, but use the BSD way of calling the handler and sigreturn().
103  * This means that we need to pass the pointer to the handler too.
104  * It is appended to the frame to not interfere with the rest of it.
105  */
106
107 struct linux_sigframe {
108         int     sf_sig;
109         struct  linux_sigcontext sf_sc;
110         void    (*sf_handler)(int);
111 };
112
113 extern int bsd_to_linux_signal[];
114 extern int linux_to_bsd_signal[];
115 extern char linux_sigcode[];
116 extern int linux_szsigcode;
117 extern const char linux_emul_path[];
118
119 extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL];
120 extern struct sysentvec linux_sysvec;
121 extern struct sysentvec elf_linux_sysvec;
122
123 /* dummy struct definitions */
124 struct image_params;
125 struct trapframe;
126
127 /* misc defines */
128 #define LINUX_NAME_MAX          255
129
130 /* signal numbers */
131 #define LINUX_SIGHUP             1
132 #define LINUX_SIGINT             2
133 #define LINUX_SIGQUIT            3
134 #define LINUX_SIGILL             4
135 #define LINUX_SIGTRAP            5
136 #define LINUX_SIGABRT            6
137 #define LINUX_SIGIOT             6
138 #define LINUX_SIGBUS             7
139 #define LINUX_SIGFPE             8
140 #define LINUX_SIGKILL            9
141 #define LINUX_SIGUSR1           10
142 #define LINUX_SIGSEGV           11
143 #define LINUX_SIGUSR2           12
144 #define LINUX_SIGPIPE           13
145 #define LINUX_SIGALRM           14
146 #define LINUX_SIGTERM           15
147 #define LINUX_SIGSTKFLT         16
148 #define LINUX_SIGCHLD           17
149 #define LINUX_SIGCONT           18
150 #define LINUX_SIGSTOP           19
151 #define LINUX_SIGTSTP           20
152 #define LINUX_SIGTTIN           21
153 #define LINUX_SIGTTOU           22
154 #define LINUX_SIGURG            23
155 #define LINUX_SIGXCPU           24
156 #define LINUX_SIGXFSZ           25
157 #define LINUX_SIGVTALRM         26
158 #define LINUX_SIGPROF           27
159 #define LINUX_SIGWINCH          28
160 #define LINUX_SIGIO             29
161 #define LINUX_SIGPOLL           LINUX_SIGIO
162 #define LINUX_SIGPWR            30
163 #define LINUX_SIGUNUSED         31
164 #define LINUX_NSIG              32
165
166 /* sigaction flags */
167 #define LINUX_SA_NOCLDSTOP      0x00000001
168 #define LINUX_SA_NOCLDWAIT      0x00000002
169 #define LINUX_SA_SIGINFO        0x00000004
170 #define LINUX_SA_RESTORER       0x04000000
171 #define LINUX_SA_ONSTACK        0x08000000
172 #define LINUX_SA_RESTART        0x10000000
173 #define LINUX_SA_INTERRUPT      0x20000000
174 #define LINUX_SA_NOMASK         0x40000000
175 #define LINUX_SA_ONESHOT        0x80000000
176
177 /* sigprocmask actions */
178 #define LINUX_SIG_BLOCK         0
179 #define LINUX_SIG_UNBLOCK       1
180 #define LINUX_SIG_SETMASK       2
181
182 /* resource limits */
183 #define LINUX_RLIMIT_CPU        0
184 #define LINUX_RLIMIT_FSIZE      1
185 #define LINUX_RLIMIT_DATA       2
186 #define LINUX_RLIMIT_STACK      3
187 #define LINUX_RLIMIT_CORE       4
188 #define LINUX_RLIMIT_RSS        5
189 #define LINUX_RLIMIT_NPROC      6
190 #define LINUX_RLIMIT_NOFILE     7
191 #define LINUX_RLIMIT_MEMLOCK    8
192 #define LINUX_RLIMIT_AS         9       /* address space limit */
193
194 #define LINUX_RLIM_NLIMITS      10
195
196 /* keyboard defines */
197 #define LINUX_KIOCSOUND         0x4B2F
198 #define LINUX_KDMKTONE          0x4B30
199 #define LINUX_KDGETLED          0x4B31
200 #define LINUX_KDSETLED          0x4B32
201 #define LINUX_LED_SCR           0x01
202 #define LINUX_LED_NUM           0x02
203 #define LINUX_LED_CAP           0x04
204
205 #define LINUX_KDGKBMODE         0x4B44
206 #define LINUX_KDSKBMODE         0x4B45
207 #define LINUX_KDSETMODE         0x4B3A
208 #define LINUX_KDGETMODE         0x4B3B
209 #define LINUX_KD_TEXT           0x0
210 #define LINUX_KD_GRAPHICS       0x1
211 #define LINUX_KD_TEXT0          0x2
212 #define LINUX_KD_TEXT1          0x3
213
214 #define LINUX_KBD_RAW           0
215 #define LINUX_KBD_XLATE         1
216 #define LINUX_KBD_MEDIUMRAW     2
217
218 /* termio commands */
219 #define LINUX_TCGETS            0x5401
220 #define LINUX_TCSETS            0x5402
221 #define LINUX_TCSETSW           0x5403
222 #define LINUX_TCSETSF           0x5404
223 #define LINUX_TCGETA            0x5405
224 #define LINUX_TCSETA            0x5406
225 #define LINUX_TCSETAW           0x5407
226 #define LINUX_TCSETAF           0x5408
227 #define LINUX_TCSBRK            0x5409
228 #define LINUX_TCXONC            0x540A
229 #define LINUX_TCFLSH            0x540B
230 #define LINUX_TIOCEXCL          0x540C
231 #define LINUX_TIOCNXCL          0x540D
232 #define LINUX_TIOCSCTTY         0x540E
233 #define LINUX_TIOCGPGRP         0x540F
234 #define LINUX_TIOCSPGRP         0x5410
235 #define LINUX_TIOCOUTQ          0x5411
236 #define LINUX_TIOCSTI           0x5412
237 #define LINUX_TIOCGWINSZ        0x5413
238 #define LINUX_TIOCSWINSZ        0x5414
239 #define LINUX_TIOCMGET          0x5415
240 #define LINUX_TIOCMBIS          0x5416
241 #define LINUX_TIOCMBIC          0x5417
242 #define LINUX_TIOCMSET          0x5418
243 #define LINUX_TIOCGSOFTCAR      0x5419
244 #define LINUX_TIOCSSOFTCAR      0x541A
245 #define LINUX_FIONREAD          0x541B
246 #define LINUX_TIOCINQ           FIONREAD
247 #define LINUX_TIOCLINUX         0x541C
248 #define LINUX_TIOCCONS          0x541D
249 #define LINUX_TIOCGSERIAL       0x541E
250 #define LINUX_TIOCSSERIAL       0x541F
251 #define LINUX_TIOCPKT           0x5420
252 #define LINUX_FIONBIO           0x5421
253 #define LINUX_TIOCNOTTY         0x5422
254 #define LINUX_TIOCSETD          0x5423
255 #define LINUX_TIOCGETD          0x5424
256 #define LINUX_TCSBRKP           0x5425
257 #define LINUX_TIOCTTYGSTRUCT    0x5426
258 #define LINUX_FIONCLEX          0x5450
259 #define LINUX_FIOCLEX           0x5451
260 #define LINUX_FIOASYNC          0x5452
261 #define LINUX_TIOCSERCONFIG     0x5453
262 #define LINUX_TIOCSERGWILD      0x5454
263 #define LINUX_TIOCSERSWILD      0x5455
264 #define LINUX_TIOCGLCKTRMIOS    0x5456
265 #define LINUX_TIOCSLCKTRMIOS    0x5457
266 #define LINUX_VT_OPENQRY        0x5600
267 #define LINUX_VT_GETMODE        0x5601
268 #define LINUX_VT_SETMODE        0x5602
269 #define LINUX_VT_GETSTATE       0x5603
270 #define LINUX_VT_RELDISP        0x5605
271 #define LINUX_VT_ACTIVATE       0x5606  
272 #define LINUX_VT_WAITACTIVE     0x5607
273
274 /* arguments for tcflow() and LINUX_TCXONC */
275 #define LINUX_TCOOFF          0
276 #define LINUX_TCOON           1
277 #define LINUX_TCIOFF          2
278 #define LINUX_TCION           3
279
280 /* arguments for tcflush() and LINUX_TCFLSH */
281 #define LINUX_TCIFLUSH        0
282 #define LINUX_TCOFLUSH        1
283 #define LINUX_TCIOFLUSH       2
284
285 /* line disciplines */
286 #define LINUX_N_TTY             0
287 #define LINUX_N_SLIP            1
288 #define LINUX_N_MOUSE           2
289 #define LINUX_N_PPP             3
290
291 /* Linux termio c_cc values */
292 #define LINUX_VINTR             0
293 #define LINUX_VQUIT             1
294 #define LINUX_VERASE            2
295 #define LINUX_VKILL             3
296 #define LINUX_VEOF              4
297 #define LINUX_VTIME             5
298 #define LINUX_VMIN              6
299 #define LINUX_VSWTC             7
300 #define LINUX_NCC               8
301
302 /* Linux termios c_cc values */
303 #define LINUX_VSTART            8
304 #define LINUX_VSTOP             9
305 #define LINUX_VSUSP             10
306 #define LINUX_VEOL              11
307 #define LINUX_VREPRINT          12
308 #define LINUX_VDISCARD          13
309 #define LINUX_VWERASE           14
310 #define LINUX_VLNEXT            15
311 #define LINUX_VEOL2             16
312 #define LINUX_NCCS              19
313
314 #define LINUX_POSIX_VDISABLE    '\0'
315
316 /* Linux c_iflag masks */
317 #define LINUX_IGNBRK            0x0000001
318 #define LINUX_BRKINT            0x0000002
319 #define LINUX_IGNPAR            0x0000004
320 #define LINUX_PARMRK            0x0000008
321 #define LINUX_INPCK             0x0000010
322 #define LINUX_ISTRIP            0x0000020
323 #define LINUX_INLCR             0x0000040
324 #define LINUX_IGNCR             0x0000080
325 #define LINUX_ICRNL             0x0000100
326 #define LINUX_IUCLC             0x0000200
327 #define LINUX_IXON              0x0000400
328 #define LINUX_IXANY             0x0000800
329 #define LINUX_IXOFF             0x0001000
330 #define LINUX_IMAXBEL           0x0002000
331
332 /* Linux c_oflag masks */
333 #define LINUX_OPOST             0x0000001
334 #define LINUX_OLCUC             0x0000002
335 #define LINUX_ONLCR             0x0000004
336 #define LINUX_OCRNL             0x0000008
337 #define LINUX_ONOCR             0x0000010
338 #define LINUX_ONLRET            0x0000020
339 #define LINUX_OFILL             0x0000040
340 #define LINUX_OFDEL             0x0000080
341 #define LINUX_NLDLY             0x0000100
342
343 #define LINUX_NL0               0x0000000
344 #define LINUX_NL1               0x0000100
345 #define LINUX_CRDLY             0x0000600
346 #define LINUX_CR0               0x0000000
347 #define LINUX_CR1               0x0000200
348 #define LINUX_CR2               0x0000400
349 #define LINUX_CR3               0x0000600
350 #define LINUX_TABDLY            0x0001800
351 #define LINUX_TAB0              0x0000000
352 #define LINUX_TAB1              0x0000800
353 #define LINUX_TAB2              0x0001000
354 #define LINUX_TAB3              0x0001800
355 #define LINUX_XTABS             0x0001800
356 #define LINUX_BSDLY             0x0002000
357 #define LINUX_BS0               0x0000000
358 #define LINUX_BS1               0x0002000
359 #define LINUX_VTDLY             0x0004000
360 #define LINUX_VT0               0x0000000
361 #define LINUX_VT1               0x0004000
362 #define LINUX_FFDLY             0x0008000
363 #define LINUX_FF0               0x0000000
364 #define LINUX_FF1               0x0008000
365
366 #define LINUX_CBAUD             0x0000100f
367 #define LINUX_B0                0x00000000
368 #define LINUX_B50               0x00000001
369 #define LINUX_B75               0x00000002
370 #define LINUX_B110              0x00000003
371 #define LINUX_B134              0x00000004
372 #define LINUX_B150              0x00000005
373 #define LINUX_B200              0x00000006
374 #define LINUX_B300              0x00000007
375 #define LINUX_B600              0x00000008
376 #define LINUX_B1200             0x00000009
377 #define LINUX_B1800             0x0000000a
378 #define LINUX_B2400             0x0000000b
379 #define LINUX_B4800             0x0000000c
380 #define LINUX_B9600             0x0000000d
381 #define LINUX_B19200            0x0000000e
382 #define LINUX_B38400            0x0000000f
383 #define LINUX_EXTA              LINUX_B19200
384 #define LINUX_EXTB              LINUX_B38400
385 #define LINUX_CBAUDEX           0x00001000
386 #define LINUX_B57600            0x00001001
387 #define LINUX_B115200           0x00001002
388
389 #define LINUX_CSIZE             0x00000030
390 #define LINUX_CS5               0x00000000
391 #define LINUX_CS6               0x00000010
392 #define LINUX_CS7               0x00000020
393 #define LINUX_CS8               0x00000030
394 #define LINUX_CSTOPB            0x00000040
395 #define LINUX_CREAD             0x00000080
396 #define LINUX_PARENB            0x00000100
397 #define LINUX_PARODD            0x00000200
398 #define LINUX_HUPCL             0x00000400
399 #define LINUX_CLOCAL            0x00000800
400 #define LINUX_CRTSCTS           0x80000000
401
402 /* Linux c_lflag masks */
403 #define LINUX_ISIG              0x00000001
404 #define LINUX_ICANON            0x00000002
405 #define LINUX_XCASE             0x00000004
406 #define LINUX_ECHO              0x00000008
407 #define LINUX_ECHOE             0x00000010
408 #define LINUX_ECHOK             0x00000020
409 #define LINUX_ECHONL            0x00000040
410 #define LINUX_NOFLSH            0x00000080
411 #define LINUX_TOSTOP            0x00000100
412 #define LINUX_ECHOCTL           0x00000200
413 #define LINUX_ECHOPRT           0x00000400
414 #define LINUX_ECHOKE            0x00000800
415 #define LINUX_FLUSHO            0x00001000
416 #define LINUX_PENDIN            0x00002000
417 #define LINUX_IEXTEN            0x00008000
418
419 /* open/fcntl flags */
420 #define LINUX_O_RDONLY          00
421 #define LINUX_O_WRONLY          01
422 #define LINUX_O_RDWR            02
423 #define LINUX_O_CREAT           0100
424 #define LINUX_O_EXCL            0200
425 #define LINUX_O_NOCTTY          0400
426 #define LINUX_O_TRUNC           01000
427 #define LINUX_O_APPEND          02000
428 #define LINUX_O_NONBLOCK        04000
429 #define LINUX_O_NDELAY          LINUX_O_NONBLOCK
430 #define LINUX_O_SYNC            010000
431 #define LINUX_FASYNC            020000
432
433 /* fcntl flags */
434 #define LINUX_F_DUPFD           0
435 #define LINUX_F_GETFD           1
436 #define LINUX_F_SETFD           2
437 #define LINUX_F_GETFL           3
438 #define LINUX_F_SETFL           4
439 #define LINUX_F_GETLK           5
440 #define LINUX_F_SETLK           6
441 #define LINUX_F_SETLKW          7
442 #define LINUX_F_SETOWN          8
443 #define LINUX_F_GETOWN          9
444
445 #define LINUX_F_RDLCK           0
446 #define LINUX_F_WRLCK           1
447 #define LINUX_F_UNLCK           2
448
449 /* mmap options */
450 #define LINUX_MAP_SHARED        0x0001
451 #define LINUX_MAP_PRIVATE       0x0002
452 #define LINUX_MAP_FIXED         0x0010
453 #define LINUX_MAP_ANON          0x0020
454 #define LINUX_MAP_GROWSDOWN     0x0100
455
456 /* SystemV ipc defines */
457 #define LINUX_SEMOP             1
458 #define LINUX_SEMGET            2
459 #define LINUX_SEMCTL            3
460 #define LINUX_MSGSND            11
461 #define LINUX_MSGRCV            12
462 #define LINUX_MSGGET            13
463 #define LINUX_MSGCTL            14
464 #define LINUX_SHMAT             21
465 #define LINUX_SHMDT             22
466 #define LINUX_SHMGET            23
467 #define LINUX_SHMCTL            24
468
469 #define LINUX_IPC_RMID          0
470 #define LINUX_IPC_SET           1
471 #define LINUX_IPC_STAT          2
472 #define LINUX_IPC_INFO          3
473
474 #define LINUX_SHM_LOCK          11
475 #define LINUX_SHM_UNLOCK        12
476 #define LINUX_SHM_STAT          13
477 #define LINUX_SHM_INFO          14
478
479 #define LINUX_SHM_RDONLY        0x1000
480 #define LINUX_SHM_RND           0x2000
481 #define LINUX_SHM_REMAP         0x4000
482
483 /* semctl Command Definitions. */
484 #define LINUX_GETPID            11
485 #define LINUX_GETVAL            12
486 #define LINUX_GETALL            13
487 #define LINUX_GETNCNT           14
488 #define LINUX_GETZCNT           15
489 #define LINUX_SETVAL            16
490 #define LINUX_SETALL            17
491
492 /* Socket defines */
493 #define LINUX_SOCKET            1
494 #define LINUX_BIND              2
495 #define LINUX_CONNECT           3
496 #define LINUX_LISTEN            4
497 #define LINUX_ACCEPT            5
498 #define LINUX_GETSOCKNAME       6
499 #define LINUX_GETPEERNAME       7
500 #define LINUX_SOCKETPAIR        8
501 #define LINUX_SEND              9
502 #define LINUX_RECV              10
503 #define LINUX_SENDTO            11
504 #define LINUX_RECVFROM          12
505 #define LINUX_SHUTDOWN          13
506 #define LINUX_SETSOCKOPT        14
507 #define LINUX_GETSOCKOPT        15
508 #define LINUX_SENDMSG           16
509 #define LINUX_RECVMSG           17
510
511 #define LINUX_AF_UNSPEC         0
512 #define LINUX_AF_UNIX           1
513 #define LINUX_AF_INET           2
514 #define LINUX_AF_AX25           3
515 #define LINUX_AF_IPX            4
516 #define LINUX_AF_APPLETALK      5
517
518 #define LINUX_SOL_SOCKET        1
519 #define LINUX_SOL_IP            0
520 #define LINUX_SOL_IPX           256
521 #define LINUX_SOL_AX25          257
522 #define LINUX_SOL_TCP           6
523 #define LINUX_SOL_UDP           17
524
525 #define LINUX_SO_DEBUG          1
526 #define LINUX_SO_REUSEADDR      2
527 #define LINUX_SO_TYPE           3
528 #define LINUX_SO_ERROR          4
529 #define LINUX_SO_DONTROUTE      5
530 #define LINUX_SO_BROADCAST      6
531 #define LINUX_SO_SNDBUF         7
532 #define LINUX_SO_RCVBUF         8
533 #define LINUX_SO_KEEPALIVE      9
534 #define LINUX_SO_OOBINLINE      10
535 #define LINUX_SO_NO_CHECK       11
536 #define LINUX_SO_PRIORITY       12
537 #define LINUX_SO_LINGER         13
538
539 #define LINUX_IP_TOS            1
540 #define LINUX_IP_TTL            2
541 #define LINUX_IP_HDRINCL        3
542 #define LINUX_IP_OPTIONS        4
543
544 #define LINUX_IP_MULTICAST_IF           32
545 #define LINUX_IP_MULTICAST_TTL          33
546 #define LINUX_IP_MULTICAST_LOOP         34
547 #define LINUX_IP_ADD_MEMBERSHIP         35
548 #define LINUX_IP_DROP_MEMBERSHIP        36
549
550 /* Sound system defines */
551 #define LINUX_SNDCTL_SEQ_RESET          0x5100
552 #define LINUX_SNDCTL_SEQ_SYNC           0x5101
553 #define LINUX_SNDCTL_SYNTH_INFO         0x5102
554 #define LINUX_SNDCTL_SEQ_CTRLRATE       0x5103
555 #define LINUX_SNDCTL_SEQ_GETOUTCOUNT    0x5104
556 #define LINUX_SNDCTL_SEQ_GETINCOUNT     0x5105
557 #define LINUX_SNDCTL_SEQ_PERCMODE       0x5106
558 #define LINUX_SNDCTL_FM_LOAD_INSTR      0x5107
559 #define LINUX_SNDCTL_SEQ_TESTMIDI       0x5108
560 #define LINUX_SNDCTL_SEQ_RESETSAMPLES   0x5109
561 #define LINUX_SNDCTL_SEQ_NRSYNTHS       0x510A
562 #define LINUX_SNDCTL_SEQ_NRMIDIS        0x510B
563 #define LINUX_SNDCTL_MIDI_INFO          0x510C
564 #define LINUX_SNDCTL_SEQ_TRESHOLD       0x510D
565 #define LINUX_SNDCTL_SYNTH_MEMAVL       0x510E
566 #define LINUX_SNDCTL_DSP_RESET          0x5000
567 #define LINUX_SNDCTL_DSP_SYNC           0x5001
568 #define LINUX_SNDCTL_DSP_SPEED          0x5002
569 #define LINUX_SNDCTL_DSP_STEREO         0x5003
570 #define LINUX_SNDCTL_DSP_GETBLKSIZE     0x5004
571 #define LINUX_SNDCTL_DSP_SETBLKSIZE     0x5004
572 #define LINUX_SNDCTL_DSP_SETFMT         0x5005
573 #define LINUX_SOUND_PCM_WRITE_CHANNELS  0x5006
574 #define LINUX_SOUND_PCM_WRITE_FILTER    0x5007
575 #define LINUX_SNDCTL_DSP_POST           0x5008
576 #define LINUX_SNDCTL_DSP_SUBDIVIDE      0x5009
577 #define LINUX_SNDCTL_DSP_SETFRAGMENT    0x500A
578 #define LINUX_SNDCTL_DSP_GETFMTS        0x500B
579 #define LINUX_SNDCTL_DSP_GETOSPACE      0x500C
580 #define LINUX_SNDCTL_DSP_GETISPACE      0x500D
581 #define LINUX_SNDCTL_DSP_NONBLOCK       0x500E
582 #define LINUX_SNDCTL_DSP_GETCAPS        0x500F
583 #define LINUX_SNDCTL_DSP_GETTRIGGER     0x5010
584 #define LINUX_SNDCTL_DSP_SETTRIGGER     0x5010
585 #define LINUX_SNDCTL_DSP_GETIPTR        0x5011
586 #define LINUX_SNDCTL_DSP_GETOPTR        0x5012
587 #define LINUX_SOUND_MIXER_WRITE_VOLUME  0x4d00
588 #define LINUX_SOUND_MIXER_WRITE_BASS    0x4d01
589 #define LINUX_SOUND_MIXER_WRITE_TREBLE  0x4d02
590 #define LINUX_SOUND_MIXER_WRITE_SYNTH   0x4d03
591 #define LINUX_SOUND_MIXER_WRITE_PCM     0x4d04
592 #define LINUX_SOUND_MIXER_WRITE_SPEAKER 0x4d05
593 #define LINUX_SOUND_MIXER_WRITE_LINE    0x4d06
594 #define LINUX_SOUND_MIXER_WRITE_MIC     0x4d07
595 #define LINUX_SOUND_MIXER_WRITE_CD      0x4d08
596 #define LINUX_SOUND_MIXER_WRITE_IMIX    0x4d09
597 #define LINUX_SOUND_MIXER_WRITE_ALTPCM  0x4d0A
598 #define LINUX_SOUND_MIXER_WRITE_RECLEV  0x4d0B
599 #define LINUX_SOUND_MIXER_WRITE_IGAIN   0x4d0C
600 #define LINUX_SOUND_MIXER_WRITE_OGAIN   0x4d0D
601 #define LINUX_SOUND_MIXER_WRITE_LINE1   0x4d0E
602 #define LINUX_SOUND_MIXER_WRITE_LINE2   0x4d0F
603 #define LINUX_SOUND_MIXER_WRITE_LINE3   0x4d10
604 #define LINUX_SOUND_MIXER_READ_DEVMASK  0x4dfe
605
606 /* Socket system defines */
607 #define LINUX_FIOSETOWN                 0x8901
608 #define LINUX_SIOCSPGRP                 0x8902
609 #define LINUX_FIOGETOWN                 0x8903
610 #define LINUX_SIOCGPGRP                 0x8904
611 #define LINUX_SIOCATMARK                0x8905
612 #define LINUX_SIOCGSTAMP                0x8906
613 #define LINUX_SIOCGIFCONF               0x8912
614 #define LINUX_SIOCGIFFLAGS              0x8913
615 #define LINUX_SIOCGIFADDR               0x8915
616 #define LINUX_SIOCGIFDSTADDR            0x8917
617 #define LINUX_SIOCGIFBRDADDR            0x8919
618 #define LINUX_SIOCGIFNETMASK            0x891b
619 #define LINUX_SIOCGIFHWADDR             0x8927
620 #define LINUX_SIOCADDMULTI              0x8931
621 #define LINUX_SIOCDELMULTI              0x8932
622
623 struct linux_sockaddr
624 {
625     unsigned short      sa_family;
626     char                sa_data[14];
627 };
628
629 struct linux_ifmap 
630 {
631     unsigned long       mem_start;
632     unsigned long       mem_end;
633     unsigned short      base_addr; 
634     unsigned char       irq;
635     unsigned char       dma;
636     unsigned char       port;
637 };
638
639 struct linux_ifreq 
640 {
641 #define LINUX_IFHWADDRLEN     6
642 #define LINUX_IFNAMSIZ        16
643     union
644     {
645         char    ifrn_name[LINUX_IFNAMSIZ];              /* if name, e.g. "en0" */       
646     } ifr_ifrn;
647         
648     union {
649         struct linux_sockaddr   ifru_addr;
650         struct linux_sockaddr   ifru_dstaddr;
651         struct linux_sockaddr   ifru_broadaddr;
652         struct linux_sockaddr   ifru_netmask;
653         struct linux_sockaddr   ifru_hwaddr;
654         short                   ifru_flags;
655         int                     ifru_metric;
656         int                     ifru_mtu;
657         struct linux_ifmap      ifru_map;
658         char                    ifru_slave[LINUX_IFNAMSIZ];     /* Just fits the size */
659         caddr_t                 ifru_data;
660     } ifr_ifru;
661 };
662
663 #define ifr_name        ifr_ifrn.ifrn_name              /* interface name       */
664 #define ifr_hwaddr      ifr_ifru.ifru_hwaddr            /* MAC address          */
665
666
667 /* serial_struct values for TIOC[GS]SERIAL ioctls */
668 #define LINUX_ASYNC_CLOSING_WAIT_INF  0
669 #define LINUX_ASYNC_CLOSING_WAIT_NONE 65535
670
671 #define LINUX_PORT_UNKNOWN    0
672 #define LINUX_PORT_8250       1
673 #define LINUX_PORT_16450      2
674 #define LINUX_PORT_16550      3
675 #define LINUX_PORT_16550A     4
676 #define LINUX_PORT_CIRRUS     5
677 #define LINUX_PORT_16650      6
678 #define LINUX_PORT_MAX        6
679
680 #define LINUX_ASYNC_HUP_NOTIFY          0x0001
681 #define LINUX_ASYNC_FOURPORT            0x0002
682 #define LINUX_ASYNC_SAK                 0x0004
683 #define LINUX_ASYNC_SPLIT_TERMIOS       0x0008
684 #define LINUX_ASYNC_SPD_MASK            0x0030
685 #define LINUX_ASYNC_SPD_HI              0x0010
686 #define LINUX_ASYNC_SPD_VHI             0x0020
687 #define LINUX_ASYNC_SPD_CUST            0x0030
688 #define LINUX_ASYNC_SKIP_TEST           0x0040
689 #define LINUX_ASYNC_AUTO_IRQ            0x0080
690 #define LINUX_ASYNC_SESSION_LOCKOUT     0x0100
691 #define LINUX_ASYNC_PGRP_LOCKOUT        0x0200
692 #define LINUX_ASYNC_CALLOUT_NOHUP       0x0400
693 #define LINUX_ASYNC_FLAGS               0x0FFF
694
695 /* cdrom */
696 #define LINUX_CDROMPAUSE                0x5301 
697 #define LINUX_CDROMRESUME               0x5302
698 #define LINUX_CDROMPLAYMSF              0x5303
699 #define LINUX_CDROMPLAYTRKIND           0x5304
700 #define LINUX_CDROMREADTOCHDR           0x5305
701 #define LINUX_CDROMREADTOCENTRY         0x5306
702 #define LINUX_CDROMSTOP                 0x5307
703 #define LINUX_CDROMSTART                0x5308
704 #define LINUX_CDROMEJECT                0x5309
705 #define LINUX_CDROMVOLCTRL              0x530a
706 #define LINUX_CDROMSUBCHNL              0x530b
707 #define LINUX_CDROMREADMODE2            0x530c
708 #define LINUX_CDROMREADMODE1            0x530d
709 #define LINUX_CDROMREADAUDIO            0x530e
710 #define LINUX_CDROMEJECT_SW             0x530f
711 #define LINUX_CDROMMULTISESSION         0x5310
712 #define LINUX_CDROM_GET_UPC             0x5311
713 #define LINUX_CDROMRESET                0x5312
714 #define LINUX_CDROMVOLREAD              0x5313
715 #define LINUX_CDROMREADRAW              0x5314
716 #define LINUX_CDROMREADCOOKED           0x5315
717 #define LINUX_CDROMSEEK                 0x5316
718 #define LINUX_CDROMPLAYBLK              0x5317
719 #define LINUX_CDROMREADALL              0x5318
720 #define LINUX_CDROMCLOSETRAY            0x5319
721 #define LINUX_CDROMLOADFROMSLOT         0x531a
722
723 #define LINUX_CDROM_LBA                 0x01
724 #define LINUX_CDROM_MSF                 0x02
725
726 #endif /* !_I386_LINUX_LINUX_H_ */