Statistics
| Branch: | Revision:

root / syscall-i386.h @ b333af06

History | View | Annotate | Download (36.1 kB)

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  target_st_atime;
289
        target_ulong  __unused1;
290
        target_ulong  target_st_mtime;
291
        target_ulong  __unused2;
292
        target_ulong  target_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 TARGET_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        target_st_atime;
324
        target_ulong        __pad5;
325

    
326
        target_ulong        target_st_mtime;
327
        target_ulong        __pad6;
328

    
329
        target_ulong        target_st_ctime;
330
        target_ulong        __pad7;                /* will be high 32 bits of ctime someday */
331

    
332
        unsigned long long        st_ino;
333
} __attribute__((packed));
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
                        target_clock_t _utime;
431
                        target_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
 * si_code values
449
 * Digital reserves positive values for kernel-generated signals.
450
 */
451
#define TARGET_SI_USER                0        /* sent by kill, sigsend, raise */
452
#define TARGET_SI_KERNEL        0x80        /* sent by the kernel from somewhere */
453
#define TARGET_SI_QUEUE        -1                /* sent by sigqueue */
454
#define TARGET_SI_TIMER -2              /* sent by timer expiration */
455
#define TARGET_SI_MESGQ        -3                /* sent by real time mesq state change */
456
#define TARGET_SI_ASYNCIO        -4        /* sent by AIO completion */
457
#define TARGET_SI_SIGIO        -5                /* sent by queued SIGIO */
458

    
459
/*
460
 * SIGILL si_codes
461
 */
462
#define TARGET_ILL_ILLOPN        (2)        /* illegal operand */
463

    
464
/*
465
 * SIGFPE si_codes
466
 */
467
#define TARGET_FPE_INTDIV      (1)  /* integer divide by zero */
468
#define TARGET_FPE_INTOVF      (2)  /* integer overflow */
469
#define TARGET_FPE_FLTDIV      (3)  /* floating point divide by zero */
470
#define TARGET_FPE_FLTOVF      (4)  /* floating point overflow */
471
#define TARGET_FPE_FLTUND      (5)  /* floating point underflow */
472
#define TARGET_FPE_FLTRES      (6)  /* floating point inexact result */
473
#define TARGET_FPE_FLTINV      (7)  /* floating point invalid operation */
474
#define TARGET_FPE_FLTSUB      (8)  /* subscript out of range */
475
#define TARGET_NSIGFPE         8
476

    
477
/*
478
 * SIGSEGV si_codes
479
 */
480
#define TARGET_SEGV_MAPERR     (1)  /* address not mapped to object */
481
#define TARGET_SEGV_ACCERR     (2)  /* invalid permissions for mapped object */
482

    
483
/*
484
 * SIGTRAP si_codes
485
 */
486
#define TARGET_TRAP_BRKPT        (1)        /* process breakpoint */
487
#define TARGET_TRAP_TRACE        (2)        /* process trace trap */
488

    
489
/* default linux values for the selectors */
490
#define __USER_CS        (0x23)
491
#define __USER_DS        (0x2B)
492

    
493
struct target_pt_regs {
494
        long ebx;
495
        long ecx;
496
        long edx;
497
        long esi;
498
        long edi;
499
        long ebp;
500
        long eax;
501
        int  xds;
502
        int  xes;
503
        long orig_eax;
504
        long eip;
505
        int  xcs;
506
        long eflags;
507
        long esp;
508
        int  xss;
509
};
510

    
511
/* ioctls */
512

    
513
/*
514
 * The following is for compatibility across the various Linux
515
 * platforms.  The i386 ioctl numbering scheme doesn't really enforce
516
 * a type field.  De facto, however, the top 8 bits of the lower 16
517
 * bits are indeed used as a type field, so we might just as well make
518
 * this explicit here.  Please be sure to use the decoding macros
519
 * below from now on.
520
 */
521
#define TARGET_IOC_NRBITS        8
522
#define TARGET_IOC_TYPEBITS        8
523
#define TARGET_IOC_SIZEBITS        14
524
#define TARGET_IOC_DIRBITS        2
525

    
526
#define TARGET_IOC_NRMASK        ((1 << TARGET_IOC_NRBITS)-1)
527
#define TARGET_IOC_TYPEMASK        ((1 << TARGET_IOC_TYPEBITS)-1)
528
#define TARGET_IOC_SIZEMASK        ((1 << TARGET_IOC_SIZEBITS)-1)
529
#define TARGET_IOC_DIRMASK        ((1 << TARGET_IOC_DIRBITS)-1)
530

    
531
#define TARGET_IOC_NRSHIFT        0
532
#define TARGET_IOC_TYPESHIFT        (TARGET_IOC_NRSHIFT+TARGET_IOC_NRBITS)
533
#define TARGET_IOC_SIZESHIFT        (TARGET_IOC_TYPESHIFT+TARGET_IOC_TYPEBITS)
534
#define TARGET_IOC_DIRSHIFT        (TARGET_IOC_SIZESHIFT+TARGET_IOC_SIZEBITS)
535

    
536
/*
537
 * Direction bits.
538
 */
