xref: /freebsd/sys/i386/linux/linux.h (revision ec99e32256da765abaf8f5ea1a5e238eb01ace29)
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  *
28c3aac50fSPeter Wemm  * $FreeBSD$
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 int linux_key_t;
51ec99e322SMarcel Moolenaar typedef unsigned int linux_size_t;
52c21dee17SSøren Schmidt 
53956d3333SMarcel Moolenaar /*
54956d3333SMarcel Moolenaar  * Signal stuff...
55956d3333SMarcel Moolenaar  */
56956d3333SMarcel Moolenaar typedef void (*linux_handler_t)(int);
57956d3333SMarcel Moolenaar 
58956d3333SMarcel Moolenaar typedef unsigned long linux_osigset_t;
59956d3333SMarcel Moolenaar 
6006ebbe77SMarcel Moolenaar typedef struct {
61956d3333SMarcel Moolenaar 	unsigned int	__bits[2];
62956d3333SMarcel Moolenaar } linux_sigset_t;
63956d3333SMarcel Moolenaar 
64956d3333SMarcel Moolenaar typedef struct {
65956d3333SMarcel Moolenaar 	void		(*lsa_handler)(int);
66956d3333SMarcel Moolenaar 	linux_osigset_t	lsa_mask;
67956d3333SMarcel Moolenaar 	unsigned long	lsa_flags;
68956d3333SMarcel Moolenaar 	void		(*lsa_restorer)(void);
69956d3333SMarcel Moolenaar } linux_osigaction_t;
70956d3333SMarcel Moolenaar 
7106ebbe77SMarcel Moolenaar typedef struct {
7206ebbe77SMarcel Moolenaar 	void		(*lsa_handler)(int);
7306ebbe77SMarcel Moolenaar 	unsigned long	lsa_flags;
7406ebbe77SMarcel Moolenaar 	void		(*lsa_restorer)(void);
75956d3333SMarcel Moolenaar 	linux_sigset_t	lsa_mask;
76956d3333SMarcel Moolenaar } linux_sigaction_t;
7706ebbe77SMarcel Moolenaar 
78ec99e322SMarcel Moolenaar typedef struct
79ec99e322SMarcel Moolenaar {
80ec99e322SMarcel Moolenaar 	void *ss_sp;
81ec99e322SMarcel Moolenaar 	int ss_flags;
82ec99e322SMarcel Moolenaar 	linux_size_t ss_size;
83ec99e322SMarcel Moolenaar } linux_stack_t;
84ec99e322SMarcel Moolenaar 
85d66a5066SPeter Wemm /*
86d66a5066SPeter Wemm  * The Linux sigcontext, pretty much a standard 386 trapframe.
87d66a5066SPeter Wemm  */
88d66a5066SPeter Wemm 
89d66a5066SPeter Wemm struct linux_sigcontext {
90d66a5066SPeter Wemm 	int	sc_gs;
91d66a5066SPeter Wemm 	int	sc_fs;
92d66a5066SPeter Wemm 	int     sc_es;
93d66a5066SPeter Wemm 	int     sc_ds;
94d66a5066SPeter Wemm 	int     sc_edi;
95d66a5066SPeter Wemm 	int     sc_esi;
96d66a5066SPeter Wemm 	int     sc_ebp;
97d66a5066SPeter Wemm 	int	sc_esp;
98d66a5066SPeter Wemm 	int     sc_ebx;
99d66a5066SPeter Wemm 	int     sc_edx;
100d66a5066SPeter Wemm 	int     sc_ecx;
101d66a5066SPeter Wemm 	int     sc_eax;
102d66a5066SPeter Wemm 	int     sc_trapno;
103d66a5066SPeter Wemm 	int     sc_err;
104d66a5066SPeter Wemm 	int     sc_eip;
105d66a5066SPeter Wemm 	int     sc_cs;
106d66a5066SPeter Wemm 	int     sc_eflags;
107d66a5066SPeter Wemm 	int     sc_esp_at_signal;
108d66a5066SPeter Wemm 	int     sc_ss;
109d66a5066SPeter Wemm 	int	sc_387;
110d66a5066SPeter Wemm 	int	sc_mask;
111d66a5066SPeter Wemm 	int	sc_cr2;
112d66a5066SPeter Wemm };
113d66a5066SPeter Wemm 
114d66a5066SPeter Wemm /*
115d66a5066SPeter Wemm  * We make the stack look like Linux expects it when calling a signal
116d66a5066SPeter Wemm  * handler, but use the BSD way of calling the handler and sigreturn().
117d66a5066SPeter Wemm  * This means that we need to pass the pointer to the handler too.
118d66a5066SPeter Wemm  * It is appended to the frame to not interfere with the rest of it.
119d66a5066SPeter Wemm  */
120d66a5066SPeter Wemm 
121d66a5066SPeter Wemm struct linux_sigframe {
122d66a5066SPeter Wemm 	int	sf_sig;
123d66a5066SPeter Wemm 	struct	linux_sigcontext sf_sc;
124484141f6SBruce Evans 	void	(*sf_handler)(int);
125d66a5066SPeter Wemm };
126d66a5066SPeter Wemm 
127c21dee17SSøren Schmidt extern int bsd_to_linux_signal[];
128c21dee17SSøren Schmidt extern int linux_to_bsd_signal[];
129c21dee17SSøren Schmidt 
130c21dee17SSøren Schmidt /* signal numbers */
131c21dee17SSøren Schmidt #define LINUX_SIGHUP		 1
132c21dee17SSøren Schmidt #define LINUX_SIGINT		 2
133c21dee17SSøren Schmidt #define LINUX_SIGQUIT		 3
134c21dee17SSøren Schmidt #define LINUX_SIGILL		 4
135c21dee17SSøren Schmidt #define LINUX_SIGTRAP		 5
136c21dee17SSøren Schmidt #define LINUX_SIGABRT		 6
137c21dee17SSøren Schmidt #define LINUX_SIGIOT		 6
13898fd9ce8SJohn Fieber #define LINUX_SIGBUS		 7
139c21dee17SSøren Schmidt #define LINUX_SIGFPE		 8
140c21dee17SSøren Schmidt #define LINUX_SIGKILL		 9
141c21dee17SSøren Schmidt #define LINUX_SIGUSR1		10
142c21dee17SSøren Schmidt #define LINUX_SIGSEGV		11
143c21dee17SSøren Schmidt #define LINUX_SIGUSR2		12
144c21dee17SSøren Schmidt #define LINUX_SIGPIPE		13
145c21dee17SSøren Schmidt #define LINUX_SIGALRM		14
146c21dee17SSøren Schmidt #define LINUX_SIGTERM		15
147c21dee17SSøren Schmidt #define LINUX_SIGSTKFLT		16
148c21dee17SSøren Schmidt #define LINUX_SIGCHLD		17
149c21dee17SSøren Schmidt #define LINUX_SIGCONT		18
150c21dee17SSøren Schmidt #define LINUX_SIGSTOP		19
151c21dee17SSøren Schmidt #define LINUX_SIGTSTP		20
152c21dee17SSøren Schmidt #define LINUX_SIGTTIN		21
153c21dee17SSøren Schmidt #define LINUX_SIGTTOU		22
15498fd9ce8SJohn Fieber #define LINUX_SIGURG		23
155c21dee17SSøren Schmidt #define LINUX_SIGXCPU		24
156c21dee17SSøren Schmidt #define LINUX_SIGXFSZ		25
157c21dee17SSøren Schmidt #define LINUX_SIGVTALRM		26
158c21dee17SSøren Schmidt #define LINUX_SIGPROF		27
159c21dee17SSøren Schmidt #define LINUX_SIGWINCH		28
16098fd9ce8SJohn Fieber #define LINUX_SIGIO		29
16198fd9ce8SJohn Fieber #define LINUX_SIGPOLL		LINUX_SIGIO
162c21dee17SSøren Schmidt #define LINUX_SIGPWR		30
16398fd9ce8SJohn Fieber #define LINUX_SIGUNUSED		31
164956d3333SMarcel Moolenaar #define LINUX_NSIG		64
165956d3333SMarcel Moolenaar #define LINUX_SIGTBLSZ		31
166c21dee17SSøren Schmidt 
167c21dee17SSøren Schmidt /* sigaction flags */
168c21dee17SSøren Schmidt #define LINUX_SA_NOCLDSTOP	0x00000001
16906ebbe77SMarcel Moolenaar #define LINUX_SA_NOCLDWAIT      0x00000002
17006ebbe77SMarcel Moolenaar #define LINUX_SA_SIGINFO        0x00000004
17106ebbe77SMarcel Moolenaar #define LINUX_SA_RESTORER       0x04000000
172c21dee17SSøren Schmidt #define LINUX_SA_ONSTACK	0x08000000
173c21dee17SSøren Schmidt #define LINUX_SA_RESTART	0x10000000
174c21dee17SSøren Schmidt #define LINUX_SA_INTERRUPT	0x20000000
175c21dee17SSøren Schmidt #define LINUX_SA_NOMASK		0x40000000
176c21dee17SSøren Schmidt #define LINUX_SA_ONESHOT	0x80000000
177c21dee17SSøren Schmidt 
178c21dee17SSøren Schmidt /* sigprocmask actions */
179c21dee17SSøren Schmidt #define LINUX_SIG_BLOCK		0
180c21dee17SSøren Schmidt #define LINUX_SIG_UNBLOCK	1
181c21dee17SSøren Schmidt #define LINUX_SIG_SETMASK	2
182c21dee17SSøren Schmidt 
183956d3333SMarcel Moolenaar #define LINUX_SIGEMPTYSET(set)		(set).__bits[0] = (set).__bits[1] = 0
184956d3333SMarcel Moolenaar #define LINUX_SIGISMEMBER(set, sig)	SIGISMEMBER(set, sig)
185956d3333SMarcel Moolenaar #define LINUX_SIGADDSET(set, sig)	SIGADDSET(set, sig)
186956d3333SMarcel Moolenaar 
187956d3333SMarcel Moolenaar extern char linux_sigcode[];
188956d3333SMarcel Moolenaar extern int linux_szsigcode;
189956d3333SMarcel Moolenaar extern const char linux_emul_path[];
190956d3333SMarcel Moolenaar 
191956d3333SMarcel Moolenaar extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL];
192956d3333SMarcel Moolenaar extern struct sysentvec linux_sysvec;
193956d3333SMarcel Moolenaar extern struct sysentvec elf_linux_sysvec;
194956d3333SMarcel Moolenaar 
195956d3333SMarcel Moolenaar /* dummy struct definitions */
196956d3333SMarcel Moolenaar struct image_params;
197956d3333SMarcel Moolenaar struct trapframe;
198956d3333SMarcel Moolenaar 
199956d3333SMarcel Moolenaar #define LINUX_MAX_UTSNAME	65
200956d3333SMarcel Moolenaar struct linux_new_utsname {
201956d3333SMarcel Moolenaar     char sysname[LINUX_MAX_UTSNAME];
202956d3333SMarcel Moolenaar     char nodename[LINUX_MAX_UTSNAME];
203956d3333SMarcel Moolenaar     char release[LINUX_MAX_UTSNAME];
204956d3333SMarcel Moolenaar     char version[LINUX_MAX_UTSNAME];
205956d3333SMarcel Moolenaar     char machine[LINUX_MAX_UTSNAME];
206956d3333SMarcel Moolenaar     char domainname[LINUX_MAX_UTSNAME];
207956d3333SMarcel Moolenaar };
208956d3333SMarcel Moolenaar 
209956d3333SMarcel Moolenaar /* misc defines */
210956d3333SMarcel Moolenaar #define LINUX_NAME_MAX		255
211956d3333SMarcel Moolenaar 
212175db64bSMarcel Moolenaar /* resource limits */
213175db64bSMarcel Moolenaar #define LINUX_RLIMIT_CPU        0
214175db64bSMarcel Moolenaar #define LINUX_RLIMIT_FSIZE      1
215175db64bSMarcel Moolenaar #define LINUX_RLIMIT_DATA       2
216175db64bSMarcel Moolenaar #define LINUX_RLIMIT_STACK      3
217175db64bSMarcel Moolenaar #define LINUX_RLIMIT_CORE       4
218175db64bSMarcel Moolenaar #define LINUX_RLIMIT_RSS        5
219175db64bSMarcel Moolenaar #define LINUX_RLIMIT_NPROC      6
220175db64bSMarcel Moolenaar #define LINUX_RLIMIT_NOFILE     7
221175db64bSMarcel Moolenaar #define LINUX_RLIMIT_MEMLOCK    8
222175db64bSMarcel Moolenaar #define LINUX_RLIMIT_AS         9       /* address space limit */
223175db64bSMarcel Moolenaar 
224175db64bSMarcel Moolenaar #define LINUX_RLIM_NLIMITS      10
225175db64bSMarcel Moolenaar 
2267ebfc603SMike Smith /* keyboard defines */
2272394cd9aSJordan K. Hubbard #define LINUX_KIOCSOUND		0x4B2F
2282394cd9aSJordan K. Hubbard #define LINUX_KDMKTONE		0x4B30
2292394cd9aSJordan K. Hubbard #define LINUX_KDGETLED		0x4B31
2302394cd9aSJordan K. Hubbard #define LINUX_KDSETLED		0x4B32
2312394cd9aSJordan K. Hubbard #define LINUX_LED_SCR		0x01
2322394cd9aSJordan K. Hubbard #define LINUX_LED_NUM		0x02
2332394cd9aSJordan K. Hubbard #define LINUX_LED_CAP		0x04
2342394cd9aSJordan K. Hubbard 
2357ebfc603SMike Smith #define LINUX_KDGKBMODE         0x4B44
2367ebfc603SMike Smith #define LINUX_KDSKBMODE         0x4B45
2372394cd9aSJordan K. Hubbard #define LINUX_KDSETMODE		0x4B3A
2382394cd9aSJordan K. Hubbard #define LINUX_KDGETMODE		0x4B3B
2392394cd9aSJordan K. Hubbard #define LINUX_KD_TEXT		0x0
2402394cd9aSJordan K. Hubbard #define LINUX_KD_GRAPHICS	0x1
2412394cd9aSJordan K. Hubbard #define LINUX_KD_TEXT0		0x2
2422394cd9aSJordan K. Hubbard #define LINUX_KD_TEXT1		0x3
2437ebfc603SMike Smith 
2447ebfc603SMike Smith #define LINUX_KBD_RAW           0
2457ebfc603SMike Smith #define LINUX_KBD_XLATE         1
2467ebfc603SMike Smith #define LINUX_KBD_MEDIUMRAW     2
2477ebfc603SMike Smith 
248c21dee17SSøren Schmidt /* termio commands */
249c21dee17SSøren Schmidt #define LINUX_TCGETS		0x5401
250c21dee17SSøren Schmidt #define LINUX_TCSETS		0x5402
251c21dee17SSøren Schmidt #define LINUX_TCSETSW		0x5403
252c21dee17SSøren Schmidt #define LINUX_TCSETSF		0x5404
253c21dee17SSøren Schmidt #define LINUX_TCGETA		0x5405
254c21dee17SSøren Schmidt #define LINUX_TCSETA		0x5406
255c21dee17SSøren Schmidt #define LINUX_TCSETAW		0x5407
256c21dee17SSøren Schmidt #define LINUX_TCSETAF		0x5408
257c21dee17SSøren Schmidt #define LINUX_TCSBRK		0x5409
258c21dee17SSøren Schmidt #define LINUX_TCXONC		0x540A
259c21dee17SSøren Schmidt #define LINUX_TCFLSH		0x540B
260c21dee17SSøren Schmidt #define LINUX_TIOCEXCL		0x540C
261c21dee17SSøren Schmidt #define LINUX_TIOCNXCL		0x540D
262c21dee17SSøren Schmidt #define LINUX_TIOCSCTTY		0x540E
263c21dee17SSøren Schmidt #define LINUX_TIOCGPGRP		0x540F
264c21dee17SSøren Schmidt #define LINUX_TIOCSPGRP		0x5410
265c21dee17SSøren Schmidt #define LINUX_TIOCOUTQ		0x5411
266c21dee17SSøren Schmidt #define LINUX_TIOCSTI		0x5412
267c21dee17SSøren Schmidt #define LINUX_TIOCGWINSZ	0x5413
268c21dee17SSøren Schmidt #define LINUX_TIOCSWINSZ	0x5414
269c21dee17SSøren Schmidt #define LINUX_TIOCMGET		0x5415
270c21dee17SSøren Schmidt #define LINUX_TIOCMBIS		0x5416
271c21dee17SSøren Schmidt #define LINUX_TIOCMBIC		0x5417
272c21dee17SSøren Schmidt #define LINUX_TIOCMSET		0x5418
273c21dee17SSøren Schmidt #define LINUX_TIOCGSOFTCAR	0x5419
274c21dee17SSøren Schmidt #define LINUX_TIOCSSOFTCAR	0x541A
275c21dee17SSøren Schmidt #define LINUX_FIONREAD		0x541B
276c21dee17SSøren Schmidt #define LINUX_TIOCINQ		FIONREAD
277c21dee17SSøren Schmidt #define LINUX_TIOCLINUX		0x541C
278c21dee17SSøren Schmidt #define LINUX_TIOCCONS		0x541D
279c21dee17SSøren Schmidt #define LINUX_TIOCGSERIAL	0x541E
280c21dee17SSøren Schmidt #define LINUX_TIOCSSERIAL	0x541F
281c21dee17SSøren Schmidt #define LINUX_TIOCPKT		0x5420
282c21dee17SSøren Schmidt #define LINUX_FIONBIO		0x5421
283c21dee17SSøren Schmidt #define LINUX_TIOCNOTTY		0x5422
284c21dee17SSøren Schmidt #define LINUX_TIOCSETD		0x5423
285c21dee17SSøren Schmidt #define LINUX_TIOCGETD		0x5424
286c21dee17SSøren Schmidt #define LINUX_TCSBRKP		0x5425
287c21dee17SSøren Schmidt #define LINUX_TIOCTTYGSTRUCT	0x5426
288c21dee17SSøren Schmidt #define LINUX_FIONCLEX		0x5450
289c21dee17SSøren Schmidt #define LINUX_FIOCLEX		0x5451
290c21dee17SSøren Schmidt #define LINUX_FIOASYNC		0x5452
291c21dee17SSøren Schmidt #define LINUX_TIOCSERCONFIG	0x5453
292c21dee17SSøren Schmidt #define LINUX_TIOCSERGWILD	0x5454
293c21dee17SSøren Schmidt #define LINUX_TIOCSERSWILD	0x5455
294c21dee17SSøren Schmidt #define LINUX_TIOCGLCKTRMIOS	0x5456
295c21dee17SSøren Schmidt #define LINUX_TIOCSLCKTRMIOS	0x5457
2967ebfc603SMike Smith #define LINUX_VT_OPENQRY        0x5600
2977ebfc603SMike Smith #define LINUX_VT_GETMODE        0x5601
2987ebfc603SMike Smith #define LINUX_VT_SETMODE        0x5602
2997ebfc603SMike Smith #define LINUX_VT_GETSTATE       0x5603
30068875907SMarcel Moolenaar #define LINUX_VT_RELDISP        0x5605
3017ebfc603SMike Smith #define LINUX_VT_ACTIVATE       0x5606
3027ebfc603SMike Smith #define LINUX_VT_WAITACTIVE     0x5607
3037ebfc603SMike Smith 
3043cef63a1SMarcel Moolenaar /* arguments for tcflow() and LINUX_TCXONC */
3053cef63a1SMarcel Moolenaar #define LINUX_TCOOFF          0
3063cef63a1SMarcel Moolenaar #define LINUX_TCOON           1
3073cef63a1SMarcel Moolenaar #define LINUX_TCIOFF          2
3083cef63a1SMarcel Moolenaar #define LINUX_TCION           3
309c21dee17SSøren Schmidt 
3109c5ee423SPeter Wemm /* arguments for tcflush() and LINUX_TCFLSH */
3119c5ee423SPeter Wemm #define LINUX_TCIFLUSH        0
3129c5ee423SPeter Wemm #define LINUX_TCOFLUSH        1
3139c5ee423SPeter Wemm #define LINUX_TCIOFLUSH       2
3149c5ee423SPeter Wemm 
315c21dee17SSøren Schmidt /* line disciplines */
316c21dee17SSøren Schmidt #define LINUX_N_TTY		0
317c21dee17SSøren Schmidt #define LINUX_N_SLIP		1
318c21dee17SSøren Schmidt #define LINUX_N_MOUSE		2
319c21dee17SSøren Schmidt #define LINUX_N_PPP		3
320c21dee17SSøren Schmidt 
321c21dee17SSøren Schmidt /* Linux termio c_cc values */
322c21dee17SSøren Schmidt #define LINUX_VINTR		0
323c21dee17SSøren Schmidt #define LINUX_VQUIT		1
324c21dee17SSøren Schmidt #define LINUX_VERASE		2
325c21dee17SSøren Schmidt #define LINUX_VKILL		3
326c21dee17SSøren Schmidt #define LINUX_VEOF		4
327c21dee17SSøren Schmidt #define LINUX_VTIME		5
328c21dee17SSøren Schmidt #define LINUX_VMIN		6
329c21dee17SSøren Schmidt #define LINUX_VSWTC		7
330c21dee17SSøren Schmidt #define LINUX_NCC		8
331c21dee17SSøren Schmidt 
332c21dee17SSøren Schmidt /* Linux termios c_cc values */
333c21dee17SSøren Schmidt #define LINUX_VSTART		8
334c21dee17SSøren Schmidt #define LINUX_VSTOP		9
335c21dee17SSøren Schmidt #define LINUX_VSUSP 		10
336c21dee17SSøren Schmidt #define LINUX_VEOL		11
337c21dee17SSøren Schmidt #define LINUX_VREPRINT		12
338c21dee17SSøren Schmidt #define LINUX_VDISCARD		13
339c21dee17SSøren Schmidt #define LINUX_VWERASE		14
340c21dee17SSøren Schmidt #define LINUX_VLNEXT		15
341c21dee17SSøren Schmidt #define LINUX_VEOL2		16
3424f735d8eSPeter Wemm #define LINUX_NCCS		19
3434f735d8eSPeter Wemm 
3444f735d8eSPeter Wemm #define LINUX_POSIX_VDISABLE	'\0'
345c21dee17SSøren Schmidt 
346c21dee17SSøren Schmidt /* Linux c_iflag masks */
347c21dee17SSøren Schmidt #define LINUX_IGNBRK		0x0000001
348c21dee17SSøren Schmidt #define LINUX_BRKINT		0x0000002
349c21dee17SSøren Schmidt #define LINUX_IGNPAR		0x0000004
350c21dee17SSøren Schmidt #define LINUX_PARMRK		0x0000008
351c21dee17SSøren Schmidt #define LINUX_INPCK		0x0000010
352c21dee17SSøren Schmidt #define LINUX_ISTRIP		0x0000020
353c21dee17SSøren Schmidt #define LINUX_INLCR		0x0000040
354c21dee17SSøren Schmidt #define LINUX_IGNCR		0x0000080
355c21dee17SSøren Schmidt #define LINUX_ICRNL		0x0000100
356c21dee17SSøren Schmidt #define LINUX_IUCLC		0x0000200
357c21dee17SSøren Schmidt #define LINUX_IXON		0x0000400
358c21dee17SSøren Schmidt #define LINUX_IXANY		0x0000800
359c21dee17SSøren Schmidt #define LINUX_IXOFF		0x0001000
360c21dee17SSøren Schmidt #define LINUX_IMAXBEL		0x0002000
361c21dee17SSøren Schmidt 
362c21dee17SSøren Schmidt /* Linux c_oflag masks */
363c21dee17SSøren Schmidt #define LINUX_OPOST		0x0000001
364c21dee17SSøren Schmidt #define LINUX_OLCUC		0x0000002
365c21dee17SSøren Schmidt #define LINUX_ONLCR		0x0000004
366c21dee17SSøren Schmidt #define LINUX_OCRNL		0x0000008
367c21dee17SSøren Schmidt #define LINUX_ONOCR		0x0000010
368c21dee17SSøren Schmidt #define LINUX_ONLRET		0x0000020
369c21dee17SSøren Schmidt #define LINUX_OFILL		0x0000040
370c21dee17SSøren Schmidt #define LINUX_OFDEL		0x0000080
371c21dee17SSøren Schmidt #define LINUX_NLDLY		0x0000100
372c21dee17SSøren Schmidt 
373c21dee17SSøren Schmidt #define LINUX_NL0		0x0000000
374c21dee17SSøren Schmidt #define LINUX_NL1		0x0000100
375c21dee17SSøren Schmidt #define LINUX_CRDLY		0x0000600
376c21dee17SSøren Schmidt #define LINUX_CR0		0x0000000
377c21dee17SSøren Schmidt #define LINUX_CR1		0x0000200
378c21dee17SSøren Schmidt #define LINUX_CR2		0x0000400
379c21dee17SSøren Schmidt #define LINUX_CR3		0x0000600
380c21dee17SSøren Schmidt #define LINUX_TABDLY		0x0001800
381c21dee17SSøren Schmidt #define LINUX_TAB0		0x0000000
382c21dee17SSøren Schmidt #define LINUX_TAB1		0x0000800
383c21dee17SSøren Schmidt #define LINUX_TAB2		0x0001000
384c21dee17SSøren Schmidt #define LINUX_TAB3		0x0001800
385c21dee17SSøren Schmidt #define LINUX_XTABS		0x0001800
386c21dee17SSøren Schmidt #define LINUX_BSDLY		0x0002000
387c21dee17SSøren Schmidt #define LINUX_BS0		0x0000000
388c21dee17SSøren Schmidt #define LINUX_BS1		0x0002000
389c21dee17SSøren Schmidt #define LINUX_VTDLY		0x0004000
390c21dee17SSøren Schmidt #define LINUX_VT0		0x0000000
391c21dee17SSøren Schmidt #define LINUX_VT1		0x0004000
392c21dee17SSøren Schmidt #define LINUX_FFDLY		0x0008000
393c21dee17SSøren Schmidt #define LINUX_FF0		0x0000000
394c21dee17SSøren Schmidt #define LINUX_FF1		0x0008000
395c21dee17SSøren Schmidt 
396c21dee17SSøren Schmidt #define LINUX_CBAUD		0x0000100f
397c21dee17SSøren Schmidt #define LINUX_B0		0x00000000
398c21dee17SSøren Schmidt #define LINUX_B50		0x00000001
399c21dee17SSøren Schmidt #define LINUX_B75		0x00000002
400c21dee17SSøren Schmidt #define LINUX_B110		0x00000003
401c21dee17SSøren Schmidt #define LINUX_B134		0x00000004
402c21dee17SSøren Schmidt #define LINUX_B150		0x00000005
403c21dee17SSøren Schmidt #define LINUX_B200		0x00000006
404c21dee17SSøren Schmidt #define LINUX_B300		0x00000007
405c21dee17SSøren Schmidt #define LINUX_B600		0x00000008
406c21dee17SSøren Schmidt #define LINUX_B1200		0x00000009
407c21dee17SSøren Schmidt #define LINUX_B1800		0x0000000a
408c21dee17SSøren Schmidt #define LINUX_B2400		0x0000000b
409c21dee17SSøren Schmidt #define LINUX_B4800		0x0000000c
410c21dee17SSøren Schmidt #define LINUX_B9600		0x0000000d
411c21dee17SSøren Schmidt #define LINUX_B19200		0x0000000e
412c21dee17SSøren Schmidt #define LINUX_B38400		0x0000000f
413c21dee17SSøren Schmidt #define LINUX_EXTA		LINUX_B19200
414c21dee17SSøren Schmidt #define LINUX_EXTB		LINUX_B38400
415c21dee17SSøren Schmidt #define LINUX_CBAUDEX		0x00001000
416c21dee17SSøren Schmidt #define LINUX_B57600		0x00001001
417c21dee17SSøren Schmidt #define LINUX_B115200		0x00001002
418c21dee17SSøren Schmidt 
419c21dee17SSøren Schmidt #define LINUX_CSIZE		0x00000030
420c21dee17SSøren Schmidt #define LINUX_CS5		0x00000000
421c21dee17SSøren Schmidt #define LINUX_CS6		0x00000010
422c21dee17SSøren Schmidt #define LINUX_CS7		0x00000020
423c21dee17SSøren Schmidt #define LINUX_CS8		0x00000030
424c21dee17SSøren Schmidt #define LINUX_CSTOPB		0x00000040
425c21dee17SSøren Schmidt #define LINUX_CREAD		0x00000080
426c21dee17SSøren Schmidt #define LINUX_PARENB		0x00000100
427c21dee17SSøren Schmidt #define LINUX_PARODD		0x00000200
428c21dee17SSøren Schmidt #define LINUX_HUPCL		0x00000400
429c21dee17SSøren Schmidt #define LINUX_CLOCAL		0x00000800
430c21dee17SSøren Schmidt #define LINUX_CRTSCTS		0x80000000
431c21dee17SSøren Schmidt 
432c21dee17SSøren Schmidt /* Linux c_lflag masks */
433c21dee17SSøren Schmidt #define LINUX_ISIG		0x00000001
434c21dee17SSøren Schmidt #define LINUX_ICANON		0x00000002
435c21dee17SSøren Schmidt #define LINUX_XCASE		0x00000004
436c21dee17SSøren Schmidt #define LINUX_ECHO		0x00000008
437c21dee17SSøren Schmidt #define LINUX_ECHOE		0x00000010
438c21dee17SSøren Schmidt #define LINUX_ECHOK		0x00000020
439c21dee17SSøren Schmidt #define LINUX_ECHONL		0x00000040
440c21dee17SSøren Schmidt #define LINUX_NOFLSH		0x00000080
441c21dee17SSøren Schmidt #define LINUX_TOSTOP		0x00000100
442c21dee17SSøren Schmidt #define LINUX_ECHOCTL		0x00000200
443c21dee17SSøren Schmidt #define LINUX_ECHOPRT		0x00000400
444c21dee17SSøren Schmidt #define LINUX_ECHOKE		0x00000800
445c21dee17SSøren Schmidt #define LINUX_FLUSHO		0x00001000
446c21dee17SSøren Schmidt #define LINUX_PENDIN		0x00002000
447c21dee17SSøren Schmidt #define LINUX_IEXTEN		0x00008000
448c21dee17SSøren Schmidt 
449c21dee17SSøren Schmidt /* open/fcntl flags */
450c21dee17SSøren Schmidt #define LINUX_O_RDONLY		00
451c21dee17SSøren Schmidt #define LINUX_O_WRONLY		01
452c21dee17SSøren Schmidt #define LINUX_O_RDWR		02
453c21dee17SSøren Schmidt #define LINUX_O_CREAT		0100
454c21dee17SSøren Schmidt #define LINUX_O_EXCL		0200
455c21dee17SSøren Schmidt #define LINUX_O_NOCTTY		0400
456c21dee17SSøren Schmidt #define LINUX_O_TRUNC		01000
457c21dee17SSøren Schmidt #define LINUX_O_APPEND		02000
458c21dee17SSøren Schmidt #define LINUX_O_NONBLOCK	04000
459c21dee17SSøren Schmidt #define LINUX_O_NDELAY		LINUX_O_NONBLOCK
460c21dee17SSøren Schmidt #define LINUX_O_SYNC		010000
461c21dee17SSøren Schmidt #define LINUX_FASYNC		020000
462c21dee17SSøren Schmidt 
463c21dee17SSøren Schmidt /* fcntl flags */
464c21dee17SSøren Schmidt #define LINUX_F_DUPFD		0
465c21dee17SSøren Schmidt #define LINUX_F_GETFD		1
466c21dee17SSøren Schmidt #define LINUX_F_SETFD		2
467c21dee17SSøren Schmidt #define LINUX_F_GETFL		3
468c21dee17SSøren Schmidt #define LINUX_F_SETFL		4
469c21dee17SSøren Schmidt #define LINUX_F_GETLK		5
470c21dee17SSøren Schmidt #define LINUX_F_SETLK		6
471c21dee17SSøren Schmidt #define LINUX_F_SETLKW		7
472c21dee17SSøren Schmidt #define LINUX_F_SETOWN		8
473c21dee17SSøren Schmidt #define LINUX_F_GETOWN		9
474c21dee17SSøren Schmidt 
475c21dee17SSøren Schmidt #define LINUX_F_RDLCK		0
476c21dee17SSøren Schmidt #define LINUX_F_WRLCK		1
477c21dee17SSøren Schmidt #define LINUX_F_UNLCK		2
478c21dee17SSøren Schmidt 
479c21dee17SSøren Schmidt /* mmap options */
480c21dee17SSøren Schmidt #define LINUX_MAP_SHARED	0x0001
481c21dee17SSøren Schmidt #define LINUX_MAP_PRIVATE	0x0002
482c21dee17SSøren Schmidt #define LINUX_MAP_FIXED		0x0010
483c21dee17SSøren Schmidt #define LINUX_MAP_ANON		0x0020
4846626c604SJulian Elischer #define LINUX_MAP_GROWSDOWN     0x0100
485c21dee17SSøren Schmidt 
486c21dee17SSøren Schmidt /* SystemV ipc defines */
487c21dee17SSøren Schmidt #define LINUX_SEMOP		1
488c21dee17SSøren Schmidt #define LINUX_SEMGET		2
489c21dee17SSøren Schmidt #define LINUX_SEMCTL		3
490c21dee17SSøren Schmidt #define LINUX_MSGSND		11
491c21dee17SSøren Schmidt #define LINUX_MSGRCV		12
492c21dee17SSøren Schmidt #define LINUX_MSGGET		13
493c21dee17SSøren Schmidt #define LINUX_MSGCTL		14
494c21dee17SSøren Schmidt #define LINUX_SHMAT		21
495c21dee17SSøren Schmidt #define LINUX_SHMDT		22
496c21dee17SSøren Schmidt #define LINUX_SHMGET		23
497c21dee17SSøren Schmidt #define LINUX_SHMCTL		24
498c21dee17SSøren Schmidt 
499c21dee17SSøren Schmidt #define LINUX_IPC_RMID		0
500c21dee17SSøren Schmidt #define LINUX_IPC_SET		1
501c21dee17SSøren Schmidt #define LINUX_IPC_STAT		2
502c21dee17SSøren Schmidt #define LINUX_IPC_INFO		3
503c21dee17SSøren Schmidt 
504c21dee17SSøren Schmidt #define LINUX_SHM_LOCK		11
505c21dee17SSøren Schmidt #define LINUX_SHM_UNLOCK	12
506c21dee17SSøren Schmidt #define LINUX_SHM_STAT		13
507c21dee17SSøren Schmidt #define LINUX_SHM_INFO		14
508c21dee17SSøren Schmidt 
509c21dee17SSøren Schmidt #define LINUX_SHM_RDONLY	0x1000
510c21dee17SSøren Schmidt #define LINUX_SHM_RND		0x2000
511c21dee17SSøren Schmidt #define LINUX_SHM_REMAP		0x4000
512c21dee17SSøren Schmidt 
5139b86a416SKATO Takenori /* semctl Command Definitions. */
5149b86a416SKATO Takenori #define	LINUX_GETPID		11
5159b86a416SKATO Takenori #define	LINUX_GETVAL		12
5169b86a416SKATO Takenori #define	LINUX_GETALL		13
5179b86a416SKATO Takenori #define	LINUX_GETNCNT		14
5189b86a416SKATO Takenori #define	LINUX_GETZCNT		15
5199b86a416SKATO Takenori #define	LINUX_SETVAL		16
5209b86a416SKATO Takenori #define	LINUX_SETALL		17
5219b86a416SKATO Takenori 
522c21dee17SSøren Schmidt /* Socket defines */
523c21dee17SSøren Schmidt #define LINUX_SOCKET 		1
524c21dee17SSøren Schmidt #define LINUX_BIND		2
525c21dee17SSøren Schmidt #define LINUX_CONNECT 		3
526c21dee17SSøren Schmidt #define LINUX_LISTEN 		4
527c21dee17SSøren Schmidt #define LINUX_ACCEPT 		5
528c21dee17SSøren Schmidt #define LINUX_GETSOCKNAME	6
529c21dee17SSøren Schmidt #define LINUX_GETPEERNAME	7
530c21dee17SSøren Schmidt #define LINUX_SOCKETPAIR	8
531c21dee17SSøren Schmidt #define LINUX_SEND		9
532c21dee17SSøren Schmidt #define LINUX_RECV		10
533c21dee17SSøren Schmidt #define LINUX_SENDTO 		11
534c21dee17SSøren Schmidt #define LINUX_RECVFROM 		12
535c21dee17SSøren Schmidt #define LINUX_SHUTDOWN 		13
536c21dee17SSøren Schmidt #define LINUX_SETSOCKOPT	14
537c21dee17SSøren Schmidt #define LINUX_GETSOCKOPT	15
538e76bba09SSøren Schmidt #define LINUX_SENDMSG		16
539e76bba09SSøren Schmidt #define LINUX_RECVMSG		17
540c21dee17SSøren Schmidt 
541c21dee17SSøren Schmidt #define LINUX_AF_UNSPEC		0
542c21dee17SSøren Schmidt #define LINUX_AF_UNIX		1
543c21dee17SSøren Schmidt #define LINUX_AF_INET		2
544c21dee17SSøren Schmidt #define LINUX_AF_AX25		3
545c21dee17SSøren Schmidt #define LINUX_AF_IPX		4
546c21dee17SSøren Schmidt #define LINUX_AF_APPLETALK	5
547c21dee17SSøren Schmidt 
548c21dee17SSøren Schmidt #define LINUX_SOL_SOCKET	1
549c21dee17SSøren Schmidt #define LINUX_SOL_IP		0
550c21dee17SSøren Schmidt #define LINUX_SOL_IPX		256
551c21dee17SSøren Schmidt #define LINUX_SOL_AX25		257
552c21dee17SSøren Schmidt #define LINUX_SOL_TCP		6
553c21dee17SSøren Schmidt #define LINUX_SOL_UDP		17
554c21dee17SSøren Schmidt 
555c21dee17SSøren Schmidt #define LINUX_SO_DEBUG		1
556c21dee17SSøren Schmidt #define LINUX_SO_REUSEADDR	2
557c21dee17SSøren Schmidt #define LINUX_SO_TYPE		3
558c21dee17SSøren Schmidt #define LINUX_SO_ERROR		4
559c21dee17SSøren Schmidt #define LINUX_SO_DONTROUTE	5
560c21dee17SSøren Schmidt #define LINUX_SO_BROADCAST	6
561c21dee17SSøren Schmidt #define LINUX_SO_SNDBUF		7
562c21dee17SSøren Schmidt #define LINUX_SO_RCVBUF		8
563c21dee17SSøren Schmidt #define LINUX_SO_KEEPALIVE	9
564c21dee17SSøren Schmidt #define LINUX_SO_OOBINLINE	10
565c21dee17SSøren Schmidt #define LINUX_SO_NO_CHECK	11
566c21dee17SSøren Schmidt #define LINUX_SO_PRIORITY	12
567c21dee17SSøren Schmidt #define LINUX_SO_LINGER		13
568c21dee17SSøren Schmidt 
569c21dee17SSøren Schmidt #define LINUX_IP_TOS		1
570c21dee17SSøren Schmidt #define LINUX_IP_TTL		2
57166ff6a3cSBill Fenner #define LINUX_IP_HDRINCL	3
57266ff6a3cSBill Fenner #define LINUX_IP_OPTIONS	4
57366ff6a3cSBill Fenner 
57466ff6a3cSBill Fenner #define LINUX_IP_MULTICAST_IF		32
57566ff6a3cSBill Fenner #define LINUX_IP_MULTICAST_TTL		33
57666ff6a3cSBill Fenner #define LINUX_IP_MULTICAST_LOOP		34
57766ff6a3cSBill Fenner #define LINUX_IP_ADD_MEMBERSHIP		35
57866ff6a3cSBill Fenner #define LINUX_IP_DROP_MEMBERSHIP	36
579c21dee17SSøren Schmidt 
580bb5889bdSSøren Schmidt /* Sound system defines */
581845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_RESET		0x5100
582845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_SYNC		0x5101
583845491feSJordan K. Hubbard #define LINUX_SNDCTL_SYNTH_INFO		0x5102
584845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_CTRLRATE	0x5103
585845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_GETOUTCOUNT	0x5104
586845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_GETINCOUNT	0x5105
587845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_PERCMODE	0x5106
588845491feSJordan K. Hubbard #define LINUX_SNDCTL_FM_LOAD_INSTR	0x5107
589845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_TESTMIDI	0x5108
590845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_RESETSAMPLES	0x5109
591845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_NRSYNTHS	0x510A
592845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_NRMIDIS	0x510B
593845491feSJordan K. Hubbard #define LINUX_SNDCTL_MIDI_INFO		0x510C
594845491feSJordan K. Hubbard #define LINUX_SNDCTL_SEQ_TRESHOLD	0x510D
595845491feSJordan K. Hubbard #define LINUX_SNDCTL_SYNTH_MEMAVL	0x510E
596bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_RESET		0x5000
597bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SYNC		0x5001
598bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SPEED		0x5002
599bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_STEREO		0x5003
600bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETBLKSIZE	0x5004
601bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SETBLKSIZE	0x5004
602bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SETFMT		0x5005
603bb5889bdSSøren Schmidt #define LINUX_SOUND_PCM_WRITE_CHANNELS	0x5006
604bb5889bdSSøren Schmidt #define LINUX_SOUND_PCM_WRITE_FILTER	0x5007
605bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_POST		0x5008
606bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SUBDIVIDE	0x5009
607bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_SETFRAGMENT	0x500A
608bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETFMTS	0x500B
609bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETOSPACE	0x500C
610bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_GETISPACE	0x500D
611bb5889bdSSøren Schmidt #define LINUX_SNDCTL_DSP_NONBLOCK	0x500E
61253eaeb96SAmancio Hasty #define LINUX_SNDCTL_DSP_GETCAPS	0x500F
61353eaeb96SAmancio Hasty #define LINUX_SNDCTL_DSP_GETTRIGGER	0x5010
61453eaeb96SAmancio Hasty #define LINUX_SNDCTL_DSP_SETTRIGGER	0x5010
61553eaeb96SAmancio Hasty #define LINUX_SNDCTL_DSP_GETIPTR	0x5011
61653eaeb96SAmancio Hasty #define LINUX_SNDCTL_DSP_GETOPTR	0x5012
617fac9a03bSAlfred Perlstein #define LINUX_SNDCTL_DSP_GETODELAY	0x5017
618e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_VOLUME	0x4d00
619e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_BASS	0x4d01
620e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_TREBLE	0x4d02
621e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_SYNTH	0x4d03
622e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_PCM	0x4d04
623e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_SPEAKER	0x4d05
624e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_LINE	0x4d06
625e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_MIC	0x4d07
626e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_CD	0x4d08
627e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_IMIX	0x4d09
628e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_ALTPCM	0x4d0A
629e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_RECLEV	0x4d0B
630e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_IGAIN	0x4d0C
631e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_OGAIN	0x4d0D
632e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_LINE1	0x4d0E
633e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_LINE2	0x4d0F
634e8905437SSujal Patel #define LINUX_SOUND_MIXER_WRITE_LINE3	0x4d10
635e8905437SSujal Patel #define LINUX_SOUND_MIXER_READ_DEVMASK	0x4dfe
636bb5889bdSSøren Schmidt 
63786f95e6bSMarcel Moolenaar #define LINUX_OSS_GETVERSION		0x4d76
63886f95e6bSMarcel Moolenaar 
639d66a5066SPeter Wemm /* Socket system defines */
640f18bad6eSJohn Fieber #define LINUX_FIOSETOWN			0x8901
641f18bad6eSJohn Fieber #define LINUX_SIOCSPGRP			0x8902
642f18bad6eSJohn Fieber #define LINUX_FIOGETOWN			0x8903
643f18bad6eSJohn Fieber #define LINUX_SIOCGPGRP			0x8904
644f18bad6eSJohn Fieber #define LINUX_SIOCATMARK		0x8905
645f18bad6eSJohn Fieber #define LINUX_SIOCGSTAMP		0x8906
646d66a5066SPeter Wemm #define LINUX_SIOCGIFCONF		0x8912
647d66a5066SPeter Wemm #define LINUX_SIOCGIFFLAGS		0x8913
648d66a5066SPeter Wemm #define LINUX_SIOCGIFADDR		0x8915
649d66a5066SPeter Wemm #define LINUX_SIOCGIFDSTADDR		0x8917
650d66a5066SPeter Wemm #define LINUX_SIOCGIFBRDADDR		0x8919
651d66a5066SPeter Wemm #define LINUX_SIOCGIFNETMASK		0x891b
6523713cbffSMike Smith #define LINUX_SIOCGIFHWADDR		0x8927
653d66a5066SPeter Wemm #define LINUX_SIOCADDMULTI		0x8931
654d66a5066SPeter Wemm #define LINUX_SIOCDELMULTI		0x8932
6551f3dad5aSBruce Evans 
6563713cbffSMike Smith struct linux_sockaddr
6573713cbffSMike Smith {
6583713cbffSMike Smith     unsigned short	sa_family;
6593713cbffSMike Smith     char		sa_data[14];
6603713cbffSMike Smith };
6613713cbffSMike Smith 
6623713cbffSMike Smith struct linux_ifmap
6633713cbffSMike Smith {
6643713cbffSMike Smith     unsigned long	mem_start;
6653713cbffSMike Smith     unsigned long	mem_end;
6663713cbffSMike Smith     unsigned short	base_addr;
6673713cbffSMike Smith     unsigned char	irq;
6683713cbffSMike Smith     unsigned char	dma;
6693713cbffSMike Smith     unsigned char	port;
6703713cbffSMike Smith };
6713713cbffSMike Smith 
6723713cbffSMike Smith struct linux_ifreq
6733713cbffSMike Smith {
6743713cbffSMike Smith #define LINUX_IFHWADDRLEN     6
6753713cbffSMike Smith #define LINUX_IFNAMSIZ        16
6763713cbffSMike Smith     union
6773713cbffSMike Smith     {
6783713cbffSMike Smith 	char    ifrn_name[LINUX_IFNAMSIZ];		/* if name, e.g. "en0" */
6793713cbffSMike Smith     } ifr_ifrn;
6803713cbffSMike Smith 
6813713cbffSMike Smith     union {
6823713cbffSMike Smith 	struct linux_sockaddr	ifru_addr;
6833713cbffSMike Smith 	struct linux_sockaddr	ifru_dstaddr;
6843713cbffSMike Smith 	struct linux_sockaddr	ifru_broadaddr;
6853713cbffSMike Smith 	struct linux_sockaddr	ifru_netmask;
6863713cbffSMike Smith 	struct linux_sockaddr	ifru_hwaddr;
6873713cbffSMike Smith 	short			ifru_flags;
6883713cbffSMike Smith 	int			ifru_metric;
6893713cbffSMike Smith 	int			ifru_mtu;
6903713cbffSMike Smith 	struct linux_ifmap	ifru_map;
6913713cbffSMike Smith 	char			ifru_slave[LINUX_IFNAMSIZ];	/* Just fits the size */
6923713cbffSMike Smith 	caddr_t			ifru_data;
6933713cbffSMike Smith     } ifr_ifru;
6943713cbffSMike Smith };
6953713cbffSMike Smith 
6963713cbffSMike Smith #define ifr_name	ifr_ifrn.ifrn_name		/* interface name       */
6973713cbffSMike Smith #define ifr_hwaddr	ifr_ifru.ifru_hwaddr		/* MAC address          */
6983713cbffSMike Smith 
6993713cbffSMike Smith 
7009c5ee423SPeter Wemm /* serial_struct values for TIOC[GS]SERIAL ioctls */
7019c5ee423SPeter Wemm #define LINUX_ASYNC_CLOSING_WAIT_INF  0
7029c5ee423SPeter Wemm #define LINUX_ASYNC_CLOSING_WAIT_NONE 65535
7039c5ee423SPeter Wemm 
7049c5ee423SPeter Wemm #define LINUX_PORT_UNKNOWN    0
7059c5ee423SPeter Wemm #define LINUX_PORT_8250       1
7069c5ee423SPeter Wemm #define LINUX_PORT_16450      2
7079c5ee423SPeter Wemm #define LINUX_PORT_16550      3
7089c5ee423SPeter Wemm #define LINUX_PORT_16550A     4
7099c5ee423SPeter Wemm #define LINUX_PORT_CIRRUS     5
7109c5ee423SPeter Wemm #define LINUX_PORT_16650      6
7119c5ee423SPeter Wemm #define LINUX_PORT_MAX        6
7129c5ee423SPeter Wemm 
7139c5ee423SPeter Wemm #define LINUX_ASYNC_HUP_NOTIFY		0x0001
7149c5ee423SPeter Wemm #define LINUX_ASYNC_FOURPORT  		0x0002
7159c5ee423SPeter Wemm #define LINUX_ASYNC_SAK       		0x0004
7169c5ee423SPeter Wemm #define LINUX_ASYNC_SPLIT_TERMIOS 	0x0008
7179c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_MASK  		0x0030
7189c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_HI    		0x0010
7199c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_VHI   		0x0020
7209c5ee423SPeter Wemm #define LINUX_ASYNC_SPD_CUST  		0x0030
7219c5ee423SPeter Wemm #define LINUX_ASYNC_SKIP_TEST 		0x0040
7229c5ee423SPeter Wemm #define LINUX_ASYNC_AUTO_IRQ  		0x0080
7239c5ee423SPeter Wemm #define LINUX_ASYNC_SESSION_LOCKOUT 	0x0100
7249c5ee423SPeter Wemm #define LINUX_ASYNC_PGRP_LOCKOUT    	0x0200
7259c5ee423SPeter Wemm #define LINUX_ASYNC_CALLOUT_NOHUP   	0x0400
7269c5ee423SPeter Wemm #define LINUX_ASYNC_FLAGS     		0x0FFF
7279c5ee423SPeter Wemm 
7289debe213SLuoqi Chen /* cdrom */
7299debe213SLuoqi Chen #define LINUX_CDROMPAUSE		0x5301
7309debe213SLuoqi Chen #define LINUX_CDROMRESUME		0x5302
7319debe213SLuoqi Chen #define LINUX_CDROMPLAYMSF		0x5303
7329debe213SLuoqi Chen #define LINUX_CDROMPLAYTRKIND		0x5304
7339debe213SLuoqi Chen #define LINUX_CDROMREADTOCHDR		0x5305
7349debe213SLuoqi Chen #define LINUX_CDROMREADTOCENTRY		0x5306
7359debe213SLuoqi Chen #define LINUX_CDROMSTOP			0x5307
7369debe213SLuoqi Chen #define LINUX_CDROMSTART		0x5308
7379debe213SLuoqi Chen #define LINUX_CDROMEJECT		0x5309
7389debe213SLuoqi Chen #define LINUX_CDROMVOLCTRL		0x530a
7399debe213SLuoqi Chen #define LINUX_CDROMSUBCHNL		0x530b
7409debe213SLuoqi Chen #define LINUX_CDROMREADMODE2		0x530c
7419debe213SLuoqi Chen #define LINUX_CDROMREADMODE1		0x530d
7429debe213SLuoqi Chen #define LINUX_CDROMREADAUDIO		0x530e
7439debe213SLuoqi Chen #define LINUX_CDROMEJECT_SW		0x530f
7449debe213SLuoqi Chen #define LINUX_CDROMMULTISESSION		0x5310
7459debe213SLuoqi Chen #define LINUX_CDROM_GET_UPC		0x5311
7469debe213SLuoqi Chen #define LINUX_CDROMRESET		0x5312
7479debe213SLuoqi Chen #define LINUX_CDROMVOLREAD		0x5313
7489debe213SLuoqi Chen #define LINUX_CDROMREADRAW		0x5314
7499debe213SLuoqi Chen #define LINUX_CDROMREADCOOKED		0x5315
7509debe213SLuoqi Chen #define LINUX_CDROMSEEK			0x5316
7519debe213SLuoqi Chen #define LINUX_CDROMPLAYBLK		0x5317
7529debe213SLuoqi Chen #define LINUX_CDROMREADALL		0x5318
7539debe213SLuoqi Chen #define LINUX_CDROMCLOSETRAY		0x5319
7549debe213SLuoqi Chen #define LINUX_CDROMLOADFROMSLOT		0x531a
7559debe213SLuoqi Chen 
7567636612dSMarcel Moolenaar #define LINUX_CDROM_LBA                 0x01
7577636612dSMarcel Moolenaar #define LINUX_CDROM_MSF                 0x02
7587636612dSMarcel Moolenaar 
759a171f5adSMarcel Moolenaar /* Scheduling policies */
760a171f5adSMarcel Moolenaar #define LINUX_SCHED_OTHER		0
761a171f5adSMarcel Moolenaar #define LINUX_SCHED_FIFO		1
762a171f5adSMarcel Moolenaar #define LINUX_SCHED_RR			2
763a171f5adSMarcel Moolenaar 
7641f3dad5aSBruce Evans #endif /* !_I386_LINUX_LINUX_H_ */
765