more syscalls
[qemu] / syscall-i386.h
1 /* from linux/unistd.h */
2
3 #define TARGET_NR_exit            1
4 #define TARGET_NR_fork            2
5 #define TARGET_NR_read            3
6 #define TARGET_NR_write           4
7 #define TARGET_NR_open            5
8 #define TARGET_NR_close           6
9 #define TARGET_NR_waitpid                 7
10 #define TARGET_NR_creat           8
11 #define TARGET_NR_link            9
12 #define TARGET_NR_unlink                 10
13 #define TARGET_NR_execve                 11
14 #define TARGET_NR_chdir          12
15 #define TARGET_NR_time           13
16 #define TARGET_NR_mknod          14
17 #define TARGET_NR_chmod          15
18 #define TARGET_NR_lchown                 16
19 #define TARGET_NR_break          17
20 #define TARGET_NR_oldstat                18
21 #define TARGET_NR_lseek          19
22 #define TARGET_NR_getpid                 20
23 #define TARGET_NR_mount          21
24 #define TARGET_NR_umount                 22
25 #define TARGET_NR_setuid                 23
26 #define TARGET_NR_getuid                 24
27 #define TARGET_NR_stime          25
28 #define TARGET_NR_ptrace                 26
29 #define TARGET_NR_alarm          27
30 #define TARGET_NR_oldfstat               28
31 #define TARGET_NR_pause          29
32 #define TARGET_NR_utime          30
33 #define TARGET_NR_stty           31
34 #define TARGET_NR_gtty           32
35 #define TARGET_NR_access                 33
36 #define TARGET_NR_nice           34
37 #define TARGET_NR_ftime          35
38 #define TARGET_NR_sync           36
39 #define TARGET_NR_kill           37
40 #define TARGET_NR_rename                 38
41 #define TARGET_NR_mkdir          39
42 #define TARGET_NR_rmdir          40
43 #define TARGET_NR_dup            41
44 #define TARGET_NR_pipe           42
45 #define TARGET_NR_times          43
46 #define TARGET_NR_prof           44
47 #define TARGET_NR_brk            45
48 #define TARGET_NR_setgid                 46
49 #define TARGET_NR_getgid                 47
50 #define TARGET_NR_signal                 48
51 #define TARGET_NR_geteuid                49
52 #define TARGET_NR_getegid                50
53 #define TARGET_NR_acct           51
54 #define TARGET_NR_umount2                52
55 #define TARGET_NR_lock           53
56 #define TARGET_NR_ioctl          54
57 #define TARGET_NR_fcntl          55
58 #define TARGET_NR_mpx            56
59 #define TARGET_NR_setpgid                57
60 #define TARGET_NR_ulimit                 58
61 #define TARGET_NR_oldolduname    59
62 #define TARGET_NR_umask          60
63 #define TARGET_NR_chroot                 61
64 #define TARGET_NR_ustat          62
65 #define TARGET_NR_dup2           63
66 #define TARGET_NR_getppid                64
67 #define TARGET_NR_getpgrp                65
68 #define TARGET_NR_setsid                 66
69 #define TARGET_NR_sigaction              67
70 #define TARGET_NR_sgetmask               68
71 #define TARGET_NR_ssetmask               69
72 #define TARGET_NR_setreuid               70
73 #define TARGET_NR_setregid               71
74 #define TARGET_NR_sigsuspend             72
75 #define TARGET_NR_sigpending             73
76 #define TARGET_NR_sethostname    74
77 #define TARGET_NR_setrlimit              75
78 #define TARGET_NR_getrlimit              76     /* Back compatible 2Gig limited rlimit */
79 #define TARGET_NR_getrusage              77
80 #define TARGET_NR_gettimeofday   78
81 #define TARGET_NR_settimeofday   79
82 #define TARGET_NR_getgroups              80
83 #define TARGET_NR_setgroups              81
84 #define TARGET_NR_select                 82
85 #define TARGET_NR_symlink                83
86 #define TARGET_NR_oldlstat               84
87 #define TARGET_NR_readlink               85
88 #define TARGET_NR_uselib                 86
89 #define TARGET_NR_swapon                 87
90 #define TARGET_NR_reboot                 88
91 #define TARGET_NR_readdir                89
92 #define TARGET_NR_mmap           90
93 #define TARGET_NR_munmap                 91
94 #define TARGET_NR_truncate               92
95 #define TARGET_NR_ftruncate              93
96 #define TARGET_NR_fchmod                 94
97 #define TARGET_NR_fchown                 95
98 #define TARGET_NR_getpriority    96
99 #define TARGET_NR_setpriority    97
100 #define TARGET_NR_profil                 98
101 #define TARGET_NR_statfs                 99
102 #define TARGET_NR_fstatfs               100
103 #define TARGET_NR_ioperm                101
104 #define TARGET_NR_socketcall            102
105 #define TARGET_NR_syslog                103
106 #define TARGET_NR_setitimer             104
107 #define TARGET_NR_getitimer             105
108 #define TARGET_NR_stat          106
109 #define TARGET_NR_lstat         107
110 #define TARGET_NR_fstat         108
111 #define TARGET_NR_olduname              109
112 #define TARGET_NR_iopl          110
113 #define TARGET_NR_vhangup               111
114 #define TARGET_NR_idle          112
115 #define TARGET_NR_vm86old               113
116 #define TARGET_NR_wait4         114
117 #define TARGET_NR_swapoff               115
118 #define TARGET_NR_sysinfo               116
119 #define TARGET_NR_ipc           117
120 #define TARGET_NR_fsync         118
121 #define TARGET_NR_sigreturn             119
122 #define TARGET_NR_clone         120
123 #define TARGET_NR_setdomainname 121
124 #define TARGET_NR_uname         122
125 #define TARGET_NR_modify_ldt            123
126 #define TARGET_NR_adjtimex              124
127 #define TARGET_NR_mprotect              125
128 #define TARGET_NR_sigprocmask   126
129 #define TARGET_NR_create_module 127
130 #define TARGET_NR_init_module   128
131 #define TARGET_NR_delete_module 129
132 #define TARGET_NR_get_kernel_syms       130
133 #define TARGET_NR_quotactl              131
134 #define TARGET_NR_getpgid               132
135 #define TARGET_NR_fchdir                133
136 #define TARGET_NR_bdflush               134
137 #define TARGET_NR_sysfs         135
138 #define TARGET_NR_personality   136
139 #define TARGET_NR_afs_syscall   137 /* Syscall for Andrew File System */
140 #define TARGET_NR_setfsuid              138
141 #define TARGET_NR_setfsgid              139
142 #define TARGET_NR__llseek               140
143 #define TARGET_NR_getdents              141
144 #define TARGET_NR__newselect            142
145 #define TARGET_NR_flock         143
146 #define TARGET_NR_msync         144
147 #define TARGET_NR_readv         145
148 #define TARGET_NR_writev                146
149 #define TARGET_NR_getsid                147
150 #define TARGET_NR_fdatasync             148
151 #define TARGET_NR__sysctl               149
152 #define TARGET_NR_mlock         150
153 #define TARGET_NR_munlock               151
154 #define TARGET_NR_mlockall              152
155 #define TARGET_NR_munlockall            153
156 #define TARGET_NR_sched_setparam                154
157 #define TARGET_NR_sched_getparam                155
158 #define TARGET_NR_sched_setscheduler            156
159 #define TARGET_NR_sched_getscheduler            157
160 #define TARGET_NR_sched_yield           158
161 #define TARGET_NR_sched_get_priority_max        159
162 #define TARGET_NR_sched_get_priority_min        160
163 #define TARGET_NR_sched_rr_get_interval 161
164 #define TARGET_NR_nanosleep             162
165 #define TARGET_NR_mremap                163
166 #define TARGET_NR_setresuid             164
167 #define TARGET_NR_getresuid             165
168 #define TARGET_NR_vm86          166
169 #define TARGET_NR_query_module  167
170 #define TARGET_NR_poll          168
171 #define TARGET_NR_nfsservctl            169
172 #define TARGET_NR_setresgid             170
173 #define TARGET_NR_getresgid             171
174 #define TARGET_NR_prctl              172
175 #define TARGET_NR_rt_sigreturn  173
176 #define TARGET_NR_rt_sigaction  174
177 #define TARGET_NR_rt_sigprocmask        175
178 #define TARGET_NR_rt_sigpending 176
179 #define TARGET_NR_rt_sigtimedwait       177
180 #define TARGET_NR_rt_sigqueueinfo       178
181 #define TARGET_NR_rt_sigsuspend 179
182 #define TARGET_NR_pread         180
183 #define TARGET_NR_pwrite                181
184 #define TARGET_NR_chown         182
185 #define TARGET_NR_getcwd                183
186 #define TARGET_NR_capget                184
187 #define TARGET_NR_capset                185
188 #define TARGET_NR_sigaltstack   186
189 #define TARGET_NR_sendfile              187
190 #define TARGET_NR_getpmsg               188     /* some people actually want streams */
191 #define TARGET_NR_putpmsg               189     /* some people actually want streams */
192 #define TARGET_NR_vfork         190
193 #define TARGET_NR_ugetrlimit            191     /* SuS compliant getrlimit */
194 #define TARGET_NR_mmap2         192
195 #define TARGET_NR_truncate64            193
196 #define TARGET_NR_ftruncate64   194
197 #define TARGET_NR_stat64                195
198 #define TARGET_NR_lstat64               196
199 #define TARGET_NR_fstat64               197
200 #define TARGET_NR_lchown32              198
201 #define TARGET_NR_getuid32              199
202 #define TARGET_NR_getgid32              200
203 #define TARGET_NR_geteuid32             201
204 #define TARGET_NR_getegid32             202
205 #define TARGET_NR_setreuid32            203
206 #define TARGET_NR_setregid32            204
207 #define TARGET_NR_getgroups32   205
208 #define TARGET_NR_setgroups32   206
209 #define TARGET_NR_fchown32              207
210 #define TARGET_NR_setresuid32   208
211 #define TARGET_NR_getresuid32   209
212 #define TARGET_NR_setresgid32   210
213 #define TARGET_NR_getresgid32   211
214 #define TARGET_NR_chown32               212
215 #define TARGET_NR_setuid32              213
216 #define TARGET_NR_setgid32              214
217 #define TARGET_NR_setfsuid32            215
218 #define TARGET_NR_setfsgid32            216
219 #define TARGET_NR_pivot_root            217
220 #define TARGET_NR_mincore               218
221 #define TARGET_NR_madvise               219
222 #define TARGET_NR_madvise1              219     /* delete when C lib stub is removed */
223 #define TARGET_NR_getdents64            220
224 #define TARGET_NR_fcntl64               221
225 #define TARGET_NR_security              223     /* syscall for security modules */
226 #define TARGET_NR_gettid                224
227 #define TARGET_NR_readahead             225
228 #define TARGET_NR_setxattr              226
229 #define TARGET_NR_lsetxattr             227
230 #define TARGET_NR_fsetxattr             228
231 #define TARGET_NR_getxattr              229
232 #define TARGET_NR_lgetxattr             230
233 #define TARGET_NR_fgetxattr             231
234 #define TARGET_NR_listxattr             232
235 #define TARGET_NR_llistxattr            233
236 #define TARGET_NR_flistxattr            234
237 #define TARGET_NR_removexattr   235
238 #define TARGET_NR_lremovexattr  236
239 #define TARGET_NR_fremovexattr  237
240 #define TARGET_NR_tkill         238
241 #define TARGET_NR_sendfile64            239
242 #define TARGET_NR_futex         240
243 #define TARGET_NR_sched_setaffinity     241
244 #define TARGET_NR_sched_getaffinity     242
245 #define TARGET_NR_set_thread_area       243
246 #define TARGET_NR_get_thread_area       244
247 #define TARGET_NR_io_setup              245
248 #define TARGET_NR_io_destroy            246
249 #define TARGET_NR_io_getevents  247
250 #define TARGET_NR_io_submit             248
251 #define TARGET_NR_io_cancel             249
252 #define TARGET_NR_fadvise64             250
253
254 #define TARGET_NR_exit_group            252
255 #define TARGET_NR_lookup_dcookie        253
256 #define TARGET_NR_epoll_create  254
257 #define TARGET_NR_epoll_ctl             255
258 #define TARGET_NR_epoll_wait            256
259 #define TARGET_NR_remap_file_pages      257
260 #define TARGET_NR_set_tid_address       258
261 #define TARGET_NR_timer_create  259
262 #define TARGET_NR_timer_settime (TARGET_NR_timer_create+1)
263 #define TARGET_NR_timer_gettime (TARGET_NR_timer_create+2)
264 #define TARGET_NR_timer_getoverrun      (TARGET_NR_timer_create+3)
265 #define TARGET_NR_timer_delete  (TARGET_NR_timer_create+4)
266 #define TARGET_NR_clock_settime (TARGET_NR_timer_create+5)
267 #define TARGET_NR_clock_gettime (TARGET_NR_timer_create+6)
268 #define TARGET_NR_clock_getres  (TARGET_NR_timer_create+7)
269 #define TARGET_NR_clock_nanosleep       (TARGET_NR_timer_create+8)
270
271 #define TARGET_SIG_BLOCK          0    /* for blocking signals */
272 #define TARGET_SIG_UNBLOCK        1    /* for unblocking signals */
273 #define TARGET_SIG_SETMASK        2    /* for setting the signal mask */
274
275 struct target_stat {
276         unsigned short st_dev;
277         unsigned short __pad1;
278         target_ulong st_ino;
279         unsigned short st_mode;
280         unsigned short st_nlink;
281         unsigned short st_uid;
282         unsigned short st_gid;
283         unsigned short st_rdev;
284         unsigned short __pad2;
285         target_ulong  st_size;
286         target_ulong  st_blksize;
287         target_ulong  st_blocks;
288         target_ulong  st_atime;
289         target_ulong  __unused1;
290         target_ulong  st_mtime;
291         target_ulong  __unused2;
292         target_ulong  st_ctime;
293         target_ulong  __unused3;
294         target_ulong  __unused4;
295         target_ulong  __unused5;
296 };
297
298 /* This matches struct stat64 in glibc2.1, hence the absolutely
299  * insane amounts of padding around dev_t's.
300  */
301 struct target_stat64 {
302         unsigned short  st_dev;
303         unsigned char   __pad0[10];
304
305 #define STAT64_HAS_BROKEN_ST_INO        1
306         target_ulong    __st_ino;
307
308         unsigned int    st_mode;
309         unsigned int    st_nlink;
310
311         target_ulong    st_uid;
312         target_ulong    st_gid;
313
314         unsigned short  st_rdev;
315         unsigned char   __pad3[10];
316
317         long long       st_size;
318         target_ulong    st_blksize;
319
320         target_ulong    st_blocks;      /* Number 512-byte blocks allocated. */
321         target_ulong    __pad4;         /* future possible st_blocks high bits */
322
323         target_ulong    st_atime;
324         target_ulong    __pad5;
325
326         target_ulong    st_mtime;
327         target_ulong    __pad6;
328
329         target_ulong    st_ctime;
330         target_ulong    __pad7;         /* will be high 32 bits of ctime someday */
331
332         unsigned long long      st_ino;
333 };
334
335 #define TARGET_SA_NOCLDSTOP     0x00000001
336 #define TARGET_SA_NOCLDWAIT     0x00000002 /* not supported yet */
337 #define TARGET_SA_SIGINFO       0x00000004
338 #define TARGET_SA_ONSTACK       0x08000000
339 #define TARGET_SA_RESTART       0x10000000
340 #define TARGET_SA_NODEFER       0x40000000
341 #define TARGET_SA_RESETHAND     0x80000000
342 #define TARGET_SA_RESTORER      0x04000000
343
344 #define TARGET_SIGHUP            1
345 #define TARGET_SIGINT            2
346 #define TARGET_SIGQUIT           3
347 #define TARGET_SIGILL            4
348 #define TARGET_SIGTRAP           5
349 #define TARGET_SIGABRT           6
350 #define TARGET_SIGIOT            6
351 #define TARGET_SIGBUS            7
352 #define TARGET_SIGFPE            8
353 #define TARGET_SIGKILL           9
354 #define TARGET_SIGUSR1          10
355 #define TARGET_SIGSEGV          11
356 #define TARGET_SIGUSR2          12
357 #define TARGET_SIGPIPE          13
358 #define TARGET_SIGALRM          14
359 #define TARGET_SIGTERM          15
360 #define TARGET_SIGSTKFLT        16
361 #define TARGET_SIGCHLD          17
362 #define TARGET_SIGCONT          18
363 #define TARGET_SIGSTOP          19
364 #define TARGET_SIGTSTP          20
365 #define TARGET_SIGTTIN          21
366 #define TARGET_SIGTTOU          22
367 #define TARGET_SIGURG           23
368 #define TARGET_SIGXCPU          24
369 #define TARGET_SIGXFSZ          25
370 #define TARGET_SIGVTALRM        26
371 #define TARGET_SIGPROF          27
372 #define TARGET_SIGWINCH         28
373 #define TARGET_SIGIO            29
374 #define TARGET_SIGRTMIN         32
375
376 struct target_old_sigaction {
377         target_ulong _sa_handler;
378         target_ulong sa_mask;
379         target_ulong sa_flags;
380         target_ulong sa_restorer;
381 };
382
383 struct target_sigaction {
384         target_ulong _sa_handler;
385         target_ulong sa_flags;
386         target_ulong sa_restorer;
387         target_sigset_t sa_mask;
388 };
389
390 typedef union target_sigval {
391         int sival_int;
392         target_ulong sival_ptr;
393 } target_sigval_t;
394
395 #define TARGET_SI_MAX_SIZE      128
396 #define TARGET_SI_PAD_SIZE      ((TARGET_SI_MAX_SIZE/sizeof(int)) - 3)
397
398 typedef struct target_siginfo {
399         int si_signo;
400         int si_errno;
401         int si_code;
402
403         union {
404                 int _pad[TARGET_SI_PAD_SIZE];
405
406                 /* kill() */
407                 struct {
408                         pid_t _pid;             /* sender's pid */
409                         uid_t _uid;             /* sender's uid */
410                 } _kill;
411
412                 /* POSIX.1b timers */
413                 struct {
414                         unsigned int _timer1;
415                         unsigned int _timer2;
416                 } _timer;
417
418                 /* POSIX.1b signals */
419                 struct {
420                         pid_t _pid;             /* sender's pid */
421                         uid_t _uid;             /* sender's uid */
422                         target_sigval_t _sigval;
423                 } _rt;
424
425                 /* SIGCHLD */
426                 struct {
427                         pid_t _pid;             /* which child */
428                         uid_t _uid;             /* sender's uid */
429                         int _status;            /* exit code */
430                         clock_t _utime;
431                         clock_t _stime;
432                 } _sigchld;
433
434                 /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
435                 struct {
436                         target_ulong _addr; /* faulting insn/memory ref. */
437                 } _sigfault;
438
439                 /* SIGPOLL */
440                 struct {
441                         int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
442                         int _fd;
443                 } _sigpoll;
444         } _sifields;
445 } target_siginfo_t;
446
447 /*
448  * SIGILL si_codes
449  */
450 #define TARGET_ILL_ILLOPN       (2)     /* illegal operand */
451
452 /*
453  * SIGFPE si_codes
454  */
455 #define TARGET_FPE_INTDIV      (1)  /* integer divide by zero */
456 #define TARGET_FPE_INTOVF      (2)  /* integer overflow */
457 #define TARGET_FPE_FLTDIV      (3)  /* floating point divide by zero */
458 #define TARGET_FPE_FLTOVF      (4)  /* floating point overflow */
459 #define TARGET_FPE_FLTUND      (5)  /* floating point underflow */
460 #define TARGET_FPE_FLTRES      (6)  /* floating point inexact result */
461 #define TARGET_FPE_FLTINV      (7)  /* floating point invalid operation */
462 #define TARGET_FPE_FLTSUB      (8)  /* subscript out of range */
463 #define TARGET_NSIGFPE         8
464
465 /* default linux values for the selectors */
466 #define __USER_CS       (0x23)
467 #define __USER_DS       (0x2B)
468
469 struct target_pt_regs {
470         long ebx;
471         long ecx;
472         long edx;
473         long esi;
474         long edi;
475         long ebp;
476         long eax;
477         int  xds;
478         int  xes;
479         long orig_eax;
480         long eip;
481         int  xcs;
482         long eflags;
483         long esp;
484         int  xss;
485 };
486
487 /* ioctls */
488
489 /*
490  * The following is for compatibility across the various Linux
491  * platforms.  The i386 ioctl numbering scheme doesn't really enforce
492  * a type field.  De facto, however, the top 8 bits of the lower 16
493  * bits are indeed used as a type field, so we might just as well make
494  * this explicit here.  Please be sure to use the decoding macros
495  * below from now on.
496  */
497 #define TARGET_IOC_NRBITS       8
498 #define TARGET_IOC_TYPEBITS     8
499 #define TARGET_IOC_SIZEBITS     14
500 #define TARGET_IOC_DIRBITS      2
501
502 #define TARGET_IOC_NRMASK       ((1 << TARGET_IOC_NRBITS)-1)
503 #define TARGET_IOC_TYPEMASK     ((1 << TARGET_IOC_TYPEBITS)-1)
504 #define TARGET_IOC_SIZEMASK     ((1 << TARGET_IOC_SIZEBITS)-1)
505 #define TARGET_IOC_DIRMASK      ((1 << TARGET_IOC_DIRBITS)-1)
506
507 #define TARGET_IOC_NRSHIFT      0
508 #define TARGET_IOC_TYPESHIFT    (TARGET_IOC_NRSHIFT+TARGET_IOC_NRBITS)
509 #define TARGET_IOC_SIZESHIFT    (TARGET_IOC_TYPESHIFT+TARGET_IOC_TYPEBITS)
510 #define TARGET_IOC_DIRSHIFT     (TARGET_IOC_SIZESHIFT+TARGET_IOC_SIZEBITS)
511
512 /*
513  * Direction bits.
514  */
515 #define TARGET_IOC_NONE 0U
516 #define TARGET_IOC_WRITE        1U
517 #define TARGET_IOC_READ 2U
518
519 #define TARGET_IOC(dir,type,nr,size) \
520         (((dir)  << TARGET_IOC_DIRSHIFT) | \
521          ((type) << TARGET_IOC_TYPESHIFT) | \
522          ((nr)   << TARGET_IOC_NRSHIFT) | \
523          ((size) << TARGET_IOC_SIZESHIFT))
524
525 /* used to create numbers */
526 #define TARGET_IO(type,nr)              TARGET_IOC(TARGET_IOC_NONE,(type),(nr),0)
527 #define TARGET_IOR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ,(type),(nr),sizeof(size))
528 #define TARGET_IOW(type,nr,size)        TARGET_IOC(TARGET_IOC_WRITE,(type),(nr),sizeof(size))
529 #define TARGET_IOWR(type,nr,size)       TARGET_IOC(TARGET_IOC_READ|TARGET_IOC_WRITE,(type),(nr),sizeof(size))
530
531 /* 0x54 is just a magic number to make these relatively unique ('T') */
532
533 #define TARGET_TCGETS           0x5401
534 #define TARGET_TCSETS           0x5402
535 #define TARGET_TCSETSW          0x5403
536 #define TARGET_TCSETSF          0x5404
537 #define TARGET_TCGETA           0x5405
538 #define TARGET_TCSETA           0x5406
539 #define TARGET_TCSETAW          0x5407
540 #define TARGET_TCSETAF          0x5408
541 #define TARGET_TCSBRK           0x5409
542 #define TARGET_TCXONC           0x540A
543 #define TARGET_TCFLSH           0x540B
544 #define TARGET_TIOCEXCL 0x540C
545 #define TARGET_TIOCNXCL 0x540D
546 #define TARGET_TIOCSCTTY        0x540E
547 #define TARGET_TIOCGPGRP        0x540F
548 #define TARGET_TIOCSPGRP        0x5410
549 #define TARGET_TIOCOUTQ 0x5411
550 #define TARGET_TIOCSTI          0x5412
551 #define TARGET_TIOCGWINSZ       0x5413
552 #define TARGET_TIOCSWINSZ       0x5414
553 #define TARGET_TIOCMGET 0x5415
554 #define TARGET_TIOCMBIS 0x5416
555 #define TARGET_TIOCMBIC 0x5417
556 #define TARGET_TIOCMSET 0x5418
557 #define TARGET_TIOCGSOFTCAR     0x5419
558 #define TARGET_TIOCSSOFTCAR     0x541A
559 #define TARGET_FIONREAD 0x541B
560 #define TARGET_TIOCINQ          FIONREAD
561 #define TARGET_TIOCLINUX        0x541C
562 #define TARGET_TIOCCONS 0x541D
563 #define TARGET_TIOCGSERIAL      0x541E
564 #define TARGET_TIOCSSERIAL      0x541F
565 #define TARGET_TIOCPKT          0x5420
566 #define TARGET_FIONBIO          0x5421
567 #define TARGET_TIOCNOTTY        0x5422
568 #define TARGET_TIOCSETD 0x5423
569 #define TARGET_TIOCGETD 0x5424
570 #define TARGET_TCSBRKP          0x5425  /* Needed for POSIX tcsendbreak() */
571 #define TARGET_TIOCTTYGSTRUCT   0x5426  /* For debugging only */
572 #define TARGET_TIOCSBRK 0x5427  /* BSD compatibility */
573 #define TARGET_TIOCCBRK 0x5428  /* BSD compatibility */
574 #define TARGET_TIOCGSID 0x5429  /* Return the session ID of FD */
575 #define TARGET_TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
576 #define TARGET_TIOCSPTLCK       _IOW('T',0x31, int)  /* Lock/unlock Pty */
577
578 #define TARGET_FIONCLEX 0x5450  /* these numbers need to be adjusted. */
579 #define TARGET_FIOCLEX          0x5451
580 #define TARGET_FIOASYNC 0x5452
581 #define TARGET_TIOCSERCONFIG    0x5453
582 #define TARGET_TIOCSERGWILD     0x5454
583 #define TARGET_TIOCSERSWILD     0x5455
584 #define TARGET_TIOCGLCKTRMIOS   0x5456
585 #define TARGET_TIOCSLCKTRMIOS   0x5457
586 #define TARGET_TIOCSERGSTRUCT   0x5458 /* For debugging only */
587 #define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
588 #define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
589 #define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
590
591 #define TARGET_TIOCMIWAIT       0x545C  /* wait for a change on serial input line(s) */
592 #define TARGET_TIOCGICOUNT      0x545D  /* read serial port inline interrupt counts */
593 #define TARGET_TIOCGHAYESESP   0x545E  /* Get Hayes ESP configuration */
594 #define TARGET_TIOCSHAYESESP   0x545F  /* Set Hayes ESP configuration */
595
596 /* Used for packet mode */
597 #define TARGET_TIOCPKT_DATA              0
598 #define TARGET_TIOCPKT_FLUSHREAD         1
599 #define TARGET_TIOCPKT_FLUSHWRITE        2
600 #define TARGET_TIOCPKT_STOP              4
601 #define TARGET_TIOCPKT_START             8
602 #define TARGET_TIOCPKT_NOSTOP           16
603 #define TARGET_TIOCPKT_DOSTOP           32
604
605 #define TARGET_TIOCSER_TEMT    0x01     /* Transmitter physically empty */
606
607 /* from asm/termbits.h */
608
609 #define TARGET_NCCS 19
610
611 struct target_termios {
612     unsigned int c_iflag;               /* input mode flags */
613     unsigned int c_oflag;               /* output mode flags */
614     unsigned int c_cflag;               /* control mode flags */
615     unsigned int c_lflag;               /* local mode flags */
616     unsigned char c_line;                    /* line discipline */
617     unsigned char c_cc[TARGET_NCCS];                /* control characters */
618 };
619
620 /* c_iflag bits */
621 #define TARGET_IGNBRK  0000001
622 #define TARGET_BRKINT  0000002
623 #define TARGET_IGNPAR  0000004
624 #define TARGET_PARMRK  0000010
625 #define TARGET_INPCK   0000020
626 #define TARGET_ISTRIP  0000040
627 #define TARGET_INLCR   0000100
628 #define TARGET_IGNCR   0000200
629 #define TARGET_ICRNL   0000400
630 #define TARGET_IUCLC   0001000
631 #define TARGET_IXON    0002000
632 #define TARGET_IXANY   0004000
633 #define TARGET_IXOFF   0010000
634 #define TARGET_IMAXBEL 0020000
635
636 /* c_oflag bits */
637 #define TARGET_OPOST   0000001
638 #define TARGET_OLCUC   0000002
639 #define TARGET_ONLCR   0000004
640 #define TARGET_OCRNL   0000010
641 #define TARGET_ONOCR   0000020
642 #define TARGET_ONLRET  0000040
643 #define TARGET_OFILL   0000100
644 #define TARGET_OFDEL   0000200
645 #define TARGET_NLDLY   0000400
646 #define   TARGET_NL0   0000000
647 #define   TARGET_NL1   0000400
648 #define TARGET_CRDLY   0003000
649 #define   TARGET_CR0   0000000
650 #define   TARGET_CR1   0001000
651 #define   TARGET_CR2   0002000
652 #define   TARGET_CR3   0003000
653 #define TARGET_TABDLY  0014000
654 #define   TARGET_TAB0  0000000
655 #define   TARGET_TAB1  0004000
656 #define   TARGET_TAB2  0010000
657 #define   TARGET_TAB3  0014000
658 #define   TARGET_XTABS 0014000
659 #define TARGET_BSDLY   0020000
660 #define   TARGET_BS0   0000000
661 #define   TARGET_BS1   0020000
662 #define TARGET_VTDLY   0040000
663 #define   TARGET_VT0   0000000
664 #define   TARGET_VT1   0040000
665 #define TARGET_FFDLY   0100000
666 #define   TARGET_FF0   0000000
667 #define   TARGET_FF1   0100000
668
669 /* c_cflag bit meaning */
670 #define TARGET_CBAUD   0010017
671 #define  TARGET_B0     0000000         /* hang up */
672 #define  TARGET_B50    0000001
673 #define  TARGET_B75    0000002
674 #define  TARGET_B110   0000003
675 #define  TARGET_B134   0000004
676 #define  TARGET_B150   0000005
677 #define  TARGET_B200   0000006
678 #define  TARGET_B300   0000007
679 #define  TARGET_B600   0000010
680 #define  TARGET_B1200  0000011
681 #define  TARGET_B1800  0000012
682 #define  TARGET_B2400  0000013
683 #define  TARGET_B4800  0000014
684 #define  TARGET_B9600  0000015
685 #define  TARGET_B19200 0000016
686 #define  TARGET_B38400 0000017
687 #define TARGET_EXTA B19200
688 #define TARGET_EXTB B38400
689 #define TARGET_CSIZE   0000060
690 #define   TARGET_CS5   0000000
691 #define   TARGET_CS6   0000020
692 #define   TARGET_CS7   0000040
693 #define   TARGET_CS8   0000060
694 #define TARGET_CSTOPB  0000100
695 #define TARGET_CREAD   0000200
696 #define TARGET_PARENB  0000400
697 #define TARGET_PARODD  0001000
698 #define TARGET_HUPCL   0002000
699 #define TARGET_CLOCAL  0004000
700 #define TARGET_CBAUDEX 0010000
701 #define  TARGET_B57600  0010001
702 #define  TARGET_B115200 0010002
703 #define  TARGET_B230400 0010003
704 #define  TARGET_B460800 0010004
705 #define TARGET_CIBAUD    002003600000  /* input baud rate (not used) */
706 #define TARGET_CRTSCTS   020000000000          /* flow control */
707
708 /* c_lflag bits */
709 #define TARGET_ISIG    0000001
710 #define TARGET_ICANON  0000002
711 #define TARGET_XCASE   0000004
712 #define TARGET_ECHO    0000010
713 #define TARGET_ECHOE   0000020
714 #define TARGET_ECHOK   0000040
715 #define TARGET_ECHONL  0000100
716 #define TARGET_NOFLSH  0000200
717 #define TARGET_TOSTOP  0000400
718 #define TARGET_ECHOCTL 0001000
719 #define TARGET_ECHOPRT 0002000
720 #define TARGET_ECHOKE  0004000
721 #define TARGET_FLUSHO  0010000
722 #define TARGET_PENDIN  0040000
723 #define TARGET_IEXTEN  0100000
724
725 /* c_cc character offsets */
726 #define TARGET_VINTR    0
727 #define TARGET_VQUIT    1
728 #define TARGET_VERASE   2
729 #define TARGET_VKILL    3
730 #define TARGET_VEOF     4
731 #define TARGET_VTIME    5
732 #define TARGET_VMIN     6
733 #define TARGET_VSWTC    7
734 #define TARGET_VSTART   8
735 #define TARGET_VSTOP    9
736 #define TARGET_VSUSP    10
737 #define TARGET_VEOL     11
738 #define TARGET_VREPRINT 12
739 #define TARGET_VDISCARD 13
740 #define TARGET_VWERASE  14
741 #define TARGET_VLNEXT   15
742 #define TARGET_VEOL2    16
743
744 #define TARGET_LDT_ENTRIES      8192
745 #define TARGET_LDT_ENTRY_SIZE   8
746
747 #define TARGET_GDT_ENTRY_TLS_ENTRIES   3
748 #define TARGET_GDT_ENTRY_TLS_MIN       6
749 #define TARGET_GDT_ENTRY_TLS_MAX       (TARGET_GDT_ENTRY_TLS_MIN + TARGET_GDT_ENTRY_TLS_ENTRIES - 1)
750
751 struct target_modify_ldt_ldt_s {
752     unsigned int  entry_number;
753     target_ulong base_addr;
754     unsigned int limit;
755     unsigned int flags;
756 };
757
758 #define TARGET_VM86_SIGNAL      0       /* return due to signal */
759 #define TARGET_VM86_UNKNOWN     1       /* unhandled GP fault - IO-instruction or similar */
760 #define TARGET_VM86_INTx        2       /* int3/int x instruction (ARG = x) */
761 #define TARGET_VM86_STI 3       /* sti/popf/iret instruction enabled virtual interrupts */
762
763 /*
764  * Additional return values when invoking new vm86()
765  */
766 #define TARGET_VM86_PICRETURN   4       /* return due to pending PIC request */
767 #define TARGET_VM86_TRAP        6       /* return due to DOS-debugger request */
768
769 /*
770  * function codes when invoking new vm86()
771  */
772 #define TARGET_VM86_PLUS_INSTALL_CHECK  0
773 #define TARGET_VM86_ENTER               1
774 #define TARGET_VM86_ENTER_NO_BYPASS     2
775 #define TARGET_VM86_REQUEST_IRQ 3
776 #define TARGET_VM86_FREE_IRQ            4
777 #define TARGET_VM86_GET_IRQ_BITS        5
778 #define TARGET_VM86_GET_AND_RESET_IRQ   6
779
780 /*
781  * This is the stack-layout seen by the user space program when we have
782  * done a translation of "SAVE_ALL" from vm86 mode. The real kernel layout
783  * is 'kernel_vm86_regs' (see below).
784  */
785
786 struct target_vm86_regs {
787 /*
788  * normal regs, with special meaning for the segment descriptors..
789  */
790         target_long ebx;
791         target_long ecx;
792         target_long edx;
793         target_long esi;
794         target_long edi;
795         target_long ebp;
796         target_long eax;
797         target_long __null_ds;
798         target_long __null_es;
799         target_long __null_fs;
800         target_long __null_gs;
801         target_long orig_eax;
802         target_long eip;
803         unsigned short cs, __csh;
804         target_long eflags;
805         target_long esp;
806         unsigned short ss, __ssh;
807 /*
808  * these are specific to v86 mode:
809  */
810         unsigned short es, __esh;
811         unsigned short ds, __dsh;
812         unsigned short fs, __fsh;
813         unsigned short gs, __gsh;
814 };
815
816 struct target_revectored_struct {
817         target_ulong __map[8];                  /* 256 bits */
818 };
819
820 struct target_vm86_struct {
821         struct target_vm86_regs regs;
822         target_ulong flags;
823         target_ulong screen_bitmap;
824         target_ulong cpu_type;
825         struct target_revectored_struct int_revectored;
826         struct target_revectored_struct int21_revectored;
827 };
828
829 /*
830  * flags masks
831  */
832 #define TARGET_VM86_SCREEN_BITMAP       0x0001
833
834 struct target_vm86plus_info_struct {
835         target_ulong flags;
836 #define TARGET_force_return_for_pic (1 << 0)
837 #define TARGET_vm86dbg_active       (1 << 1)  /* for debugger */
838 #define TARGET_vm86dbg_TFpendig     (1 << 2)  /* for debugger */
839 #define TARGET_is_vm86pus           (1 << 31) /* for vm86 internal use */
840         unsigned char vm86dbg_intxxtab[32];   /* for debugger */
841 };
842
843 struct target_vm86plus_struct {
844         struct target_vm86_regs regs;
845         target_ulong flags;
846         target_ulong screen_bitmap;
847         target_ulong cpu_type;
848         struct target_revectored_struct int_revectored;
849         struct target_revectored_struct int21_revectored;
850         struct target_vm86plus_info_struct vm86plus;
851 };
852
853 /* ipcs */
854
855 #define TARGET_SEMOP           1
856 #define TARGET_SEMGET          2
857 #define TARGET_SEMCTL          3 
858 #define TARGET_MSGSND          11 
859 #define TARGET_MSGRCV          12
860 #define TARGET_MSGGET          13
861 #define TARGET_MSGCTL          14
862 #define TARGET_SHMAT           21
863 #define TARGET_SHMDT           22
864 #define TARGET_SHMGET          23
865 #define TARGET_SHMCTL          24
866
867 struct target_msgbuf {
868         int mtype;
869         char mtext[1];
870 };
871
872 struct target_ipc_kludge {
873         unsigned int    msgp;   /* Really (struct msgbuf *) */
874         int msgtyp;
875 };      
876
877 struct alpha_msgbuf {
878         long    mtype;
879         char    mtext[4096];
880 };
881
882 struct target_ipc_perm {
883         int     key;
884         unsigned short  uid;
885         unsigned short  gid;
886         unsigned short  cuid;
887         unsigned short  cgid;
888         unsigned short  mode;
889         unsigned short  seq;
890 };
891
892 struct target_msqid_ds {
893         struct target_ipc_perm  msg_perm;
894         unsigned int            msg_first;      /* really struct target_msg* */
895         unsigned int            msg_last;       /* really struct target_msg* */
896         unsigned int            msg_stime;      /* really target_time_t */
897         unsigned int            msg_rtime;      /* really target_time_t */
898         unsigned int            msg_ctime;      /* really target_time_t */
899         unsigned int            wwait;          /* really struct wait_queue* */
900         unsigned int            rwait;          /* really struct wait_queue* */
901         unsigned short          msg_cbytes;
902         unsigned short          msg_qnum;
903         unsigned short          msg_qbytes;
904         unsigned short          msg_lspid;
905         unsigned short          msg_lrpid;
906 };
907
908 struct target_shmid_ds {
909         struct target_ipc_perm  shm_perm;
910         int                     shm_segsz;
911         unsigned int            shm_atime;      /* really target_time_t */
912         unsigned int            shm_dtime;      /* really target_time_t */
913         unsigned int            shm_ctime;      /* really target_time_t */
914         unsigned short          shm_cpid;
915         unsigned short          shm_lpid;
916         short                   shm_nattch;
917         unsigned short          shm_npages;
918         unsigned long           *shm_pages;
919         void                    *attaches;      /* really struct shm_desc * */
920 };
921
922 #define TARGET_IPC_RMID 0
923 #define TARGET_IPC_SET  1
924 #define TARGET_IPC_STAT 2
925
926 union target_semun {
927     int val;
928     unsigned int buf;   /* really struct semid_ds * */
929     unsigned int array; /* really unsigned short * */
930     unsigned int __buf; /* really struct seminfo * */
931     unsigned int __pad; /* really void* */
932 };
933
934 /* soundcard defines (XXX: move them to generic file syscall_defs.h) */
935
936 #define TARGET_SNDCTL_COPR_HALT           0xc0144307
937 #define TARGET_SNDCTL_COPR_LOAD           0xcfb04301
938 #define TARGET_SNDCTL_COPR_RCODE          0xc0144303
939 #define TARGET_SNDCTL_COPR_RCVMSG         0x8fa44309
940 #define TARGET_SNDCTL_COPR_RDATA          0xc0144302
941 #define TARGET_SNDCTL_COPR_RESET          0x00004300
942 #define TARGET_SNDCTL_COPR_RUN            0xc0144306
943 #define TARGET_SNDCTL_COPR_SENDMSG        0xcfa44308
944 #define TARGET_SNDCTL_COPR_WCODE          0x40144305
945 #define TARGET_SNDCTL_COPR_WDATA          0x40144304
946 #define TARGET_SNDCTL_DSP_CHANNELS        0xc0045006
947 #define TARGET_SNDCTL_DSP_GETBLKSIZE      0xc0045004
948 #define TARGET_SNDCTL_DSP_GETCAPS         0x8004500f
949 #define TARGET_SNDCTL_DSP_GETFMTS         0x8004500b
950 #define TARGET_SNDCTL_DSP_GETIPTR         0x800c5011
951 #define TARGET_SNDCTL_DSP_GETISPACE       0x8010500d
952 #define TARGET_SNDCTL_DSP_GETOPTR         0x800c5012
953 #define TARGET_SNDCTL_DSP_GETOSPACE       0x8010500c
954 #define TARGET_SNDCTL_DSP_GETTRIGGER      0x80045010
955 #define TARGET_SNDCTL_DSP_MAPINBUF        0x80085013
956 #define TARGET_SNDCTL_DSP_MAPOUTBUF       0x80085014
957 #define TARGET_SNDCTL_DSP_NONBLOCK        0x0000500e
958 #define TARGET_SNDCTL_DSP_POST            0x00005008
959 #define TARGET_SNDCTL_DSP_RESET           0x00005000
960 #define TARGET_SNDCTL_DSP_SAMPLESIZE      0xc0045005
961 #define TARGET_SNDCTL_DSP_SETDUPLEX       0x00005016
962 #define TARGET_SNDCTL_DSP_SETFMT          0xc0045005
963 #define TARGET_SNDCTL_DSP_SETFRAGMENT     0xc004500a
964 #define TARGET_SNDCTL_DSP_SETSYNCRO       0x00005015
965 #define TARGET_SNDCTL_DSP_SETTRIGGER      0x40045010
966 #define TARGET_SNDCTL_DSP_SPEED           0xc0045002
967 #define TARGET_SNDCTL_DSP_STEREO          0xc0045003
968 #define TARGET_SNDCTL_DSP_SUBDIVIDE       0xc0045009
969 #define TARGET_SNDCTL_DSP_SYNC            0x00005001
970 #define TARGET_SNDCTL_FM_4OP_ENABLE       0x4004510f
971 #define TARGET_SNDCTL_FM_LOAD_INSTR       0x40285107
972 #define TARGET_SNDCTL_MIDI_INFO           0xc074510c
973 #define TARGET_SNDCTL_MIDI_MPUCMD         0xc0216d02
974 #define TARGET_SNDCTL_MIDI_MPUMODE        0xc0046d01
975 #define TARGET_SNDCTL_MIDI_PRETIME        0xc0046d00
976 #define TARGET_SNDCTL_PMGR_ACCESS         0xcfb85110
977 #define TARGET_SNDCTL_PMGR_IFACE          0xcfb85001
978 #define TARGET_SNDCTL_SEQ_CTRLRATE        0xc0045103
979 #define TARGET_SNDCTL_SEQ_GETINCOUNT      0x80045105
980 #define TARGET_SNDCTL_SEQ_GETOUTCOUNT     0x80045104
981 #define TARGET_SNDCTL_SEQ_NRMIDIS         0x8004510b
982 #define TARGET_SNDCTL_SEQ_NRSYNTHS        0x8004510a
983 #define TARGET_SNDCTL_SEQ_OUTOFBAND       0x40085112
984 #define TARGET_SNDCTL_SEQ_PANIC           0x00005111
985 #define TARGET_SNDCTL_SEQ_PERCMODE        0x40045106
986 #define TARGET_SNDCTL_SEQ_RESET           0x00005100
987 #define TARGET_SNDCTL_SEQ_RESETSAMPLES    0x40045109
988 #define TARGET_SNDCTL_SEQ_SYNC            0x00005101
989 #define TARGET_SNDCTL_SEQ_TESTMIDI        0x40045108
990 #define TARGET_SNDCTL_SEQ_THRESHOLD       0x4004510d
991 #define TARGET_SNDCTL_SEQ_TRESHOLD        0x4004510d
992 #define TARGET_SNDCTL_SYNTH_INFO          0xc08c5102
993 #define TARGET_SNDCTL_SYNTH_MEMAVL        0xc004510e
994 #define TARGET_SNDCTL_TMR_CONTINUE        0x00005404
995 #define TARGET_SNDCTL_TMR_METRONOME       0x40045407
996 #define TARGET_SNDCTL_TMR_SELECT          0x40045408
997 #define TARGET_SNDCTL_TMR_SOURCE          0xc0045406
998 #define TARGET_SNDCTL_TMR_START           0x00005402
999 #define TARGET_SNDCTL_TMR_STOP            0x00005403
1000 #define TARGET_SNDCTL_TMR_TEMPO           0xc0045405
1001 #define TARGET_SNDCTL_TMR_TIMEBASE        0xc0045401
1002 #define TARGET_SOUND_PCM_WRITE_FILTER     0xc0045007
1003 #define TARGET_SOUND_PCM_READ_RATE        0x80045002
1004 #define TARGET_SOUND_PCM_READ_CHANNELS    0x80045006
1005 #define TARGET_SOUND_PCM_READ_BITS        0x80045005
1006 #define TARGET_SOUND_PCM_READ_FILTER      0x80045007
1007 #define TARGET_SOUND_MIXER_INFO           0x80304d65
1008 #define TARGET_SOUND_MIXER_ACCESS         0xc0804d66
1009 #define TARGET_SOUND_MIXER_PRIVATE1       0xc0044d6f
1010 #define TARGET_SOUND_MIXER_PRIVATE2       0xc0044d70
1011 #define TARGET_SOUND_MIXER_PRIVATE3       0xc0044d71
1012 #define TARGET_SOUND_MIXER_PRIVATE4       0xc0044d72
1013 #define TARGET_SOUND_MIXER_PRIVATE5       0xc0044d73
1014 #define TARGET_SOUND_MIXER_READ_VOLUME    0x80044d00
1015 #define TARGET_SOUND_MIXER_READ_BASS      0x80044d01
1016 #define TARGET_SOUND_MIXER_READ_TREBLE    0x80044d02
1017 #define TARGET_SOUND_MIXER_READ_SYNTH     0x80044d03
1018 #define TARGET_SOUND_MIXER_READ_PCM       0x80044d04
1019 #define TARGET_SOUND_MIXER_READ_SPEAKER   0x80044d05
1020 #define TARGET_SOUND_MIXER_READ_LINE      0x80044d06
1021 #define TARGET_SOUND_MIXER_READ_MIC       0x80044d07
1022 #define TARGET_SOUND_MIXER_READ_CD        0x80044d08
1023 #define TARGET_SOUND_MIXER_READ_IMIX      0x80044d09
1024 #define TARGET_SOUND_MIXER_READ_ALTPCM    0x80044d0a
1025 #define TARGET_SOUND_MIXER_READ_RECLEV    0x80044d0b
1026 #define TARGET_SOUND_MIXER_READ_IGAIN     0x80044d0c
1027 #define TARGET_SOUND_MIXER_READ_OGAIN     0x80044d0d
1028 #define TARGET_SOUND_MIXER_READ_LINE1     0x80044d0e
1029 #define TARGET_SOUND_MIXER_READ_LINE2     0x80044d0f
1030 #define TARGET_SOUND_MIXER_READ_LINE3     0x80044d10
1031 #define TARGET_SOUND_MIXER_READ_MUTE      0x80044d1f
1032 #define TARGET_SOUND_MIXER_READ_ENHANCE   0x80044d1f
1033 #define TARGET_SOUND_MIXER_READ_LOUD      0x80044d1f
1034 #define TARGET_SOUND_MIXER_READ_RECSRC    0x80044dff
1035 #define TARGET_SOUND_MIXER_READ_DEVMASK   0x80044dfe
1036 #define TARGET_SOUND_MIXER_READ_RECMASK   0x80044dfd
1037 #define TARGET_SOUND_MIXER_READ_STEREODEVS  0x80044dfb
1038 #define TARGET_SOUND_MIXER_READ_CAPS      0x80044dfc
1039 #define TARGET_SOUND_MIXER_WRITE_VOLUME   0xc0044d00
1040 #define TARGET_SOUND_MIXER_WRITE_BASS     0xc0044d01
1041 #define TARGET_SOUND_MIXER_WRITE_TREBLE   0xc0044d02
1042 #define TARGET_SOUND_MIXER_WRITE_SYNTH    0xc0044d03
1043 #define TARGET_SOUND_MIXER_WRITE_PCM      0xc0044d04
1044 #define TARGET_SOUND_MIXER_WRITE_SPEAKER  0xc0044d05
1045 #define TARGET_SOUND_MIXER_WRITE_LINE     0xc0044d06
1046 #define TARGET_SOUND_MIXER_WRITE_MIC      0xc0044d07
1047 #define TARGET_SOUND_MIXER_WRITE_CD       0xc0044d08
1048 #define TARGET_SOUND_MIXER_WRITE_IMIX     0xc0044d09
1049 #define TARGET_SOUND_MIXER_WRITE_ALTPCM   0xc0044d0a
1050 #define TARGET_SOUND_MIXER_WRITE_RECLEV   0xc0044d0b
1051 #define TARGET_SOUND_MIXER_WRITE_IGAIN    0xc0044d0c
1052 #define TARGET_SOUND_MIXER_WRITE_OGAIN    0xc0044d0d
1053 #define TARGET_SOUND_MIXER_WRITE_LINE1    0xc0044d0e
1054 #define TARGET_SOUND_MIXER_WRITE_LINE2    0xc0044d0f
1055 #define TARGET_SOUND_MIXER_WRITE_LINE3    0xc0044d10
1056 #define TARGET_SOUND_MIXER_WRITE_MUTE     0xc0044d1f
1057 #define TARGET_SOUND_MIXER_WRITE_ENHANCE  0xc0044d1f
1058 #define TARGET_SOUND_MIXER_WRITE_LOUD     0xc0044d1f
1059 #define TARGET_SOUND_MIXER_WRITE_RECSRC   0xc0044dff
1060
1061 #define TARGET_VFAT_IOCTL_READDIR_BOTH    0x82187201
1062 #define TARGET_VFAT_IOCTL_READDIR_SHORT   0x82187202