539
#define TARGET_IOC_NONE        0U
540
#define TARGET_IOC_WRITE        1U
541
#define TARGET_IOC_READ        2U
542

    
543
#define TARGET_IOC(dir,type,nr,size) \
544
        (((dir)  << TARGET_IOC_DIRSHIFT) | \
545
         ((type) << TARGET_IOC_TYPESHIFT) | \
546
         ((nr)   << TARGET_IOC_NRSHIFT) | \
547
         ((size) << TARGET_IOC_SIZESHIFT))
548

    
549
/* used to create numbers */
550
#define TARGET_IO(type,nr)                TARGET_IOC(TARGET_IOC_NONE,(type),(nr),0)
551
#define TARGET_IOR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ,(type),(nr),sizeof(size))
552
#define TARGET_IOW(type,nr,size)        TARGET_IOC(TARGET_IOC_WRITE,(type),(nr),sizeof(size))
553
#define TARGET_IOWR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ|TARGET_IOC_WRITE,(type),(nr),sizeof(size))
554

    
555
/* 0x54 is just a magic number to make these relatively unique ('T') */
556

    
557
#define TARGET_TCGETS                0x5401
558
#define TARGET_TCSETS                0x5402
559
#define TARGET_TCSETSW                0x5403
560
#define TARGET_TCSETSF                0x5404
561
#define TARGET_TCGETA                0x5405
562
#define TARGET_TCSETA                0x5406
563
#define TARGET_TCSETAW                0x5407
564
#define TARGET_TCSETAF                0x5408
565
#define TARGET_TCSBRK                0x5409
566
#define TARGET_TCXONC                0x540A
567
#define TARGET_TCFLSH                0x540B
568
#define TARGET_TIOCEXCL        0x540C
569
#define TARGET_TIOCNXCL        0x540D
570
#define TARGET_TIOCSCTTY        0x540E
571
#define TARGET_TIOCGPGRP        0x540F
572
#define TARGET_TIOCSPGRP        0x5410
573
#define TARGET_TIOCOUTQ        0x5411
574
#define TARGET_TIOCSTI                0x5412
575
#define TARGET_TIOCGWINSZ        0x5413
576
#define TARGET_TIOCSWINSZ        0x5414
577
#define TARGET_TIOCMGET        0x5415
578
#define TARGET_TIOCMBIS        0x5416
579
#define TARGET_TIOCMBIC        0x5417
580
#define TARGET_TIOCMSET        0x5418
581
#define TARGET_TIOCGSOFTCAR        0x5419
582
#define TARGET_TIOCSSOFTCAR        0x541A
583
#define TARGET_FIONREAD        0x541B
584
#define TARGET_TIOCINQ                FIONREAD
585
#define TARGET_TIOCLINUX        0x541C
586
#define TARGET_TIOCCONS        0x541D
587
#define TARGET_TIOCGSERIAL        0x541E
588
#define TARGET_TIOCSSERIAL        0x541F
589
#define TARGET_TIOCPKT                0x5420
590
#define TARGET_FIONBIO                0x5421
591
#define TARGET_TIOCNOTTY        0x5422
592
#define TARGET_TIOCSETD        0x5423
593
#define TARGET_TIOCGETD        0x5424
594
#define TARGET_TCSBRKP                0x5425        /* Needed for POSIX tcsendbreak() */
595
#define TARGET_TIOCTTYGSTRUCT        0x5426  /* For debugging only */
596
#define TARGET_TIOCSBRK        0x5427  /* BSD compatibility */
597
#define TARGET_TIOCCBRK        0x5428  /* BSD compatibility */
598
#define TARGET_TIOCGSID        0x5429  /* Return the session ID of FD */
599
#define TARGET_TIOCGPTN        TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
600
#define TARGET_TIOCSPTLCK        TARGET_IOW('T',0x31, int)  /* Lock/unlock Pty */
601

    
602
#define TARGET_FIONCLEX        0x5450  /* these numbers need to be adjusted. */
603
#define TARGET_FIOCLEX                0x5451
604
#define TARGET_FIOASYNC        0x5452
605
#define TARGET_TIOCSERCONFIG        0x5453
606
#define TARGET_TIOCSERGWILD        0x5454
607
#define TARGET_TIOCSERSWILD        0x5455
608
#define TARGET_TIOCGLCKTRMIOS        0x5456
609
#define TARGET_TIOCSLCKTRMIOS        0x5457
610
#define TARGET_TIOCSERGSTRUCT        0x5458 /* For debugging only */
611
#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
612
#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
613
#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
614

    
615
#define TARGET_TIOCMIWAIT        0x545C        /* wait for a change on serial input line(s) */
616
#define TARGET_TIOCGICOUNT        0x545D        /* read serial port inline interrupt counts */
617
#define TARGET_TIOCGHAYESESP   0x545E  /* Get Hayes ESP configuration */
618
#define TARGET_TIOCSHAYESESP   0x545F  /* Set Hayes ESP configuration */
619

    
620
/* Used for packet mode */
621
#define TARGET_TIOCPKT_DATA                 0
622
#define TARGET_TIOCPKT_FLUSHREAD         1
623
#define TARGET_TIOCPKT_FLUSHWRITE         2
624
#define TARGET_TIOCPKT_STOP                 4
625
#define TARGET_TIOCPKT_START                 8
626
#define TARGET_TIOCPKT_NOSTOP                16
627
#define TARGET_TIOCPKT_DOSTOP                32
628

    
629
#define TARGET_TIOCSER_TEMT    0x01        /* Transmitter physically empty */
630

    
631
/* from asm/termbits.h */
632

    
633
#define TARGET_NCCS 19
634

    
635
struct target_termios {
636
    unsigned int c_iflag;               /* input mode flags */
637
    unsigned int c_oflag;               /* output mode flags */
638
    unsigned int c_cflag;               /* control mode flags */
639
    unsigned int c_lflag;               /* local mode flags */
640
    unsigned char c_line;                    /* line discipline */
641
    unsigned char c_cc[TARGET_NCCS];                /* control characters */
642
};
643

    
644
/* c_iflag bits */
645
#define TARGET_IGNBRK  0000001
646
#define TARGET_BRKINT  0000002
647
#define TARGET_IGNPAR  0000004
648
#define TARGET_PARMRK  0000010
649
#define TARGET_INPCK   0000020
650
#define TARGET_ISTRIP  0000040
651
#define TARGET_INLCR   0000100
652
#define TARGET_IGNCR   0000200
653
#define TARGET_ICRNL   0000400
654
#define TARGET_IUCLC   0001000
655
#define TARGET_IXON    0002000
656
#define TARGET_IXANY   0004000
657
#define TARGET_IXOFF   0010000
658
#define TARGET_IMAXBEL 0020000
659

    
660
/* c_oflag bits */
661
#define TARGET_OPOST   0000001
662
#define TARGET_OLCUC   0000002
663
#define TARGET_ONLCR   0000004
664
#define TARGET_OCRNL   0000010
665
#define TARGET_ONOCR   0000020
666
#define TARGET_ONLRET  0000040
667
#define TARGET_OFILL   0000100
668
#define TARGET_OFDEL   0000200
669
#define TARGET_NLDLY   0000400
670
#define   TARGET_NL0   0000000
671
#define   TARGET_NL1   0000400
672
#define TARGET_CRDLY   0003000
673
#define   TARGET_CR0   0000000
674
#define   TARGET_CR1   0001000
675
#define   TARGET_CR2   0002000
676
#define   TARGET_CR3   0003000
677
#define TARGET_TABDLY  0014000
678
#define   TARGET_TAB0  0000000
679
#define   TARGET_TAB1  0004000
680
#define   TARGET_TAB2  0010000
681
#define   TARGET_TAB3  0014000
682
#define   TARGET_XTABS 0014000
683
#define TARGET_BSDLY   0020000
684
#define   TARGET_BS0   0000000
685
#define   TARGET_BS1   0020000
686
#define TARGET_VTDLY   0040000
687
#define   TARGET_VT0   0000000
688
#define   TARGET_VT1   0040000
689
#define TARGET_FFDLY   0100000
690
#define   TARGET_FF0   0000000
691
#define   TARGET_FF1   0100000
692

    
693
/* c_cflag bit meaning */
694
#define TARGET_CBAUD   0010017
695
#define  TARGET_B0     0000000         /* hang up */
696
#define  TARGET_B50    0000001
697
#define  TARGET_B75    0000002
698
#define  TARGET_B110   0000003
699
#define  TARGET_B134   0000004
700
#define  TARGET_B150   0000005
701
#define  TARGET_B200   0000006
702
#define  TARGET_B300   0000007
703
#define  TARGET_B600   0000010
704
#define  TARGET_B1200  0000011
705
#define  TARGET_B1800  0000012
706
#define  TARGET_B2400  0000013
707
#define  TARGET_B4800  0000014
708
#define  TARGET_B9600  0000015
709
#define  TARGET_B19200 0000016
710
#define  TARGET_B38400 0000017
711
#define TARGET_EXTA B19200
712
#define TARGET_EXTB B38400
713
#define TARGET_CSIZE   0000060
714
#define   TARGET_CS5   0000000
715
#define   TARGET_CS6   0000020
716
#define   TARGET_CS7   0000040
717
#define   TARGET_CS8   0000060
718
#define TARGET_CSTOPB  0000100
719
#define TARGET_CREAD   0000200
720
#define TARGET_PARENB  0000400
721
#define TARGET_PARODD  0001000
722
#define TARGET_HUPCL   0002000
723
#define TARGET_CLOCAL  0004000
724
#define TARGET_CBAUDEX 0010000
725
#define  TARGET_B57600  0010001
726
#define  TARGET_B115200 0010002
727
#define  TARGET_B230400 0010003
728
#define  TARGET_B460800 0010004
729
#define TARGET_CIBAUD    002003600000  /* input baud rate (not used) */
730
#define TARGET_CRTSCTS   020000000000          /* flow control */
731

    
732
/* c_lflag bits */
733
#define TARGET_ISIG    0000001
734
#define TARGET_ICANON  0000002
735
#define TARGET_XCASE   0000004
736
#define TARGET_ECHO    0000010
737
#define TARGET_ECHOE   0000020
738
#define TARGET_ECHOK   0000040
739
#define TARGET_ECHONL  0000100
740
#define TARGET_NOFLSH  0000200
741
#define TARGET_TOSTOP  0000400
742
#define TARGET_ECHOCTL 0001000
743
#define TARGET_ECHOPRT 0002000
744
#define TARGET_ECHOKE  0004000
745
#define TARGET_FLUSHO  0010000
746
#define TARGET_PENDIN  0040000
747
#define TARGET_IEXTEN  0100000
748

    
749
/* c_cc character offsets */
750
#define TARGET_VINTR        0
751
#define TARGET_VQUIT        1
752
#define TARGET_VERASE        2
753
#define TARGET_VKILL        3
754
#define TARGET_VEOF        4
755
#define TARGET_VTIME        5
756
#define TARGET_VMIN        6
757
#define TARGET_VSWTC        7
758
#define TARGET_VSTART        8
759
#define TARGET_VSTOP        9
760
#define TARGET_VSUSP        10
761
#define TARGET_VEOL        11
762
#define TARGET_VREPRINT        12
763
#define TARGET_VDISCARD        13
764
#define TARGET_VWERASE        14
765
#define TARGET_VLNEXT        15
766
#define TARGET_VEOL2        16
767

    
768
#define TARGET_LDT_ENTRIES      8192
769
#define TARGET_LDT_ENTRY_SIZE        8
770

    
771
#define TARGET_GDT_ENTRY_TLS_ENTRIES   3
772
#define TARGET_GDT_ENTRY_TLS_MIN       6
773
#define TARGET_GDT_ENTRY_TLS_MAX       (TARGET_GDT_ENTRY_TLS_MIN + TARGET_GDT_ENTRY_TLS_ENTRIES - 1)
774

    
775
struct target_modify_ldt_ldt_s {
776
    unsigned int  entry_number;
777
    target_ulong base_addr;
778
    unsigned int limit;
779
    unsigned int flags;
780
};
781

    
782

    
783
/* vm86 defines */
784

    
785
#define TARGET_BIOSSEG                0x0f000
786

    
787
#define TARGET_CPU_086                0
788
#define TARGET_CPU_186                1
789
#define TARGET_CPU_286                2
790
#define TARGET_CPU_386                3
791
#define TARGET_CPU_486                4
792
#define TARGET_CPU_586                5
793

    
794
#define TARGET_VM86_SIGNAL        0        /* return due to signal */
795
#define TARGET_VM86_UNKNOWN        1        /* unhandled GP fault - IO-instruction or similar */
796
#define TARGET_VM86_INTx        2        /* int3/int x instruction (ARG = x) */
797
#define TARGET_VM86_STI        3        /* sti/popf/iret instruction enabled virtual interrupts */
798

    
799
/*
800
 * Additional return values when invoking new vm86()
801
 */
