xref: /freebsd/sys/i386/linux/linux.h (revision 62c3734cbe1af37690df76af14a23445bd5fda2c)
1c21dee17SSøren Schmidt /*-
2e1743d02SSøren Schmidt  * Copyright (c) 1994-1996 S�ren Schmidt
3c21dee17SSøren Schmidt  * All rights reserved.
4c21dee17SSøren Schmidt  *
5c21dee17SSøren Schmidt  * Redistribution and use in source and binary forms, with or without
6c21dee17SSøren Schmidt  * modification, are permitted provided that the following conditions
7c21dee17SSøren Schmidt  * are met:
8c21dee17SSøren Schmidt  * 1. Redistributions of source code must retain the above copyright
9c21dee17SSøren Schmidt  *    notice, this list of conditions and the following disclaimer
10c21dee17SSøren Schmidt  *    in this position and unchanged.
11c21dee17SSøren Schmidt  * 2. Redistributions in binary form must reproduce the above copyright
12c21dee17SSøren Schmidt  *    notice, this list of conditions and the following disclaimer in the
13c21dee17SSøren Schmidt  *    documentation and/or other materials provided with the distribution.
14c21dee17SSøren Schmidt  * 3. The name of the author may not be used to endorse or promote products
156c5e9bbdSMike Pritchard  *    derived from this software without specific prior written permission
16c21dee17SSøren Schmidt  *
17c21dee17SSøren Schmidt  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18c21dee17SSøren Schmidt  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19c21dee17SSøren Schmidt  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20c21dee17SSøren Schmidt  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21c21dee17SSøren Schmidt  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22c21dee17SSøren Schmidt  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23c21dee17SSøren Schmidt  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24c21dee17SSøren Schmidt  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25c21dee17SSøren Schmidt  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26c21dee17SSøren Schmidt  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27c21dee17SSøren Schmidt  *
2862c3734cSBruce Evans  *	$Id: linux.h,v 1.8 1996/03/10 22:30:52 peter Exp $
29c21dee17SSøren Schmidt  */
30c21dee17SSøren Schmidt 
311f3dad5aSBruce Evans #ifndef _I386_LINUX_LINUX_H_
321f3dad5aSBruce Evans #define _I386_LINUX_LINUX_H_
3362c3734cSBruce Evans 
3462c3734cSBruce Evans #include <i386/linux/linux_syscall.h>
35c21dee17SSøren Schmidt 
36c21dee17SSøren Schmidt typedef unsigned short linux_uid_t;
37c21dee17SSøren Schmidt typedef unsigned short linux_gid_t;
38c21dee17SSøren Schmidt typedef unsigned short linux_dev_t;
39c21dee17SSøren Schmidt typedef unsigned long linux_ino_t;
40c21dee17SSøren Schmidt typedef unsigned short linux_mode_t;
41c21dee17SSøren Schmidt typedef unsigned short linux_nlink_t;
42c21dee17SSøren Schmidt typedef long linux_time_t;
43c21dee17SSøren Schmidt typedef long linux_clock_t;
44c21dee17SSøren Schmidt typedef char * linux_caddr_t;
45c21dee17SSøren Schmidt typedef long linux_off_t;
46c21dee17SSøren Schmidt typedef struct {
47c21dee17SSøren Schmidt 	long val[2];
48c21dee17SSøren Schmidt } linux_fsid_t;
49c21dee17SSøren Schmidt typedef int linux_pid_t;
50c21dee17SSøren Schmidt typedef unsigned long linux_sigset_t;
51c21dee17SSøren Schmidt typedef void (*linux_handler_t)(int);
52c21dee17SSøren Schmidt typedef struct {
53c21dee17SSøren Schmidt 	void (*sa_handler)(int);
54c21dee17SSøren Schmidt 	linux_sigset_t sa_mask;
55c21dee17SSøren Schmidt 	unsigned long sa_flags;
56c21dee17SSøren Schmidt 	void (*sa_restorer)(void);
57c21dee17SSøren Schmidt } linux_sigaction_t;
58c21dee17SSøren Schmidt typedef int linux_key_t;
59c21dee17SSøren Schmidt 
60d66a5066SPeter Wemm /*
61d66a5066SPeter Wemm  * The Linux sigcontext, pretty much a standard 386 trapframe.
62d66a5066SPeter Wemm  */
63d66a5066SPeter Wemm 
64d66a5066SPeter Wemm struct linux_sigcontext {
65d66a5066SPeter Wemm 	int	sc_gs;
66d66a5066SPeter Wemm 	int	sc_fs;
67d66a5066SPeter Wemm 	int     sc_es;
68d66a5066SPeter Wemm 	int     sc_ds;
69d66a5066SPeter Wemm 	int     sc_edi;
70d66a5066SPeter Wemm 	int     sc_esi;
71d66a5066SPeter Wemm 	int     sc_ebp;
72d66a5066SPeter Wemm 	int	sc_esp;
73d66a5066SPeter Wemm 	int     sc_ebx;
74d66a5066SPeter Wemm 	int     sc_edx;
75d66a5066SPeter Wemm 	int     sc_ecx;
76d66a5066SPeter Wemm 	int     sc_eax;
77d66a5066SPeter Wemm 	int     sc_trapno;
78d66a5066SPeter Wemm 	int     sc_err;
79d66a5066SPeter Wemm 	int     sc_eip;
80d66a5066SPeter Wemm 	int     sc_cs;
81d66a5066SPeter Wemm 	int     sc_eflags;
82d66a5066SPeter Wemm 	int     sc_esp_at_signal;
83d66a5066SPeter Wemm 	int     sc_ss;
84d66a5066SPeter Wemm 	int	sc_387;
85d66a5066SPeter Wemm 	int	sc_mask;
86d66a5066SPeter Wemm 	int	sc_cr2;
87d66a5066SPeter Wemm };
88d66a5066SPeter Wemm 
89d66a5066SPeter Wemm /*
90d66a5066SPeter Wemm  * We make the stack look like Linux expects it when calling a signal
91d66a5066SPeter Wemm  * handler, but use the BSD way of calling the handler and sigreturn().
92d66a5066SPeter Wemm  * This means that we need to pass the pointer to the handler too.
93d66a5066SPeter Wemm  * It is appended to the frame to not interfere with the rest of it.
94d66a5066SPeter Wemm  */
95d66a5066SPeter Wemm 
96d66a5066SPeter Wemm struct linux_sigframe {
97d66a5066SPeter Wemm 	int	sf_sig;
98d66a5066SPeter Wemm 	struct	linux_sigcontext sf_sc;
99d66a5066SPeter Wemm 	sig_t	sf_handler;
100d66a5066SPeter Wemm };
101d66a5066SPeter Wemm 
102e1743d02SSøren Schmidt extern int bsd_to_linux_errno[];
103c21dee17SSøren Schmidt extern int bsd_to_linux_signal[];
104c21dee17SSøren Schmidt extern int linux_to_bsd_signal[];
105e1743d02SSøren Schmidt extern char linux_sigcode[];
106e1743d02SSøren Schmidt extern int linux_szsigcode;
107e1743d02SSøren Schmidt extern const char linux_emul_path[];
108c21dee17SSøren Schmidt 
109e1743d02SSøren Schmidt extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL];
110d66a5066SPeter Wemm extern struct sysentvec linux_sysvec;
111e1743d02SSøren Schmidt extern struct sysentvec elf_linux_sysvec;
112d66a5066SPeter Wemm 
113e1743d02SSøren Schmidt /* dummy struct definitions */
114d66a5066SPeter Wemm struct image_params;
115e1743d02SSøren Schmidt struct trapframe;
116d66a5066SPeter Wemm 
117c21dee17SSøren Schmidt /* misc defines */
118c21dee17SSøren Schmidt #define LINUX_NAME_MAX		255
119c21dee17SSøren Schmidt 
120c21dee17SSøren Schmidt /* signal numbers */
121c21dee17SSøren Schmidt #define LINUX_SIGHUP		 1
122c21dee17SSøren Schmidt #define LINUX_SIGINT		 2
123c21dee17SSøren Schmidt #define LINUX_SIGQUIT		 3
124c21dee17SSøren Schmidt #define LINUX_SIGILL		 4
125c21dee17SSøren Schmidt #define LINUX_SIGTRAP		 5
126c21dee17SSøren Schmidt #define LINUX_SIGABRT		 6
127c21dee17SSøren Schmidt #define LINUX_SIGIOT		 6
128c21dee17SSøren Schmidt #define LINUX_SIGUNUSED	 	 7
129c21dee17SSøren Schmidt #define LINUX_SIGFPE		 8
130c21dee17SSøren Schmidt #define LINUX_SIGKILL		 9
131c21dee17SSøren Schmidt #define LINUX_SIGUSR1		10
132c21dee17SSøren Schmidt #define LINUX_SIGSEGV		11
133c21dee17SSøren Schmidt #define LINUX_SIGUSR2		12
134c21dee17SSøren Schmidt #define LINUX_SIGPIPE		13
135c21dee17SSøren Schmidt #define LINUX_SIGALRM		14
136c21dee17SSøren Schmidt #define LINUX_SIGTERM		15
137c21dee17SSøren Schmidt #define LINUX_SIGSTKFLT		16
138c21dee17SSøren Schmidt #define LINUX_SIGCHLD		17
139c21dee17SSøren Schmidt #define LINUX_SIGCONT		18
140c21dee17SSøren Schmidt #define LINUX_SIGSTOP		19
141c21dee17SSøren Schmidt #define LINUX_SIGTSTP		20
142c21dee17SSøren Schmidt #define LINUX_SIGTTIN		21
143c21dee17SSøren Schmidt #define LINUX_SIGTTOU		22
144c21dee17SSøren Schmidt #define LINUX_SIGIO		23
145c21dee17SSøren Schmidt #define LINUX_SIGPOLL		LINUX_SIGIO
146c21dee17SSøren Schmidt #define LINUX_SIGURG		LINUX_SIGIO
147c21dee17SSøren Schmidt #define LINUX_SIGXCPU		24
148c21dee17SSøren Schmidt #define LINUX_SIGXFSZ		25
149c21dee17SSøren Schmidt #define LINUX_SIGVTALRM		26
150c21dee17SSøren Schmidt #define LINUX_SIGPROF		27
151c21dee17SSøren Schmidt #define LINUX_SIGWINCH		28
152c21dee17SSøren Schmidt #define LINUX_SIGLOST		29
153c21dee17SSøren Schmidt #define LINUX_SIGPWR		30
154c21dee17SSøren Schmidt #define LINUX_SIGBUS		LINUX_SIGUNUSED
155c21dee17SSøren Schmidt #define LINUX_NSIG		32
156c21dee17SSøren Schmidt 
157c21dee17SSøren Schmidt /* sigaction flags */
158c21dee17SSøren Schmidt #define LINUX_SA_NOCLDSTOP	0x00000001
159c21dee17SSøren Schmidt #define LINUX_SA_ONSTACK	0x08000000
160c21dee17SSøren Schmidt #define LINUX_SA_RESTART	0x10000000
161c21dee17SSøren Schmidt #define LINUX_SA_INTERRUPT	0x20000000
162c21dee17SSøren Schmidt #define LINUX_SA_NOMASK		0x40000000
163c21dee17SSøren Schmidt #define LINUX_SA_ONESHOT	0x80000000
164c21dee17SSøren Schmidt 
165c21dee17SSøren Schmidt /* sigprocmask actions */
166c21dee17SSøren Schmidt #define LINUX_SIG_BLOCK		0
167c21dee17SSøren Schmidt #define LINUX_SIG_UNBLOCK	1
168c21dee17SSøren Schmidt #define LINUX_SIG_SETMASK	2
169c21dee17SSøren Schmidt 
170c21dee17SSøren Schmidt /* termio commands */
171c21dee17SSøren Schmidt #define LINUX_TCGETS		0x5401
172c21dee17SSøren Schmidt #define LINUX_TCSETS		0x5402
173c21dee17SSøren Schmidt #define LINUX_TCSETSW		0x5403
174c21dee17SSøren Schmidt #define LINUX_TCSETSF		0x5404
175c21dee17SSøren Schmidt #define LINUX_TCGETA		0x5405
176c21dee17SSøren Schmidt #define LINUX_TCSETA		0x5406
177c21dee17SSøren Schmidt #define LINUX_TCSETAW		0x5407
178c21dee17SSøren Schmidt #define LINUX_TCSETAF		0x5408
179c21dee17SSøren Schmidt #define LINUX_TCSBRK		0x5409
180c21dee17SSøren Schmidt #define LINUX_TCXONC		0x540A
181c21dee17SSøren Schmidt #define LINUX_TCFLSH		0x540B
182c21dee17SSøren Schmidt #define LINUX_TIOCEXCL		0x540C
183c21dee17SSøren Schmidt #define LINUX_TIOCNXCL		0x540D
184c21dee17SSøren Schmidt #define LINUX_TIOCSCTTY		0x540E
185c21dee17SSøren Schmidt #define LINUX_TIOCGPGRP		0x540F
186c21dee17SSøren Schmidt #define LINUX_TIOCSPGRP		0x5410
187c21dee17SSøren Schmidt #define LINUX_TIOCOUTQ		0x5411
188c21dee17SSøren Schmidt #define LINUX_TIOCSTI		0x5412
189c21dee17SSøren Schmidt #define LINUX_TIOCGWINSZ	0x5413
190c21dee17SSøren Schmidt #define LINUX_TIOCSWINSZ	0x5414
191c21dee17SSøren Schmidt #define LINUX_TIOCMGET		0x5415
192c21dee17SSøren Schmidt #define LINUX_TIOCMBIS		0x5416
193c21dee17SSøren Schmidt #define LINUX_TIOCMBIC		0x5417
194c21dee17SSøren Schmidt #define LINUX_TIOCMSET		0x5418
195c21dee17SSøren Schmidt #define LINUX_TIOCGSOFTCAR	0x5419
196c21dee17SSøren Schmidt #define LINUX_TIOCSSOFTCAR	0x541A
197c21dee17SSøren Schmidt #define LINUX_FIONREAD		0x541B
198c21dee17SSøren Schmidt #define LINUX_TIOCINQ		FIONREAD
199c21dee17SSøren Schmidt #define LINUX_TIOCLINUX		0x541C
200c21dee17SSøren Schmidt #define LINUX_TIOCCONS		0x541D
201c21dee17SSøren Schmidt #define LINUX_TIOCGSERIAL	0x541E
202c21dee17SSøren Schmidt #define LINUX_TIOCSSERIAL	0x541F
203c21dee17SSøren Schmidt #define LINUX_TIOCPKT		0x5420
204c21dee17SSøren Schmidt #define LINUX_FIONBIO		0x5421
205c21dee17SSøren Schmidt #define LINUX_TIOCNOTTY		0x5422
206c21dee17SSøren Schmidt #define LINUX_TIOCSETD		0x5423
207c21dee17SSøren Schmidt #define LINUX_TIOCGETD		0x5424
208c21dee17SSøren Schmidt #define LINUX_TCSBRKP		0x5425
209c21dee17SSøren Schmidt #define LINUX_TIOCTTYGSTRUCT	0x5426
210c21dee17SSøren Schmidt #define LINUX_FIONCLEX		0x5450
211c21dee17SSøren Schmidt #define LINUX_FIOCLEX		0x5451
212c21dee17SSøren Schmidt #define LINUX_FIOASYNC		0x5452
213c21dee17SSøren Schmidt #define LINUX_TIOCSERCONFIG	0x5453
214c21dee17SSøren Schmidt #define LINUX_TIOCSERGWILD	0x5454
215c21dee17SSøren Schmidt #define LINUX_TIOCSERSWILD	0x5455
216c21dee17SSøren Schmidt #define LINUX_TIOCGLCKTRMIOS	0x5456
217c21dee17SSøren Schmidt #define LINUX_TIOCSLCKTRMIOS	0x5457
218c21dee17SSøren Schmidt 
2199c5ee423SPeter Wemm /* arguments for tcflush() and LINUX_TCFLSH */
2209c5ee423SPeter Wemm #define LINUX_TCIFLUSH        0
2219c5ee423SPeter Wemm #define LINUX_TCOFLUSH        1
2229c5ee423SPeter Wemm #define LINUX_TCIOFLUSH       2
2239c5ee423SPeter Wemm 
224c21dee17SSøren Schmidt /* line disciplines */
225c21dee17SSøren Schmidt #define LINUX_N_TTY		0
226c21dee17SSøren Schmidt #define LINUX_N_SLIP		1
227c21dee17SSøren Schmidt #define LINUX_N_MOUSE		2
228c21dee17SSøren Schmidt #define LINUX_N_PPP		3
229c21dee17SSøren Schmidt 
230c21dee17SSøren Schmidt /* Linux termio c_cc values */
231c21dee17SSøren Schmidt #define LINUX_VINTR		0
232c21dee17SSøren Schmidt #define LINUX_VQUIT		1
233c21dee17SSøren Schmidt #define LINUX_VERASE		2
234c21dee17SSøren Schmidt #define LINUX_VKILL		3
235c21dee17SSøren Schmidt #define LINUX_VEOF		4
236c21dee17SSøren Schmidt #define LINUX_VTIME		5
237c21dee17SSøren Schmidt #define LINUX_VMIN		6
238c21dee17SSøren Schmidt #define LINUX_VSWTC		7
239c21dee17SSøren Schmidt #define LINUX_NCC		8
240c21dee17SSøren Schmidt 
241c21dee17SSøren Schmidt /* Linux termios c_cc values */
242c21dee17SSøren Schmidt #define LINUX_VSTART		8
243c21dee17SSøren Schmidt #define LINUX_VSTOP		9
244c21dee17SSøren Schmidt #define LINUX_VSUSP 		10
245c21dee17SSøren Schmidt #define LINUX_VEOL		11
246c21dee17SSøren Schmidt #define LINUX_VREPRINT		12
247c21dee17SSøren Schmidt #define LINUX_VDISCARD		13
248c21dee17SSøren Schmidt #define LINUX_VWERASE		14
249c21dee17SSøren Schmidt #define LINUX_VLNEXT		15
250c21dee17SSøren Schmidt #define LINUX_VEOL2		16
2514f735d8eSPeter Wemm #define LINUX_NCCS		19
2524f735d8eSPeter Wemm 
2534f735d8eSPeter Wemm #define LINUX_POSIX_VDISABLE	'\0'
254c21dee17SSøren Schmidt 
255c21dee17SSøren Schmidt /* Linux c_iflag masks */
256c21dee17SSøren Schmidt #define LINUX_IGNBRK		0x0000001
257c21dee17SSøren Schmidt #define LINUX_BRKINT		0x0000002
258c21dee17SSøren Schmidt #define LINUX_IGNPAR		0x0000004
259c21dee17SSøren Schmidt #define LINUX_PARMRK		0x0000008
260c21dee17SSøren Schmidt #define LINUX_INPCK		0x0000010
261c21dee17SSøren Schmidt #define LINUX_ISTRIP		0x0000020
262c21dee17SSøren Schmidt #define LINUX_INLCR		0x0000040
263c21dee17SSøren Schmidt #define LINUX_IGNCR		0x0000080
264c21dee17SSøren Schmidt #define LINUX_ICRNL		0x0000100
265c21dee17SSøren Schmidt #define LINUX_IUCLC		0x0000200
266c21dee17SSøren Schmidt #define LINUX_IXON		0x0000400
267c21dee17SSøren Schmidt #define LINUX_IXANY		0x0000800
268c21dee17SSøren Schmidt #define LINUX_IXOFF		0x0001000
269c21dee17SSøren Schmidt #define LINUX_IMAXBEL		0x0002000
270c21dee17SSøren Schmidt 
271c21dee17SSøren Schmidt /* Linux c_oflag masks */
272c21dee17SSøren Schmidt #define LINUX_OPOST		0x0000001
273c21dee17SSøren Schmidt #define LINUX_OLCUC		0x0000002
274c21dee17SSøren Schmidt #define LINUX_ONLCR		0x0000004
275c21dee17SSøren Schmidt #define LINUX_OCRNL		0x0000008
276c21dee17SSøren Schmidt #define LINUX_ONOCR		0x0000010
277c21dee17SSøren Schmidt #define LINUX_ONLRET		0x0000020
278c21dee17SSøren Schmidt #define LINUX_OFILL		0x0000040
279c21dee17SSøren Schmidt #define LINUX_OFDEL		0x0000080
280c21dee17SSøren Schmidt #define LINUX_NLDLY		0x0000100
281c21dee17SSøren Schmidt 
282c21dee17SSøren Schmidt #define LINUX_NL0		0x0000000
283c21dee17SSøren Schmidt #define LINUX_NL1		0x0000100
284c21dee17SSøren Schmidt #define LINUX_CRDLY		0x0000600
285c21dee17SSøren Schmidt #define LINUX_CR0		0x0000000
286c21dee17SSøren Schmidt #define LINUX_CR1		0x0000200
287c21dee17SSøren Schmidt #define LINUX_CR2		0x0000400
288c21dee17SSøren Schmidt #define LINUX_CR3		0x0000600
289c21dee17SSøren Schmidt #define LINUX_TABDLY		0x0001800
290c21dee17SSøren Schmidt #define LINUX_TAB0		0x0000000
291c21dee17SSøren Schmidt #define LINUX_TAB1		0x0000800
292c21dee17SSøren Schmidt #define LINUX_TAB2		0x0001000
293c21dee17SSøren Schmidt #define LINUX_TAB3		0x0001800
294c21dee17SSøren Schmidt #define LINUX_XTABS		0x0001800
295c21dee17SSøren Schmidt #define LINUX_BSDLY		0x0002000
296c21dee17SSøren Schmidt #define LINUX_BS0		0x0000000
297c21dee17SSøren Schmidt #define LINUX_BS1		0x0002000
298c21dee17SSøren Schmidt #define LINUX_VTDLY		0x0004000
299c21dee17SSøren Schmidt #define LINUX_VT0		0x0000000
300c21dee17SSøren Schmidt #define LINUX_VT1		0x0004000
301c21dee17SSøren Schmidt #define LINUX_FFDLY		0x0008000
302c21dee17SSøren Schmidt #define LINUX_FF0		0x0000000
303c21dee17SSøren Schmidt #define LINUX_FF1		0x0008000
304c21dee17SSøren Schmidt 
305c21dee17SSøren Schmidt #define LINUX_CBAUD		0x0000100f
306c21dee17SSøren Schmidt #define LINUX_B0		0x00000000
307c21dee17SSøren Schmidt #define LINUX_B50		0x00000001
308c21dee17SSøren Schmidt #define LINUX_B75		0x00000002
309c21dee17SSøren Schmidt #define LINUX_B110		0x00000003
310c21dee17SSøren Schmidt #define LINUX_B134		0x00000004
311c21dee17SSøren Schmidt #define LINUX_B150		0x00000005
312c21dee17SSøren Schmidt #define LINUX_B200		0x00000006
313c21dee17SSøren Schmidt #define LINUX_B300		0x00000007
314c21dee17SSøren Schmidt #define LINUX_B600		0x00000008
315c21dee17SSøren Schmidt #define LINUX_B1200		0x00000009
316c21dee17SSøren Schmidt #define LINUX_B1800		0x0000000a
317c21dee17SSøren Schmidt #define LINUX_B2400		0x0000000b
318c21dee17SSøren Schmidt #define LINUX_B4800		0x0000000c
319c21dee17SSøren Schmidt #define LINUX_B9600		0x0000000d
320c21dee17SSøren Schmidt #define LINUX_B19200		0x0000000e
321c21dee17SSøren Schmidt #define LINUX_B38400		0x0000000f
322c21dee17SSøren Schmidt #define LINUX_EXTA		LINUX_B19200
323c21dee17SSøren Schmidt #define LINUX_EXTB		LINUX_B38400
324c21dee17SSøren Schmidt #define LINUX_CBAUDEX		0x00001000
325c21dee17SSøren Schmidt #define LINUX_B57600		0x00001001
326c21dee17SSøren Schmidt #define LINUX_B115200		0x00001002
327c21dee17SSøren Schmidt 
328c21dee17SSøren Schmidt #define LINUX_CSIZE		0x00000030
329c21dee17SSøren Schmidt #define LINUX_CS5		0x00000000
330c21dee17SSøren Schmidt #define LINUX_CS6		0x00000010
331c21dee17SSøren Schmidt #define LINUX_CS7		0x00000020
332c21dee17SSøren Schmidt #define LINUX_CS8		0x00000030
333c21dee17SSøren Schmidt #define LINUX_CSTOPB		0x00000040
334c21dee17SSøren Schmidt #define LINUX_CREAD		0x00000080
335c21dee17SSøren Schmidt #define LINUX_PARENB		0x00000100
336c21dee17SSøren Schmidt #define LINUX_PARODD		0x00000200
337c21dee17SSøren Schmidt #define LINUX_HUPCL		0x00000400
338c21dee17SSøren Schmidt #define LINUX_CLOCAL		0x00000800
339c21dee17SSøren Schmidt #define LINUX_CRTSCTS		0x80000000
340c21dee17SSøren Schmidt 
341c21dee17SSøren Schmidt /* Linux c_lflag masks */
342c21dee17SSøren Schmidt #define LINUX_ISIG		0x00000001
343c21dee17SSøren Schmidt #define LINUX_ICANON		0x00000002
344c21dee17SSøren Schmidt #define LINUX_XCASE		0x00000004
345c21dee17SSøren Schmidt #define LINUX_ECHO		0x00000008
346c21dee17SSøren Schmidt #define LINUX_ECHOE		0x00000010
347c21dee17SSøren Schmidt #define LINUX_ECHOK		0x00000020
348c21dee17SSøren Schmidt #define LINUX_ECHONL		0x00000040
349c21dee17SSøren Schmidt #define LINUX_NOFLSH		0x00000080
350c21dee17SSøren Schmidt #define LINUX_TOSTOP		0x00000100
351c21dee17SSøren Schmidt #define LINUX_ECHOCTL		0x00000200
352c21dee17SSøren Schmidt #define LINUX_ECHOPRT		0x00000400
353c21dee17SSøren Schmidt #define LINUX_ECHOKE		0x00000800
354c21dee17SSøren Schmidt #define LINUX_FLUSHO		0x00001000
355c21dee17SSøren Schmidt #define LINUX_PENDIN		0x00002000
356c21dee17SSøren Schmidt #define LINUX_IEXTEN		0x00008000
357c21dee17SSøren Schmidt 
358c21dee17SSøren Schmidt /* open/fcntl flags */
359c21dee17SSøren Schmidt #define LINUX_O_RDONLY		00
360c21dee17SSøren Schmidt #define LINUX_O_WRONLY		01
361c21dee17SSøren Schmidt #define LINUX_O_RDWR		02
362c21dee17SSøren Schmidt #define LINUX_O_CREAT		0100
363c21dee17SSøren Schmidt #define LINUX_O_EXCL		0200
364c21dee17SSøren Schmidt #define LINUX_O_NOCTTY		0400
365c21dee17SSøren Schmidt #define LINUX_O_TRUNC		01000
366c21dee17SSøren Schmidt #define LINUX_O_APPEND		02000
367c21dee17SSøren Schmidt #define LINUX_O_NONBLOCK	04000
368c21dee17SSøren Schmidt #define LINUX_O_NDELAY		LINUX_O_NONBLOCK
369c21dee17SSøren Schmidt #define LINUX_O_SYNC		010000
370c21dee17SSøren Schmidt #define LINUX_FASYNC		020000
371c21dee17SSøren Schmidt 
372c21dee17SSøren Schmidt /* fcntl flags */
373c21dee17SSøren Schmidt #define LINUX_F_DUPFD		0
374c21dee17SSøren Schmidt #define LINUX_F_GETFD		1
375c21dee17SSøren Schmidt #define LINUX_F_SETFD		2
376c21dee17SSøren Schmidt #define LINUX_F_GETFL		3
377c21dee17SSøren Schmidt #define LINUX_F_SETFL		4
378c21dee17SSøren Schmidt #define LINUX_F_GETLK		5
379c21dee17SSøren Schmidt #define LINUX_F_SETLK		6
380c21dee17SSøren Schmidt #define LINUX_F_SETLKW		7
381c21dee17SSøren Schmidt #define LINUX_F_SETOWN		8
382c21dee17SSøren Schmidt #define LINUX_F_GETOWN		9
383c21dee17SSøren Schmidt 
384c21dee17SSøren Schmidt #define LINUX_F_RDLCK		0
385c21dee17SSøren Schmidt #define LINUX_F_WRLCK		1
386c21dee17SSøren Schmidt #define LINUX_F_UNLCK		2
387c21dee17SSøren Schmidt 
388c21dee17SSøren Schmidt /* mmap options */
389c21dee17SSøren Schmidt #define LINUX_MAP_SHARED	0x0001
390c21dee17SSøren Schmidt #define LINUX_MAP_PRIVATE	0x0002
391c21dee17SSøren Schmidt #define LINUX_MAP_FIXED		0x0010
392c21dee17SSøren Schmidt #define LINUX_MAP_ANON		0x0020
393c21dee17SSøren Schmidt 
394c21dee17SSøren Schmidt /* SystemV ipc defines */
395c21dee17SSøren Schmidt #define LINUX_SEMOP		1
396c21dee17SSøren Schmidt #define LINUX_SEMGET		2
397c21dee17SSøren Schmidt #define LINUX_SEMCTL		3
398c21dee17SSøren Schmidt #define LINUX_MSGSND		11
399c21dee17SSøren Schmidt #define LINUX_MSGRCV		12
400c21dee17SSøren Schmidt #define LINUX_MSGGET		13
401c21dee17SSøren Schmidt #define LINUX_MSGCTL		14
402c21dee17SSøren Schmidt #define LINUX_SHMAT		21
403c21dee17SSøren Schmidt #define LINUX_SHMDT		22
404c21dee17SSøren Schmidt #define LINUX_SHMGET		23
405c21dee17SSøren Schmidt #define LINUX_SHMCTL		24
406c21dee17SSøren Schmidt 
407c21dee17SSøren Schmidt #define LINUX_IPC_RMID		0
408c21dee17SSøren Schmidt #define LINUX_IPC_SET		1
409c21dee17SSøren Schmidt #define LINUX_IPC_STAT		2
410c21dee17SSøren Schmidt #define LINUX_IPC_INFO		3
411c21dee17SSøren Schmidt 
412c21dee17SSøren Schmidt #define LINUX_SHM_LOCK		11
413c21dee17SSøren Schmidt #define LINUX_SHM_UNLOCK	12
414c21dee17SSøren Schmidt #define LINUX_SHM_STAT		13
415c21dee17SSøren Schmidt #define LINUX_SHM_INFO		14
416c21dee17SSøren Schmidt 
417c21dee17SSøren Schmidt #define LINUX_SHM_RDONLY	0x1000
418c21dee17SSøren Schmidt #define LINUX_SHM_RND		0x2000
419c21dee17SSøren Schmidt #define LINUX_SHM_REMAP		0x4000
420c21dee17SSøren Schmidt 
421c21dee17SSøren Schmidt /* Socket defines */
422c21dee17SSøren Schmidt #define LINUX_SOCKET 		1
423c21dee17SSøren Schmidt #define LINUX_BIND		2
424c21dee17SSøren Schmidt #define LINUX_CONNECT 		3
425c21dee17SSøren Schmidt #define LINUX_LISTEN 		4
426c21dee17SSøren Schmidt #define LINUX_ACCEPT 		5
427c21dee17SSøren Schmidt #define LINUX_GETSOCKNAME	6
428c21dee17SSøren Schmidt #define LINUX_GETPEERNAME	7
429c21dee17SSøren Schmidt #define LINUX_SOCKETPAIR	8
430c21dee17SSøren Schmidt #define LINUX_SEND		9
431c21dee17SSøren Schmidt #define LINUX_RECV		10
432c21dee17SSøren Schmidt #define LINUX_SENDTO 		11
433c21dee17SSøren Schmidt #define LINUX_RECVFROM 		12
434c21dee17SSøren Schmidt #define LINUX_SHUTDOWN 		13
435c21dee17SSøren Schmidt #define LINUX_SETSOCKOPT	14
436c21dee17SSøren Schmidt #define LINUX_GETSOCKOPT	15
437c21dee17SSøren Schmidt 
438c21dee17SSøren Schmidt #define LINUX_AF_UNSPEC		0
439c21dee17SSøren Schmidt #define LINUX_AF_UNIX		1
440c21dee17SSøren Schmidt #define LINUX_AF_INET		2
441c21dee17SSøren Schmidt #define LINUX_AF_AX25		3
442c21dee17SSøren Schmidt #define LINUX_AF_IPX		4
443c21dee17SSøren Schmidt #define LINUX_AF_APPLETALK	5
444c21dee17SSøren Schmidt 
445c21dee17SSøren Schmidt #define LINUX_SOL_SOCKET	1
446c21dee17SSøren Schmidt #define LINUX_SOL_IP		0
447c21dee17SSøren Schmidt #define LINUX_SOL_IPX		256
448c21dee17SSøren Schmidt #define LINUX_SOL_AX25		257
449c21dee17SSøren Schmidt #define LINUX_SOL_TCP		6
450c21dee17SSøren Schmidt #define LINUX_SOL_UDP		17
451c21dee17SSøren Schmidt 
452c21dee17SSøren Schmidt #define LINUX_SO_DEBUG		1
453c21dee17SSøren Schmidt #define LINUX_SO_REUSEADDR	2
454c21dee17SSøren Schmidt #define LINUX_SO_TYPE		3
455c21dee17SSøren Schmidt #define LINUX_SO_ERROR		4
456c21dee17SSøren Schmidt #define LINUX_SO_DONTROUTE	5
457c21dee17SSøren Schmidt #define LINUX_SO_BROADCAST	6
458c21dee17SSøren Schmidt #define LINUX_SO_SNDBUF		7
459c21dee17SSøren Schmidt #define LINUX_SO_RCVBUF		8
460c21dee17SSøren Schmidt #define LINUX_SO_KEEPALIVE	9
461c21dee17SSøren Schmidt #define LINUX_SO_OOBINLINE	10
462c21dee17SSøren Schmidt #define LINUX_SO_NO_CHECK	11
463c21dee17SSøren Schmidt #define LINUX_SO_PRIORITY	12
464c21dee17SSøren Schmidt #define LINUX_SO_LINGER		13
465c21dee17SSøren Schmidt 
466c21dee17SSøren Schmidt #define LINUX_IP_TOS		1
467c21dee17SSøren Schmidt #define LINUX_IP_TTL		2
468c21dee17SSøren Schmidt 
469bb5889bdSSøren Schmidt /* Sound system defines */
470bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_RESET		0x5000
471bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SYNC		0x5001
472bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SPEED		0x5002
473bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_STEREO		0x5003
474bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETBLKSIZE	0x5004
475bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SETBLKSIZE	0x5004
476bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SETFMT		0x5005
477bb5889bdSSøren Schmidt #define LINUX_SOUND_PCM_WRITE_CHANNELS	0x5006
478bb5889bdSSøren Schmidt #define LINUX_SOUND_PCM_WRITE_FILTER	0x5007
479bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_POST		0x5008
480bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SUBDIVIDE	0x5009
481bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SETFRAGMENT	0x500A
482bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETFMTS	0x500B
483bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETOSPACE	0x500C
484bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETISPACE	0x500D
485bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_NONBLOCK	0x500E
486bb5889bdSSøren Schmidt 
487d66a5066SPeter Wemm /* Socket system defines */
488d66a5066SPeter Wemm #define LINUX_SIOCGIFCONF		0x8912
489d66a5066SPeter Wemm #define LINUX_SIOCGIFFLAGS		0x8913
490d66a5066SPeter Wemm #define LINUX_SIOCGIFADDR		0x8915
491d66a5066SPeter Wemm #define LINUX_SIOCGIFDSTADDR		0x8917
492d66a5066SPeter Wemm #define LINUX_SIOCGIFBRDADDR		0x8919
493d66a5066SPeter Wemm #define LINUX_SIOCGIFNETMASK		0x891b
494d66a5066SPeter Wemm #define LINUX_SIOCADDMULTI		0x8931
495d66a5066SPeter Wemm #define LINUX_SIOCDELMULTI		0x8932
4961f3dad5aSBruce Evans 
4979c5ee423SPeter Wemm /* serial_struct values for TIOC[GS]SERIAL ioctls */
4989c5ee423SPeter Wemm #define LINUX_ASYNC_CLOSING_WAIT_INF  0
4999c5ee423SPeter Wemm #define LINUX_ASYNC_CLOSING_WAIT_NONE 65535
5009c5ee423SPeter Wemm 
5019c5ee423SPeter Wemm #define LINUX_PORT_UNKNOWN    0
5029c5ee423SPeter Wemm #define LINUX_PORT_8250       1
5039c5ee423SPeter Wemm #define LINUX_PORT_16450      2
5049c5ee423SPeter Wemm #define LINUX_PORT_16550      3
5059c5ee423SPeter Wemm #define LINUX_PORT_16550A     4
5069c5ee423SPeter Wemm #define LINUX_PORT_CIRRUS     5
5079c5ee423SPeter Wemm #define LINUX_PORT_16650      6
5089c5ee423SPeter Wemm #define LINUX_PORT_MAX        6
5099c5ee423SPeter Wemm 
5109c5ee423SPeter Wemm #define LINUX_ASYNC_HUP_NOTIFY		0x0001
5119c5ee423SPeter Wemm #define LINUX_ASYNC_FOURPORT  		0x0002
5129c5ee423SPeter Wemm #define LINUX_ASYNC_SAK       		0x0004
5139c5ee423SPeter Wemm #define LINUX_ASYNC_SPLIT_TERMIOS 	0x0008
5149c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_MASK  		0x0030
5159c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_HI    		0x0010
5169c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_VHI   		0x0020
5179c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_CUST  		0x0030
5189c5ee423SPeter Wemm #define LINUX_ASYNC_SKIP_TEST 		0x0040
5199c5ee423SPeter Wemm #define LINUX_ASYNC_AUTO_IRQ  		0x0080
5209c5ee423SPeter Wemm #define LINUX_ASYNC_SESSION_LOCKOUT 	0x0100
5219c5ee423SPeter Wemm #define LINUX_ASYNC_PGRP_LOCKOUT    	0x0200
5229c5ee423SPeter Wemm #define LINUX_ASYNC_CALLOUT_NOHUP   	0x0400
5239c5ee423SPeter Wemm #define LINUX_ASYNC_FLAGS     		0x0FFF
5249c5ee423SPeter Wemm 
5259c5ee423SPeter Wemm 
5261f3dad5aSBruce Evans #endif /* !_I386_LINUX_LINUX_H_ */
527