Statistics
| Branch: | Revision:

root / syscall-i386.h @ c50c0c3f

History | View | Annotate | Download (35.8 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
/* default linux values for the selectors */
484
#define __USER_CS        (0x23)
485
#define __USER_DS        (0x2B)
486

    
487
struct target_pt_regs {
488
        long ebx;
489
        long ecx;
490
        long edx;
491
        long esi;
492
        long edi;
493
        long ebp;
494
        long eax;
495
        int  xds;
496
        int  xes;
497
        long orig_eax;
498
        long eip;
499
        int  xcs;
500
        long eflags;
501
        long esp;
502
        int  xss;
503
};
504

    
505
/* ioctls */
506

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

    
520
#define TARGET_IOC_NRMASK        ((1 << TARGET_IOC_NRBITS)-1)
521
#define TARGET_IOC_TYPEMASK        ((1 << TARGET_IOC_TYPEBITS)-1)
522
#define TARGET_IOC_SIZEMASK        ((1 << TARGET_IOC_SIZEBITS)-1)
523
#define TARGET_IOC_DIRMASK        ((1 << TARGET_IOC_DIRBITS)-1)
524

    
525
#define TARGET_IOC_NRSHIFT        0
526
#define TARGET_IOC_TYPESHIFT        (TARGET_IOC_NRSHIFT+TARGET_IOC_NRBITS)
527
#define TARGET_IOC_SIZESHIFT        (TARGET_IOC_TYPESHIFT+TARGET_IOC_TYPEBITS)
528
#define TARGET_IOC_DIRSHIFT        (TARGET_IOC_SIZESHIFT+TARGET_IOC_SIZEBITS)
529

    
530
/*
531
 * Direction bits.
532
 */
533
#define TARGET_IOC_NONE        0U
534
#define TARGET_IOC_WRITE        1U
535
#define TARGET_IOC_READ        2U
536

    
537
#define TARGET_IOC(dir,type,nr,size) \
538
        (((dir)  << TARGET_IOC_DIRSHIFT) | \
539
         ((type) << TARGET_IOC_TYPESHIFT) | \
540
         ((nr)   << TARGET_IOC_NRSHIFT) | \
541
         ((size) << TARGET_IOC_SIZESHIFT))
542

    
543
/* used to create numbers */
544
#define TARGET_IO(type,nr)                TARGET_IOC(TARGET_IOC_NONE,(type),(nr),0)
545
#define TARGET_IOR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ,(type),(nr),sizeof(size))
546
#define TARGET_IOW(type,nr,size)        TARGET_IOC(TARGET_IOC_WRITE,(type),(nr),sizeof(size))
547
#define TARGET_IOWR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ|TARGET_IOC_WRITE,(type),(nr),sizeof(size))
548

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

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

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

    
609
#define TARGET_TIOCMIWAIT        0x545C        /* wait for a change on serial input line(s) */
610
#define TARGET_TIOCGICOUNT        0x545D        /* read serial port inline interrupt counts */
611
#define TARGET_TIOCGHAYESESP   0x545E  /* Get Hayes ESP configuration */
612
#define TARGET_TIOCSHAYESESP   0x545F  /* Set Hayes ESP configuration */
613

    
614
/* Used for packet mode */
615
#define TARGET_TIOCPKT_DATA                 0
616
#define TARGET_TIOCPKT_FLUSHREAD         1
617
#define TARGET_TIOCPKT_FLUSHWRITE         2
618
#define TARGET_TIOCPKT_STOP                 4
619
#define TARGET_TIOCPKT_START                 8
620
#define TARGET_TIOCPKT_NOSTOP                16
621
#define TARGET_TIOCPKT_DOSTOP                32
622

    
623
#define TARGET_TIOCSER_TEMT    0x01        /* Transmitter physically empty */
624

    
625
/* from asm/termbits.h */
626

    
627
#define TARGET_NCCS 19
628

    
629
struct target_termios {
630
    unsigned int c_iflag;               /* input mode flags */
631
    unsigned int c_oflag;               /* output mode flags */
632
    unsigned int c_cflag;               /* control mode flags */
633
    unsigned int c_lflag;               /* local mode flags */
634
    unsigned char c_line;                    /* line discipline */
635
    unsigned char c_cc[TARGET_NCCS];                /* control characters */
636
};
637

    
638
/* c_iflag bits */
639
#define TARGET_IGNBRK  0000001
640
#define TARGET_BRKINT  0000002
641
#define TARGET_IGNPAR  0000004
642
#define TARGET_PARMRK  0000010
643
#define TARGET_INPCK   0000020
644
#define TARGET_ISTRIP  0000040
645
#define TARGET_INLCR   0000100
646
#define TARGET_IGNCR   0000200
647
#define TARGET_ICRNL   0000400
648
#define TARGET_IUCLC   0001000
649
#define TARGET_IXON    0002000
650
#define TARGET_IXANY   0004000
651
#define TARGET_IXOFF   0010000
652
#define TARGET_IMAXBEL 0020000
653

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

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

    
726
/* c_lflag bits */
727
#define TARGET_ISIG    0000001
728
#define TARGET_ICANON  0000002
729
#define TARGET_XCASE   0000004
730
#define TARGET_ECHO    0000010
731
#define TARGET_ECHOE   0000020
732
#define TARGET_ECHOK   0000040
733
#define TARGET_ECHONL  0000100
734
#define TARGET_NOFLSH  0000200
735
#define TARGET_TOSTOP  0000400
736
#define TARGET_ECHOCTL 0001000
737
#define TARGET_ECHOPRT 0002000
738
#define TARGET_ECHOKE  0004000
739
#define TARGET_FLUSHO  0010000
740
#define TARGET_PENDIN  0040000
741
#define TARGET_IEXTEN  0100000
742

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

    
762
#define TARGET_LDT_ENTRIES      8192
763
#define TARGET_LDT_ENTRY_SIZE        8
764

    
765
#define TARGET_GDT_ENTRY_TLS_ENTRIES   3
766
#define TARGET_GDT_ENTRY_TLS_MIN       6
767
#define TARGET_GDT_ENTRY_TLS_MAX       (TARGET_GDT_ENTRY_TLS_MIN + TARGET_GDT_ENTRY_TLS_ENTRIES - 1)
768

    
769
struct target_modify_ldt_ldt_s {
770
    unsigned int  entry_number;
771
    target_ulong base_addr;
772
    unsigned int limit;
773
    unsigned int flags;
774
};
775

    
776

    
777
/* vm86 defines */
778

    
779
#define TARGET_BIOSSEG                0x0f000
780

    
781
#define TARGET_VM86_SIGNAL        0        /* return due to signal */
782
#define TARGET_VM86_UNKNOWN        1        /* unhandled GP fault - IO-instruction or similar */
783
#define TARGET_VM86_INTx        2        /* int3/int x instruction (ARG = x) */
784
#define TARGET_VM86_STI        3        /* sti/popf/iret instruction enabled virtual interrupts */
785

    
786
/*
787
 * Additional return values when invoking new vm86()
788
 */
789
#define TARGET_VM86_PICRETURN        4        /* return due to pending PIC request */
790
#define TARGET_VM86_TRAP        6        /* return due to DOS-debugger request */
791

    
792
/*
793
 * function codes when invoking new vm86()
794
 */
795
#define TARGET_VM86_PLUS_INSTALL_CHECK        0
796
#define TARGET_VM86_ENTER                1
797
#define TARGET_VM86_ENTER_NO_BYPASS        2
798
#define        TARGET_VM86_REQUEST_IRQ        3
799
#define TARGET_VM86_FREE_IRQ                4
800
#define TARGET_VM86_GET_IRQ_BITS        5
801
#define TARGET_VM86_GET_AND_RESET_IRQ        6
802

    
803
/*
804
 * This is the stack-layout seen by the user space program when we have
805
 * done a translation of "SAVE_ALL" from vm86 mode. The real kernel layout
806
 * is 'kernel_vm86_regs' (see below).
807
 */
808

    
809
struct target_vm86_regs {
810
/*
811
 * normal regs, with special meaning for the segment descriptors..
812
 */
813
        target_long ebx;
814
        target_long ecx;
815
        target_long edx;
816
        target_long esi;
817
        target_long edi;
818
        target_long ebp;
819
        target_long eax;
820
        target_long __null_ds;
821
        target_long __null_es;
822
        target_long __null_fs;
823
        target_long __null_gs;
824
        target_long orig_eax;
825
        target_long eip;
826
        unsigned short cs, __csh;
827
        target_long eflags;
828
        target_long esp;
829
        unsigned short ss, __ssh;
830
/*
831
 * these are specific to v86 mode:
832
 */
833
        unsigned short es, __esh;
834
        unsigned short ds, __dsh;
835
        unsigned short fs, __fsh;
836
        unsigned short gs, __gsh;
837
};
838

    
839
struct target_revectored_struct {
840
        target_ulong __map[8];                        /* 256 bits */
841
};
842

    
843
struct target_vm86_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
};
851

    
852
/*
853
 * flags masks
854
 */