802
#define TARGET_VM86_PICRETURN        4        /* return due to pending PIC request */
803
#define TARGET_VM86_TRAP        6        /* return due to DOS-debugger request */
804

    
805
/*
806
 * function codes when invoking new vm86()
807
 */
808
#define TARGET_VM86_PLUS_INSTALL_CHECK        0
809
#define TARGET_VM86_ENTER                1
810
#define TARGET_VM86_ENTER_NO_BYPASS        2
811
#define        TARGET_VM86_REQUEST_IRQ        3
812
#define TARGET_VM86_FREE_IRQ                4
813
#define TARGET_VM86_GET_IRQ_BITS        5
814
#define TARGET_VM86_GET_AND_RESET_IRQ        6
815

    
816
/*
817
 * This is the stack-layout seen by the user space program when we have
818
 * done a translation of "SAVE_ALL" from vm86 mode. The real kernel layout
819
 * is 'kernel_vm86_regs' (see below).
820
 */
821

    
822
struct target_vm86_regs {
823
/*
824
 * normal regs, with special meaning for the segment descriptors..
825
 */
826
        target_long ebx;
827
        target_long ecx;
828
        target_long edx;
829
        target_long esi;
830
        target_long edi;
831
        target_long ebp;
832
        target_long eax;
833
        target_long __null_ds;
834
        target_long __null_es;
835
        target_long __null_fs;
836
        target_long __null_gs;
837
        target_long orig_eax;
838
        target_long eip;
839
        unsigned short cs, __csh;
840
        target_long eflags;
841
        target_long esp;
842
        unsigned short ss, __ssh;
843
/*
844
 * these are specific to v86 mode:
845
 */
846
        unsigned short es, __esh;
847
        unsigned short ds, __dsh;
848
        unsigned short fs, __fsh;
849
        unsigned short gs, __gsh;
850
};
851

    
852
struct target_revectored_struct {
853
        target_ulong __map[8];                        /* 256 bits */
854
};
855

    
856
struct target_vm86_struct {
857
        struct target_vm86_regs regs;
858
        target_ulong flags;
859
        target_ulong screen_bitmap;
860
        target_ulong cpu_type;
861
        struct target_revectored_struct int_revectored;
862
        struct target_revectored_struct int21_revectored;
863
};
864

    
865
/*
866
 * flags masks
867
 */
868
#define TARGET_VM86_SCREEN_BITMAP        0x0001
869

    
870
struct target_vm86plus_info_struct {
871
        target_ulong flags;
872
#define TARGET_force_return_for_pic (1 << 0)
873
#define TARGET_vm86dbg_active       (1 << 1)  /* for debugger */
874
#define TARGET_vm86dbg_TFpendig     (1 << 2)  /* for debugger */
875
#define TARGET_is_vm86pus           (1 << 31) /* for vm86 internal use */
876
        unsigned char vm86dbg_intxxtab[32];   /* for debugger */
877
};
878

    
879
struct target_vm86plus_struct {
880
        struct target_vm86_regs regs;
881
        target_ulong flags;
882
        target_ulong screen_bitmap;
883
        target_ulong cpu_type;
884
        struct target_revectored_struct int_revectored;
885
        struct target_revectored_struct int21_revectored;
886
        struct target_vm86plus_info_struct vm86plus;
887
};
888

    
889
/* ipcs */
890

    
891
#define TARGET_SEMOP           1
892
#define TARGET_SEMGET          2
893
#define TARGET_SEMCTL          3 
894
#define TARGET_MSGSND          11 
895
#define TARGET_MSGRCV          12
896
#define TARGET_MSGGET          13
897
#define TARGET_MSGCTL          14
898
#define TARGET_SHMAT           21
899
#define TARGET_SHMDT           22
900
#define TARGET_SHMGET          23
901
#define TARGET_SHMCTL          24
902

    
903
struct target_msgbuf {
904
        int mtype;
905
        char mtext[1];
906
};
907

    
908
struct target_ipc_kludge {
909
        unsigned int        msgp;        /* Really (struct msgbuf *) */
910
        int msgtyp;
911
};        
912

    
913
struct alpha_msgbuf {
914
        long        mtype;
915
        char        mtext[4096];
916
};
917

    
918
struct target_ipc_perm {
919
        int        key;
920
        unsigned short        uid;
921
        unsigned short        gid;
922
        unsigned short        cuid;
923
        unsigned short        cgid;
924
        unsigned short        mode;
925
        unsigned short        seq;
926
};
927

    
928
struct target_msqid_ds {
929
        struct target_ipc_perm        msg_perm;
930
        unsigned int                msg_first;        /* really struct target_msg* */
931
        unsigned int                msg_last;        /* really struct target_msg* */
932
        unsigned int                msg_stime;        /* really target_time_t */
933
        unsigned int                msg_rtime;        /* really target_time_t */
934
        unsigned int                msg_ctime;        /* really target_time_t */
935
        unsigned int                wwait;                /* really struct wait_queue* */
936
        unsigned int                rwait;                /* really struct wait_queue* */
937
        unsigned short                msg_cbytes;
938
        unsigned short                msg_qnum;
939
        unsigned short                msg_qbytes;
940
        unsigned short                msg_lspid;
941
        unsigned short                msg_lrpid;
942
};
943

    
944
struct target_shmid_ds {
945
        struct target_ipc_perm        shm_perm;
946
        int                        shm_segsz;
947
        unsigned int                shm_atime;        /* really target_time_t */
948
        unsigned int                shm_dtime;        /* really target_time_t */
949
        unsigned int                shm_ctime;        /* really target_time_t */
950
        unsigned short                shm_cpid;
951
        unsigned short                shm_lpid;
952
        short                        shm_nattch;
953
        unsigned short                shm_npages;
954
        unsigned long                *shm_pages;
955
        void                         *attaches;        /* really struct shm_desc * */
956
};
957

    
958
#define TARGET_IPC_RMID        0
959
#define TARGET_IPC_SET        1
960
#define TARGET_IPC_STAT        2
961

    
962
union target_semun {
963
    int val;
964
    unsigned int buf;        /* really struct semid_ds * */
965
    unsigned int array; /* really unsigned short * */
966
    unsigned int __buf;        /* really struct seminfo * */
967
    unsigned int __pad;        /* really void* */
968
};
969

    
970
#define TARGET_F_DUPFD         0       /* dup */
971
#define TARGET_F_GETFD         1       /* get close_on_exec */
972
#define TARGET_F_SETFD         2       /* set/clear close_on_exec */
973
#define TARGET_F_GETFL         3       /* get file->f_flags */
974
#define TARGET_F_SETFL         4       /* set file->f_flags */
975
#define TARGET_F_GETLK         5
976
#define TARGET_F_SETLK         6
977
#define TARGET_F_SETLKW        7
978

    
979
#define TARGET_F_SETOWN        8       /*  for sockets. */
980
#define TARGET_F_GETOWN        9       /*  for sockets. */
981
#define TARGET_F_SETSIG        10      /*  for sockets. */
982
#define TARGET_F_GETSIG        11      /*  for sockets. */
983

    
984
#define TARGET_F_GETLK64       12      /*  using 'struct flock64' */
985
#define TARGET_F_SETLK64       13
986
#define TARGET_F_SETLKW64      14
987

    
988
struct target_flock {
989
        short l_type;
990
        short l_whence;
991
        target_ulong l_start;
992
        target_ulong l_len;
993
        int l_pid;
994
};
995

    
996
struct target_flock64 {
997
        short  l_type;
998
        short  l_whence;
999
        unsigned long long l_start;
1000
        unsigned long long l_len;
1001
        int  l_pid;
1002
};
1003

    
1004
/* soundcard defines (XXX: move them to generic file syscall_defs.h) */
1005

    
1006
#define TARGET_SNDCTL_COPR_HALT           0xc0144307
1007
#define TARGET_SNDCTL_COPR_LOAD           0xcfb04301
1008
#define TARGET_SNDCTL_COPR_RCODE          0xc0144303
1009
#define TARGET_SNDCTL_COPR_RCVMSG         0x8fa44309
1010
#define TARGET_SNDCTL_COPR_RDATA          0xc0144302
1011
#define TARGET_SNDCTL_COPR_RESET          0x00004300
1012
#define TARGET_SNDCTL_COPR_RUN            0xc0144306
1013
#define TARGET_SNDCTL_COPR_SENDMSG        0xcfa44308
1014
#define TARGET_SNDCTL_COPR_WCODE          0x40144305
1015
#define TARGET_SNDCTL_COPR_WDATA          0x40144304
1016
#define TARGET_SNDCTL_DSP_CHANNELS        0xc0045006
1017
#define TARGET_SNDCTL_DSP_GETBLKSIZE      0xc0045004
1018
#define TARGET_SNDCTL_DSP_GETCAPS         0x8004500f
1019
#define TARGET_SNDCTL_DSP_GETFMTS         0x8004500b
1020
#define TARGET_SNDCTL_DSP_GETIPTR         0x800c5011
1021
#define TARGET_SNDCTL_DSP_GETISPACE       0x8010500d
1022
#define TARGET_SNDCTL_DSP_GETOPTR         0x800c5012
1023
#define TARGET_SNDCTL_DSP_GETOSPACE       0x8010500c
1024
#define TARGET_SNDCTL_DSP_GETTRIGGER      0x80045010
1025
#define TARGET_SNDCTL_DSP_MAPINBUF        0x80085013
1026
#define TARGET_SNDCTL_DSP_MAPOUTBUF       0x80085014
1027
#define TARGET_SNDCTL_DSP_NONBLOCK        0x0000500e
1028
#define TARGET_SNDCTL_DSP_POST            0x00005008
1029
#define TARGET_SNDCTL_DSP_RESET           0x00005000
1030
#define TARGET_SNDCTL_DSP_SAMPLESIZE      0xc0045005
1031
#define TARGET_SNDCTL_DSP_SETDUPLEX       0x00005016
1032
#define TARGET_SNDCTL_DSP_SETFMT          0xc0045005
1033
#define TARGET_SNDCTL_DSP_SETFRAGMENT     0xc004500a
1034
#define TARGET_SNDCTL_DSP_SETSYNCRO       0x00005015
1035
#define TARGET_SNDCTL_DSP_SETTRIGGER      0x40045010
1036
#define TARGET_SNDCTL_DSP_SPEED           0xc0045002
1037
#define TARGET_SNDCTL_DSP_STEREO          0xc0045003
1038
#define TARGET_SNDCTL_DSP_SUBDIVIDE       0xc0045009
1039
#define TARGET_SNDCTL_DSP_SYNC            0x00005001
1040
#define TARGET_SNDCTL_FM_4OP_ENABLE       0x4004510f
1041
#define TARGET_SNDCTL_FM_LOAD_INSTR       0x40285107
1042
#define TARGET_SNDCTL_MIDI_INFO           0xc074510c
1043
#define TARGET_SNDCTL_MIDI_MPUCMD         0xc0216d02
1044
#define TARGET_SNDCTL_MIDI_MPUMODE        0xc0046d01
1045
#define TARGET_SNDCTL_MIDI_PRETIME        0xc0046d00
1046
#define TARGET_SNDCTL_PMGR_ACCESS         0xcfb85110
1047
#define TARGET_SNDCTL_PMGR_IFACE          0xcfb85001
1048
#define TARGET_SNDCTL_SEQ_CTRLRATE        0xc0045103
1049
#define TARGET_SNDCTL_SEQ_GETINCOUNT      0x80045105
1050
#define TARGET_SNDCTL_SEQ_GETOUTCOUNT     0x80045104
1051
#define TARGET_SNDCTL_SEQ_NRMIDIS         0x8004510b
1052
#define TARGET_SNDCTL_SEQ_NRSYNTHS        0x8004510a
1053
#define TARGET_SNDCTL_SEQ_OUTOFBAND       0x40085112
1054
#define TARGET_SNDCTL_SEQ_PANIC           0x00005111
1055
#define TARGET_SNDCTL_SEQ_PERCMODE        0x40045106
1056
#define TARGET_SNDCTL_SEQ_RESET           0x00005100
1057
#define TARGET_SNDCTL_SEQ_RESETSAMPLES    0x40045109
1058
#define TARGET_SNDCTL_SEQ_SYNC            0x00005101
1059
#define TARGET_SNDCTL_SEQ_TESTMIDI        0x40045108
1060
#define TARGET_SNDCTL_SEQ_THRESHOLD       0x4004510d
1061
#define TARGET_SNDCTL_SEQ_TRESHOLD        0x4004510d
1062
#define TARGET_SNDCTL_SYNTH_INFO          0xc08c5102
1063
#define TARGET_SNDCTL_SYNTH_MEMAVL        0xc004510e
1064
#define TARGET_SNDCTL_TMR_CONTINUE        0x00005404
1065
#define TARGET_SNDCTL_TMR_METRONOME       0x40045407
1066
#define TARGET_SNDCTL_TMR_SELECT          0x40045408
1067
#define TARGET_SNDCTL_TMR_SOURCE          0xc0045406
1068
#define TARGET_SNDCTL_TMR_START           0x00005402
1069
#define TARGET_SNDCTL_TMR_STOP            0x00005403
1070
#define TARGET_SNDCTL_TMR_TEMPO           0xc0045405
1071
#define TARGET_SNDCTL_TMR_TIMEBASE        0xc0045401
1072
#define TARGET_SOUND_PCM_WRITE_FILTER     0xc0045007
1073
#define TARGET_SOUND_PCM_READ_RATE        0x80045002
1074
#define TARGET_SOUND_PCM_READ_CHANNELS    0x80045006
1075
#define TARGET_SOUND_PCM_READ_BITS        0x80045005
1076
#define TARGET_SOUND_PCM_READ_FILTER      0x80045007
1077
#define TARGET_SOUND_MIXER_INFO           0x80304d65
1078
#define TARGET_SOUND_MIXER_ACCESS         0xc0804d66
1079
#define TARGET_SOUND_MIXER_PRIVATE1       0xc0044d6f
1080
#define TARGET_SOUND_MIXER_PRIVATE2       0xc0044d70
1081
#define TARGET_SOUND_MIXER_PRIVATE3       0xc0044d71
1082
#define TARGET_SOUND_MIXER_PRIVATE4       0xc0044d72
1083
#define TARGET_SOUND_MIXER_PRIVATE5       0xc0044d73
1084
#define TARGET_SOUND_MIXER_READ_VOLUME    0x80044d00
1085
#define TARGET_SOUND_MIXER_READ_BASS      0x80044d01
1086
#define TARGET_SOUND_MIXER_READ_TREBLE    0x80044d02
1087
#define TARGET_SOUND_MIXER_READ_SYNTH     0x80044d03
1088
#define TARGET_SOUND_MIXER_READ_PCM       0x80044d04
1089
#define TARGET_SOUND_MIXER_READ_SPEAKER   0x80044d05
1090
#define TARGET_SOUND_MIXER_READ_LINE      0x80044d06
1091
#define TARGET_SOUND_MIXER_READ_MIC       0x80044d07
1092
#define TARGET_SOUND_MIXER_READ_CD        0x80044d08
1093
#define TARGET_SOUND_MIXER_READ_IMIX      0x80044d09
1094
#define TARGET_SOUND_MIXER_READ_ALTPCM    0x80044d0a
1095
#define TARGET_SOUND_MIXER_READ_RECLEV    0x80044d0b
1096
#define TARGET_SOUND_MIXER_READ_IGAIN     0x80044d0c
1097
#define TARGET_SOUND_MIXER_READ_OGAIN     0x80044d0d
1098
#define TARGET_SOUND_MIXER_READ_LINE1     0x80044d0e
1099
#define TARGET_SOUND_MIXER_READ_LINE2     0x80044d0f
1100
#define TARGET_SOUND_MIXER_READ_LINE3     0x80044d10
1101
#define TARGET_SOUND_MIXER_READ_MUTE      0x80044d1f
1102
#define TARGET_SOUND_MIXER_READ_ENHANCE   0x80044d1f
1103
#define TARGET_SOUND_MIXER_READ_LOUD      0x80044d1f
1104
#define TARGET_SOUND_MIXER_READ_RECSRC    0x80044dff
1105
#define TARGET_SOUND_MIXER_READ_DEVMASK   0x80044dfe
1106
#define TARGET_SOUND_MIXER_READ_RECMASK   0x80044dfd
1107
#define TARGET_SOUND_MIXER_READ_STEREODEVS  0x80044dfb
1108
#define TARGET_SOUND_MIXER_READ_CAPS      0x80044dfc
1109
#define TARGET_SOUND_MIXER_WRITE_VOLUME   0xc0044d00
1110
#define TARGET_SOUND_MIXER_WRITE_BASS     0xc0044d01
1111
#define TARGET_SOUND_MIXER_WRITE_TREBLE   0xc0044d02
1112
#define TARGET_SOUND_MIXER_WRITE_SYNTH    0xc0044d03
1113
#define TARGET_SOUND_MIXER_WRITE_PCM      0xc0044d04
1114
#define TARGET_SOUND_MIXER_WRITE_SPEAKER  0xc0044d05
1115
#define TARGET_SOUND_MIXER_WRITE_LINE     0xc0044d06
1116
#define TARGET_SOUND_MIXER_WRITE_MIC      0xc0044d07
1117
#define TARGET_SOUND_MIXER_WRITE_CD       0xc0044d08
1118
#define TARGET_SOUND_MIXER_WRITE_IMIX     0xc0044d09
1119
#define TARGET_SOUND_MIXER_WRITE_ALTPCM   0xc0044d0a
1120
#define TARGET_SOUND_MIXER_WRITE_RECLEV   0xc0044d0b
1121
#define TARGET_SOUND_MIXER_WRITE_IGAIN    0xc0044d0c
1122
#define TARGET_SOUND_MIXER_WRITE_OGAIN    0xc0044d0d
1123
#define TARGET_SOUND_MIXER_WRITE_LINE1    0xc0044d0e
1124
#define TARGET_SOUND_MIXER_WRITE_LINE2    0xc0044d0f
1125
#define TARGET_SOUND_MIXER_WRITE_LINE3    0xc0044d10
1126
#define TARGET_SOUND_MIXER_WRITE_MUTE     0xc0044d1f
1127
#define TARGET_SOUND_MIXER_WRITE_ENHANCE  0xc0044d1f
1128
#define TARGET_SOUND_MIXER_WRITE_LOUD     0xc0044d1f
1129
#define TARGET_SOUND_MIXER_WRITE_RECSRC   0xc0044dff
1130

    
1131
#define TARGET_VFAT_IOCTL_READDIR_BOTH    0x82187201
1132
#define TARGET_VFAT_IOCTL_READDIR_SHORT   0x82187202
1133

    
1134
#define TARGET_SIOCATMARK        0x8905