855
#define TARGET_VM86_SCREEN_BITMAP        0x0001
856

    
857
struct target_vm86plus_info_struct {
858
        target_ulong flags;
859
#define TARGET_force_return_for_pic (1 << 0)
860
#define TARGET_vm86dbg_active       (1 << 1)  /* for debugger */
861
#define TARGET_vm86dbg_TFpendig     (1 << 2)  /* for debugger */
862
#define TARGET_is_vm86pus           (1 << 31) /* for vm86 internal use */
863
        unsigned char vm86dbg_intxxtab[32];   /* for debugger */
864
};
865

    
866
struct target_vm86plus_struct {
867
        struct target_vm86_regs regs;
868
        target_ulong flags;
869
        target_ulong screen_bitmap;
870
        target_ulong cpu_type;
871
        struct target_revectored_struct int_revectored;
872
        struct target_revectored_struct int21_revectored;
873
        struct target_vm86plus_info_struct vm86plus;
874
};
875

    
876
/* ipcs */
877

    
878
#define TARGET_SEMOP           1
879
#define TARGET_SEMGET          2
880
#define TARGET_SEMCTL          3 
881
#define TARGET_MSGSND          11 
882
#define TARGET_MSGRCV          12
883
#define TARGET_MSGGET          13
884
#define TARGET_MSGCTL          14
885
#define TARGET_SHMAT           21
886
#define TARGET_SHMDT           22
887
#define TARGET_SHMGET          23
888
#define TARGET_SHMCTL          24
889

    
890
struct target_msgbuf {
891
        int mtype;
892
        char mtext[1];
893
};
894

    
895
struct target_ipc_kludge {
896
        unsigned int        msgp;        /* Really (struct msgbuf *) */
897
        int msgtyp;
898
};        
899

    
900
struct alpha_msgbuf {
901
        long        mtype;
902
        char        mtext[4096];
903
};
904

    
905
struct target_ipc_perm {
906
        int        key;
907
        unsigned short        uid;
908
        unsigned short        gid;
909
        unsigned short        cuid;
910
        unsigned short        cgid;
911
        unsigned short        mode;
912
        unsigned short        seq;
913
};
914

    
915
struct target_msqid_ds {
916
        struct target_ipc_perm        msg_perm;
917
        unsigned int                msg_first;        /* really struct target_msg* */
918
        unsigned int                msg_last;        /* really struct target_msg* */
919
        unsigned int                msg_stime;        /* really target_time_t */
920
        unsigned int                msg_rtime;        /* really target_time_t */
921
        unsigned int                msg_ctime;        /* really target_time_t */
922
        unsigned int                wwait;                /* really struct wait_queue* */
923
        unsigned int                rwait;                /* really struct wait_queue* */
924
        unsigned short                msg_cbytes;
925
        unsigned short                msg_qnum;
926
        unsigned short                msg_qbytes;
927
        unsigned short                msg_lspid;
928
        unsigned short                msg_lrpid;
929
};
930

    
931
struct target_shmid_ds {
932
        struct target_ipc_perm        shm_perm;
933
        int                        shm_segsz;
934
        unsigned int                shm_atime;        /* really target_time_t */
935
        unsigned int                shm_dtime;        /* really target_time_t */
936
        unsigned int                shm_ctime;        /* really target_time_t */
937
        unsigned short                shm_cpid;
938
        unsigned short                shm_lpid;
939
        short                        shm_nattch;
940
        unsigned short                shm_npages;
941
        unsigned long                *shm_pages;
942
        void                         *attaches;        /* really struct shm_desc * */
943
};
944

    
945
#define TARGET_IPC_RMID        0
946
#define TARGET_IPC_SET        1
947
#define TARGET_IPC_STAT        2
948

    
949
union target_semun {
950
    int val;
951
    unsigned int buf;        /* really struct semid_ds * */
952
    unsigned int array; /* really unsigned short * */
953
    unsigned int __buf;        /* really struct seminfo * */
954
    unsigned int __pad;        /* really void* */
955
};
956

    
957
#define TARGET_F_DUPFD         0       /* dup */
958
#define TARGET_F_GETFD         1       /* get close_on_exec */
959
#define TARGET_F_SETFD         2       /* set/clear close_on_exec */
960
#define TARGET_F_GETFL         3       /* get file->f_flags */
961
#define TARGET_F_SETFL         4       /* set file->f_flags */
962
#define TARGET_F_GETLK         5
963
#define TARGET_F_SETLK         6
964
#define TARGET_F_SETLKW        7
965

    
966
#define TARGET_F_SETOWN        8       /*  for sockets. */
967
#define TARGET_F_GETOWN        9       /*  for sockets. */
968
#define TARGET_F_SETSIG        10      /*  for sockets. */
969
#define TARGET_F_GETSIG        11      /*  for sockets. */
970

    
971
#define TARGET_F_GETLK64       12      /*  using 'struct flock64' */
972
#define TARGET_F_SETLK64       13
973
#define TARGET_F_SETLKW64      14
974

    
975
struct target_flock {
976
        short l_type;
977
        short l_whence;
978
        target_ulong l_start;
979
        target_ulong l_len;
980
        int l_pid;
981
};
982

    
983
struct target_flock64 {
984
        short  l_type;
985
        short  l_whence;
986
        unsigned long long l_start;
987
        unsigned long long l_len;
988
        int  l_pid;
989
};
990

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

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

    
1118
#define TARGET_VFAT_IOCTL_READDIR_BOTH    0x82187201
1119
#define TARGET_VFAT_IOCTL_READDIR_SHORT   0x82187202
1120

    
1121
#define TARGET_SIOCATMARK        0x8905