Statistics
| Branch: | Revision:

root / syscall-i386.h @ 9de5e440

History | View | Annotate | Download (27.9 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

    
241
#define TARGET_SIG_BLOCK          0    /* for blocking signals */
242
#define TARGET_SIG_UNBLOCK        1    /* for unblocking signals */
243
#define TARGET_SIG_SETMASK        2    /* for setting the signal mask */
244

    
245
struct target_stat {
246
        unsigned short st_dev;
247
        unsigned short __pad1;
248
        target_ulong st_ino;
249
        unsigned short st_mode;
250
        unsigned short st_nlink;
251
        unsigned short st_uid;
252
        unsigned short st_gid;
253
        unsigned short st_rdev;
254
        unsigned short __pad2;
255
        target_ulong  st_size;
256
        target_ulong  st_blksize;
257
        target_ulong  st_blocks;
258
        target_ulong  st_atime;
259
        target_ulong  __unused1;
260
        target_ulong  st_mtime;
261
        target_ulong  __unused2;
262
        target_ulong  st_ctime;
263
        target_ulong  __unused3;
264
        target_ulong  __unused4;
265
        target_ulong  __unused5;
266
};
267

    
268
/* This matches struct stat64 in glibc2.1, hence the absolutely
269
 * insane amounts of padding around dev_t's.
270
 */
271
struct target_stat64 {
272
        unsigned short        st_dev;
273
        unsigned char        __pad0[10];
274

    
275
#define STAT64_HAS_BROKEN_ST_INO        1
276
        target_ulong        __st_ino;
277

    
278
        unsigned int        st_mode;
279
        unsigned int        st_nlink;
280

    
281
        target_ulong        st_uid;
282
        target_ulong        st_gid;
283

    
284
        unsigned short        st_rdev;
285
        unsigned char        __pad3[10];
286

    
287
        long long        st_size;
288
        target_ulong        st_blksize;
289

    
290
        target_ulong        st_blocks;        /* Number 512-byte blocks allocated. */
291
        target_ulong        __pad4;                /* future possible st_blocks high bits */
292

    
293
        target_ulong        st_atime;
294
        target_ulong        __pad5;
295

    
296
        target_ulong        st_mtime;
297
        target_ulong        __pad6;
298

    
299
        target_ulong        st_ctime;
300
        target_ulong        __pad7;                /* will be high 32 bits of ctime someday */
301

    
302
        unsigned long long        st_ino;
303
};
304

    
305
#define TARGET_SA_NOCLDSTOP        0x00000001
306
#define TARGET_SA_NOCLDWAIT        0x00000002 /* not supported yet */
307
#define TARGET_SA_SIGINFO        0x00000004
308
#define TARGET_SA_ONSTACK        0x08000000
309
#define TARGET_SA_RESTART        0x10000000
310
#define TARGET_SA_NODEFER        0x40000000
311
#define TARGET_SA_RESETHAND        0x80000000
312
#define TARGET_SA_RESTORER        0x04000000
313

    
314
#define TARGET_SIGHUP                 1
315
#define TARGET_SIGINT                 2
316
#define TARGET_SIGQUIT                 3
317
#define TARGET_SIGILL                 4
318
#define TARGET_SIGTRAP                 5
319
#define TARGET_SIGABRT                 6
320
#define TARGET_SIGIOT                 6
321
#define TARGET_SIGBUS                 7
322
#define TARGET_SIGFPE                 8
323
#define TARGET_SIGKILL                 9
324
#define TARGET_SIGUSR1                10
325
#define TARGET_SIGSEGV                11
326
#define TARGET_SIGUSR2                12
327
#define TARGET_SIGPIPE                13
328
#define TARGET_SIGALRM                14
329
#define TARGET_SIGTERM                15
330
#define TARGET_SIGSTKFLT        16
331
#define TARGET_SIGCHLD                17
332
#define TARGET_SIGCONT                18
333
#define TARGET_SIGSTOP                19
334
#define TARGET_SIGTSTP                20
335
#define TARGET_SIGTTIN                21
336
#define TARGET_SIGTTOU                22
337
#define TARGET_SIGURG                23
338
#define TARGET_SIGXCPU                24
339
#define TARGET_SIGXFSZ                25
340
#define TARGET_SIGVTALRM        26
341
#define TARGET_SIGPROF                27
342
#define TARGET_SIGWINCH                28
343
#define TARGET_SIGIO                29
344
#define TARGET_SIGRTMIN         32
345

    
346
struct target_old_sigaction {
347
        target_ulong _sa_handler;
348
        target_ulong sa_mask;
349
        target_ulong sa_flags;
350
        target_ulong sa_restorer;
351
};
352

    
353
struct target_sigaction {
354
        target_ulong _sa_handler;
355
        target_ulong sa_flags;
356
        target_ulong sa_restorer;
357
        target_sigset_t sa_mask;
358
};
359

    
360
typedef union target_sigval {
361
        int sival_int;
362
        target_ulong sival_ptr;
363
} target_sigval_t;
364

    
365
#define TARGET_SI_MAX_SIZE        128
366
#define TARGET_SI_PAD_SIZE        ((TARGET_SI_MAX_SIZE/sizeof(int)) - 3)
367

    
368
typedef struct target_siginfo {
369
        int si_signo;
370
        int si_errno;
371
        int si_code;
372

    
373
        union {
374
                int _pad[TARGET_SI_PAD_SIZE];
375

    
376
                /* kill() */
377
                struct {
378
                        pid_t _pid;                /* sender's pid */
379
                        uid_t _uid;                /* sender's uid */
380
                } _kill;
381

    
382
                /* POSIX.1b timers */
383
                struct {
384
                        unsigned int _timer1;
385
                        unsigned int _timer2;
386
                } _timer;
387

    
388
                /* POSIX.1b signals */
389
                struct {
390
                        pid_t _pid;                /* sender's pid */
391
                        uid_t _uid;                /* sender's uid */
392
                        target_sigval_t _sigval;
393
                } _rt;
394

    
395
                /* SIGCHLD */
396
                struct {
397
                        pid_t _pid;                /* which child */
398
                        uid_t _uid;                /* sender's uid */
399
                        int _status;                /* exit code */
400
                        clock_t _utime;
401
                        clock_t _stime;
402
                } _sigchld;
403

    
404
                /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
405
                struct {
406
                        target_ulong _addr; /* faulting insn/memory ref. */
407
                } _sigfault;
408

    
409
                /* SIGPOLL */
410
                struct {
411
                        int _band;        /* POLL_IN, POLL_OUT, POLL_MSG */
412
                        int _fd;
413
                } _sigpoll;
414
        } _sifields;
415
} target_siginfo_t;
416

    
417
/*
418
 * SIGILL si_codes
419
 */
420
#define TARGET_ILL_ILLOPN        (2)        /* illegal operand */
421

    
422
/*
423
 * SIGFPE si_codes
424
 */
425
#define TARGET_FPE_INTDIV      (1)  /* integer divide by zero */
426
#define TARGET_FPE_INTOVF      (2)  /* integer overflow */
427
#define TARGET_FPE_FLTDIV      (3)  /* floating point divide by zero */
428
#define TARGET_FPE_FLTOVF      (4)  /* floating point overflow */
429
#define TARGET_FPE_FLTUND      (5)  /* floating point underflow */
430
#define TARGET_FPE_FLTRES      (6)  /* floating point inexact result */
431
#define TARGET_FPE_FLTINV      (7)  /* floating point invalid operation */
432
#define TARGET_FPE_FLTSUB      (8)  /* subscript out of range */
433
#define TARGET_NSIGFPE         8
434

    
435
/* default linux values for the selectors */
436
#define __USER_CS        (0x23)
437
#define __USER_DS        (0x2B)
438

    
439
struct target_pt_regs {
440
        long ebx;
441
        long ecx;
442
        long edx;
443
        long esi;
444
        long edi;
445
        long ebp;
446
        long eax;
447
        int  xds;
448
        int  xes;
449
        long orig_eax;
450
        long eip;
451
        int  xcs;
452
        long eflags;
453
        long esp;
454
        int  xss;
455
};
456

    
457
/* ioctls */
458

    
459
/*
460
 * The following is for compatibility across the various Linux
461
 * platforms.  The i386 ioctl numbering scheme doesn't really enforce
462
 * a type field.  De facto, however, the top 8 bits of the lower 16
463
 * bits are indeed used as a type field, so we might just as well make
464
 * this explicit here.  Please be sure to use the decoding macros
465
 * below from now on.
466
 */
467
#define TARGET_IOC_NRBITS        8
468
#define TARGET_IOC_TYPEBITS        8
469
#define TARGET_IOC_SIZEBITS        14
470
#define TARGET_IOC_DIRBITS        2
471

    
472
#define TARGET_IOC_NRMASK        ((1 << TARGET_IOC_NRBITS)-1)
473
#define TARGET_IOC_TYPEMASK        ((1 << TARGET_IOC_TYPEBITS)-1)
474
#define TARGET_IOC_SIZEMASK        ((1 << TARGET_IOC_SIZEBITS)-1)
475
#define TARGET_IOC_DIRMASK        ((1 << TARGET_IOC_DIRBITS)-1)
476

    
477
#define TARGET_IOC_NRSHIFT        0
478
#define TARGET_IOC_TYPESHIFT        (TARGET_IOC_NRSHIFT+TARGET_IOC_NRBITS)
479
#define TARGET_IOC_SIZESHIFT        (TARGET_IOC_TYPESHIFT+TARGET_IOC_TYPEBITS)
480
#define TARGET_IOC_DIRSHIFT        (TARGET_IOC_SIZESHIFT+TARGET_IOC_SIZEBITS)
481

    
482
/*
483
 * Direction bits.
484
 */
485
#define TARGET_IOC_NONE        0U
486
#define TARGET_IOC_WRITE        1U
487
#define TARGET_IOC_READ        2U
488

    
489
#define TARGET_IOC(dir,type,nr,size) \
490
        (((dir)  << TARGET_IOC_DIRSHIFT) | \
491
         ((type) << TARGET_IOC_TYPESHIFT) | \
492
         ((nr)   << TARGET_IOC_NRSHIFT) | \
493
         ((size) << TARGET_IOC_SIZESHIFT))
494

    
495
/* used to create numbers */
496
#define TARGET_IO(type,nr)                TARGET_IOC(TARGET_IOC_NONE,(type),(nr),0)
497
#define TARGET_IOR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ,(type),(nr),sizeof(size))
498
#define TARGET_IOW(type,nr,size)        TARGET_IOC(TARGET_IOC_WRITE,(type),(nr),sizeof(size))
499
#define TARGET_IOWR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ|TARGET_IOC_WRITE,(type),(nr),sizeof(size))
500

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

    
503
#define TARGET_TCGETS                0x5401
504
#define TARGET_TCSETS                0x5402
505
#define TARGET_TCSETSW                0x5403
506
#define TARGET_TCSETSF                0x5404
507
#define TARGET_TCGETA                0x5405
508
#define TARGET_TCSETA                0x5406
509
#define TARGET_TCSETAW                0x5407
510
#define TARGET_TCSETAF                0x5408
511
#define TARGET_TCSBRK                0x5409
512
#define TARGET_TCXONC                0x540A
513
#define TARGET_TCFLSH                0x540B
514
#define TARGET_TIOCEXCL        0x540C
515
#define TARGET_TIOCNXCL        0x540D
516
#define TARGET_TIOCSCTTY        0x540E
517
#define TARGET_TIOCGPGRP        0x540F
518
#define TARGET_TIOCSPGRP        0x5410
519
#define TARGET_TIOCOUTQ        0x5411
520
#define TARGET_TIOCSTI                0x5412
521
#define TARGET_TIOCGWINSZ        0x5413
522
#define TARGET_TIOCSWINSZ        0x5414
523
#define TARGET_TIOCMGET        0x5415
524
#define TARGET_TIOCMBIS        0x5416
525
#define TARGET_TIOCMBIC        0x5417
526
#define TARGET_TIOCMSET        0x5418
527
#define TARGET_TIOCGSOFTCAR        0x5419
528
#define TARGET_TIOCSSOFTCAR        0x541A
529
#define TARGET_FIONREAD        0x541B
530
#define TARGET_TIOCINQ                FIONREAD
531
#define TARGET_TIOCLINUX        0x541C
532
#define TARGET_TIOCCONS        0x541D
533
#define TARGET_TIOCGSERIAL        0x541E
534
#define TARGET_TIOCSSERIAL        0x541F
535
#define TARGET_TIOCPKT                0x5420
536
#define TARGET_FIONBIO                0x5421
537
#define TARGET_TIOCNOTTY        0x5422
538
#define TARGET_TIOCSETD        0x5423
539
#define TARGET_TIOCGETD        0x5424
540
#define TARGET_TCSBRKP                0x5425        /* Needed for POSIX tcsendbreak() */
541
#define TARGET_TIOCTTYGSTRUCT        0x5426  /* For debugging only */
542
#define TARGET_TIOCSBRK        0x5427  /* BSD compatibility */
543
#define TARGET_TIOCCBRK        0x5428  /* BSD compatibility */
544
#define TARGET_TIOCGSID        0x5429  /* Return the session ID of FD */
545
#define TARGET_TIOCGPTN        _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
546
#define TARGET_TIOCSPTLCK        _IOW('T',0x31, int)  /* Lock/unlock Pty */
547

    
548
#define TARGET_FIONCLEX        0x5450  /* these numbers need to be adjusted. */
549
#define TARGET_FIOCLEX                0x5451
550
#define TARGET_FIOASYNC        0x5452
551
#define TARGET_TIOCSERCONFIG        0x5453
552
#define TARGET_TIOCSERGWILD        0x5454
553
#define TARGET_TIOCSERSWILD        0x5455
554
#define TARGET_TIOCGLCKTRMIOS        0x5456
555
#define TARGET_TIOCSLCKTRMIOS        0x5457
556
#define TARGET_TIOCSERGSTRUCT        0x5458 /* For debugging only */
557
#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
558
#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
559
#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
560

    
561
#define TARGET_TIOCMIWAIT        0x545C        /* wait for a change on serial input line(s) */
562
#define TARGET_TIOCGICOUNT        0x545D        /* read serial port inline interrupt counts */
563
#define TARGET_TIOCGHAYESESP   0x545E  /* Get Hayes ESP configuration */
564
#define TARGET_TIOCSHAYESESP   0x545F  /* Set Hayes ESP configuration */
565

    
566
/* Used for packet mode */
567
#define TARGET_TIOCPKT_DATA                 0
568
#define TARGET_TIOCPKT_FLUSHREAD         1
569
#define TARGET_TIOCPKT_FLUSHWRITE         2
570
#define TARGET_TIOCPKT_STOP                 4
571
#define TARGET_TIOCPKT_START                 8
572
#define TARGET_TIOCPKT_NOSTOP                16
573
#define TARGET_TIOCPKT_DOSTOP                32
574

    
575
#define TARGET_TIOCSER_TEMT    0x01        /* Transmitter physically empty */
576

    
577
/* from asm/termbits.h */
578

    
579
#define TARGET_NCCS 19
580

    
581
struct target_termios {
582
    unsigned int c_iflag;               /* input mode flags */
583
    unsigned int c_oflag;               /* output mode flags */
584
    unsigned int c_cflag;               /* control mode flags */
585
    unsigned int c_lflag;               /* local mode flags */
586
    unsigned char c_line;                    /* line discipline */
587
    unsigned char c_cc[TARGET_NCCS];                /* control characters */
588
};
589

    
590
/* c_iflag bits */
591
#define TARGET_IGNBRK  0000001
592
#define TARGET_BRKINT  0000002
593
#define TARGET_IGNPAR  0000004
594
#define TARGET_PARMRK  0000010
595
#define TARGET_INPCK   0000020
596
#define TARGET_ISTRIP  0000040
597
#define TARGET_INLCR   0000100
598
#define TARGET_IGNCR   0000200
599
#define TARGET_ICRNL   0000400
600
#define TARGET_IUCLC   0001000
601
#define TARGET_IXON    0002000
602
#define TARGET_IXANY   0004000
603
#define TARGET_IXOFF   0010000
604
#define TARGET_IMAXBEL 0020000
605

    
606
/* c_oflag bits */
607
#define TARGET_OPOST   0000001
608
#define TARGET_OLCUC   0000002
609
#define TARGET_ONLCR   0000004
610
#define TARGET_OCRNL   0000010
611
#define TARGET_ONOCR   0000020
612
#define TARGET_ONLRET  0000040
613
#define TARGET_OFILL   0000100
614
#define TARGET_OFDEL   0000200
615
#define TARGET_NLDLY   0000400
616
#define   TARGET_NL0   0000000
617
#define   TARGET_NL1   0000400
618
#define TARGET_CRDLY   0003000
619
#define   TARGET_CR0   0000000
620
#define   TARGET_CR1   0001000
621
#define   TARGET_CR2   0002000
622
#define   TARGET_CR3   0003000
623
#define TARGET_TABDLY  0014000
624
#define   TARGET_TAB0  0000000
625
#define   TARGET_TAB1  0004000
626
#define   TARGET_TAB2  0010000
627
#define   TARGET_TAB3  0014000
628
#define   TARGET_XTABS 0014000
629
#define TARGET_BSDLY   0020000
630
#define   TARGET_BS0   0000000
631
#define   TARGET_BS1   0020000
632
#define TARGET_VTDLY   0040000
633
#define   TARGET_VT0   0000000
634
#define   TARGET_VT1   0040000
635
#define TARGET_FFDLY   0100000
636
#define   TARGET_FF0   0000000
637
#define   TARGET_FF1   0100000
638

    
639
/* c_cflag bit meaning */
640
#define TARGET_CBAUD   0010017
641
#define  TARGET_B0     0000000         /* hang up */
642
#define  TARGET_B50    0000001
643
#define  TARGET_B75    0000002
644
#define  TARGET_B110   0000003
645
#define  TARGET_B134   0000004
646
#define  TARGET_B150   0000005
647
#define  TARGET_B200   0000006
648
#define  TARGET_B300   0000007
649
#define  TARGET_B600   0000010
650
#define  TARGET_B1200  0000011
651
#define  TARGET_B1800  0000012
652
#define  TARGET_B2400  0000013
653
#define  TARGET_B4800  0000014
654
#define  TARGET_B9600  0000015
655
#define  TARGET_B19200 0000016
656
#define  TARGET_B38400 0000017
657
#define TARGET_EXTA B19200
658
#define TARGET_EXTB B38400
659
#define TARGET_CSIZE   0000060
660
#define   TARGET_CS5   0000000
661
#define   TARGET_CS6   0000020
662
#define   TARGET_CS7   0000040
663
#define   TARGET_CS8   0000060
664
#define TARGET_CSTOPB  0000100
665
#define TARGET_CREAD   0000200
666
#define TARGET_PARENB  0000400
667
#define TARGET_PARODD  0001000
668
#define TARGET_HUPCL   0002000
669
#define TARGET_CLOCAL  0004000
670
#define TARGET_CBAUDEX 0010000
671
#define  TARGET_B57600  0010001
672
#define  TARGET_B115200 0010002
673
#define  TARGET_B230400 0010003
674
#define  TARGET_B460800 0010004
675
#define TARGET_CIBAUD    002003600000  /* input baud rate (not used) */
676
#define TARGET_CRTSCTS   020000000000          /* flow control */
677

    
678
/* c_lflag bits */
679
#define TARGET_ISIG    0000001
680
#define TARGET_ICANON  0000002
681
#define TARGET_XCASE   0000004
682
#define TARGET_ECHO    0000010
683
#define TARGET_ECHOE   0000020
684
#define TARGET_ECHOK   0000040
685
#define TARGET_ECHONL  0000100
686
#define TARGET_NOFLSH  0000200
687
#define TARGET_TOSTOP  0000400
688
#define TARGET_ECHOCTL 0001000
689
#define TARGET_ECHOPRT 0002000
690
#define TARGET_ECHOKE  0004000
691
#define TARGET_FLUSHO  0010000
692
#define TARGET_PENDIN  0040000
693
#define TARGET_IEXTEN  0100000
694

    
695
/* c_cc character offsets */
696
#define TARGET_VINTR        0
697
#define TARGET_VQUIT        1
698
#define TARGET_VERASE        2
699
#define TARGET_VKILL        3
700
#define TARGET_VEOF        4
701
#define TARGET_VTIME        5
702
#define TARGET_VMIN        6
703
#define TARGET_VSWTC        7
704
#define TARGET_VSTART        8
705
#define TARGET_VSTOP        9
706
#define TARGET_VSUSP        10
707
#define TARGET_VEOL        11
708
#define TARGET_VREPRINT        12
709
#define TARGET_VDISCARD        13
710
#define TARGET_VWERASE        14
711
#define TARGET_VLNEXT        15
712
#define TARGET_VEOL2        16
713

    
714
#define TARGET_LDT_ENTRIES      8192
715
#define TARGET_LDT_ENTRY_SIZE        8
716

    
717
struct target_modify_ldt_ldt_s {
718
    unsigned int  entry_number;
719
    target_ulong base_addr;
720
    unsigned int limit;
721
    unsigned int flags;
722
};
723

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

    
726
#define TARGET_SNDCTL_COPR_HALT           0xc0144307
727
#define TARGET_SNDCTL_COPR_LOAD           0xcfb04301
728
#define TARGET_SNDCTL_COPR_RCODE          0xc0144303
729
#define TARGET_SNDCTL_COPR_RCVMSG         0x8fa44309
730
#define TARGET_SNDCTL_COPR_RDATA          0xc0144302
731
#define TARGET_SNDCTL_COPR_RESET          0x00004300
732
#define TARGET_SNDCTL_COPR_RUN            0xc0144306
733
#define TARGET_SNDCTL_COPR_SENDMSG        0xcfa44308
734
#define TARGET_SNDCTL_COPR_WCODE          0x40144305
735
#define TARGET_SNDCTL_COPR_WDATA          0x40144304
736
#define TARGET_SNDCTL_DSP_CHANNELS        0xc0045006
737
#define TARGET_SNDCTL_DSP_GETBLKSIZE      0xc0045004
738
#define TARGET_SNDCTL_DSP_GETCAPS         0x8004500f
739
#define TARGET_SNDCTL_DSP_GETFMTS         0x8004500b
740
#define TARGET_SNDCTL_DSP_GETIPTR         0x800c5011
741
#define TARGET_SNDCTL_DSP_GETISPACE       0x8010500d
742
#define TARGET_SNDCTL_DSP_GETOPTR         0x800c5012
743
#define TARGET_SNDCTL_DSP_GETOSPACE       0x8010500c
744
#define TARGET_SNDCTL_DSP_GETTRIGGER      0x80045010
745
#define TARGET_SNDCTL_DSP_MAPINBUF        0x80085013
746
#define TARGET_SNDCTL_DSP_MAPOUTBUF       0x80085014
747
#define TARGET_SNDCTL_DSP_NONBLOCK        0x0000500e
748
#define TARGET_SNDCTL_DSP_POST            0x00005008
749
#define TARGET_SNDCTL_DSP_RESET           0x00005000
750
#define TARGET_SNDCTL_DSP_SAMPLESIZE      0xc0045005
751
#define TARGET_SNDCTL_DSP_SETDUPLEX       0x00005016
752
#define TARGET_SNDCTL_DSP_SETFMT          0xc0045005
753
#define TARGET_SNDCTL_DSP_SETFRAGMENT     0xc004500a
754
#define TARGET_SNDCTL_DSP_SETSYNCRO       0x00005015
755
#define TARGET_SNDCTL_DSP_SETTRIGGER      0x40045010
756
#define TARGET_SNDCTL_DSP_SPEED           0xc0045002
757
#define TARGET_SNDCTL_DSP_STEREO          0xc0045003
758
#define TARGET_SNDCTL_DSP_SUBDIVIDE       0xc0045009
759
#define TARGET_SNDCTL_DSP_SYNC            0x00005001
760
#define TARGET_SNDCTL_FM_4OP_ENABLE       0x4004510f
761
#define TARGET_SNDCTL_FM_LOAD_INSTR       0x40285107
762
#define TARGET_SNDCTL_MIDI_INFO           0xc074510c
763
#define TARGET_SNDCTL_MIDI_MPUCMD         0xc0216d02
764
#define TARGET_SNDCTL_MIDI_MPUMODE        0xc0046d01
765
#define TARGET_SNDCTL_MIDI_PRETIME        0xc0046d00
766
#define TARGET_SNDCTL_PMGR_ACCESS         0xcfb85110
767
#define TARGET_SNDCTL_PMGR_IFACE          0xcfb85001
768
#define TARGET_SNDCTL_SEQ_CTRLRATE        0xc0045103
769
#define TARGET_SNDCTL_SEQ_GETINCOUNT      0x80045105
770
#define TARGET_SNDCTL_SEQ_GETOUTCOUNT     0x80045104
771
#define TARGET_SNDCTL_SEQ_NRMIDIS         0x8004510b
772
#define TARGET_SNDCTL_SEQ_NRSYNTHS        0x8004510a
773
#define TARGET_SNDCTL_SEQ_OUTOFBAND       0x40085112
774
#define TARGET_SNDCTL_SEQ_PANIC           0x00005111
775
#define TARGET_SNDCTL_SEQ_PERCMODE        0x40045106
776
#define TARGET_SNDCTL_SEQ_RESET           0x00005100
777
#define TARGET_SNDCTL_SEQ_RESETSAMPLES    0x40045109
778
#define TARGET_SNDCTL_SEQ_SYNC            0x00005101
779
#define TARGET_SNDCTL_SEQ_TESTMIDI        0x40045108
780
#define TARGET_SNDCTL_SEQ_THRESHOLD       0x4004510d
781
#define TARGET_SNDCTL_SEQ_TRESHOLD        0x4004510d
782
#define TARGET_SNDCTL_SYNTH_INFO          0xc08c5102
783
#define TARGET_SNDCTL_SYNTH_MEMAVL        0xc004510e
784
#define TARGET_SNDCTL_TMR_CONTINUE        0x00005404
785
#define TARGET_SNDCTL_TMR_METRONOME       0x40045407
786
#define TARGET_SNDCTL_TMR_SELECT          0x40045408
787
#define TARGET_SNDCTL_TMR_SOURCE          0xc0045406
788
#define TARGET_SNDCTL_TMR_START           0x00005402
789
#define TARGET_SNDCTL_TMR_STOP            0x00005403
790
#define TARGET_SNDCTL_TMR_TEMPO           0xc0045405
791
#define TARGET_SNDCTL_TMR_TIMEBASE        0xc0045401
792
#define TARGET_SOUND_PCM_WRITE_FILTER     0xc0045007
793
#define TARGET_SOUND_PCM_READ_RATE        0x80045002
794
#define TARGET_SOUND_PCM_READ_CHANNELS    0x80045006
795
#define TARGET_SOUND_PCM_READ_BITS        0x80045005
796
#define TARGET_SOUND_PCM_READ_FILTER      0x80045007
797
#define TARGET_SOUND_MIXER_INFO           0x80304d65
798
#define TARGET_SOUND_MIXER_ACCESS         0xc0804d66
799
#define TARGET_SOUND_MIXER_PRIVATE1       0xc0044d6f
800
#define TARGET_SOUND_MIXER_PRIVATE2       0xc0044d70
801
#define TARGET_SOUND_MIXER_PRIVATE3       0xc0044d71
802
#define TARGET_SOUND_MIXER_PRIVATE4       0xc0044d72
803
#define TARGET_SOUND_MIXER_PRIVATE5       0xc0044d73
804
#define TARGET_SOUND_MIXER_READ_VOLUME    0x80044d00
805
#define TARGET_SOUND_MIXER_READ_BASS      0x80044d01
806
#define TARGET_SOUND_MIXER_READ_TREBLE    0x80044d02
807
#define TARGET_SOUND_MIXER_READ_SYNTH     0x80044d03
808
#define TARGET_SOUND_MIXER_READ_PCM       0x80044d04
809
#define TARGET_SOUND_MIXER_READ_SPEAKER   0x80044d05
810
#define TARGET_SOUND_MIXER_READ_LINE      0x80044d06
811
#define TARGET_SOUND_MIXER_READ_MIC       0x80044d07
812
#define TARGET_SOUND_MIXER_READ_CD        0x80044d08
813
#define TARGET_SOUND_MIXER_READ_IMIX      0x80044d09
814
#define TARGET_SOUND_MIXER_READ_ALTPCM    0x80044d0a
815
#define TARGET_SOUND_MIXER_READ_RECLEV    0x80044d0b
816
#define TARGET_SOUND_MIXER_READ_IGAIN     0x80044d0c
817
#define TARGET_SOUND_MIXER_READ_OGAIN     0x80044d0d
818
#define TARGET_SOUND_MIXER_READ_LINE1     0x80044d0e
819
#define TARGET_SOUND_MIXER_READ_LINE2     0x80044d0f
820
#define TARGET_SOUND_MIXER_READ_LINE3     0x80044d10
821
#define TARGET_SOUND_MIXER_READ_MUTE      0x80044d1f
822
#define TARGET_SOUND_MIXER_READ_ENHANCE   0x80044d1f
823
#define TARGET_SOUND_MIXER_READ_LOUD      0x80044d1f
824
#define TARGET_SOUND_MIXER_READ_RECSRC    0x80044dff
825
#define TARGET_SOUND_MIXER_READ_DEVMASK   0x80044dfe
826
#define TARGET_SOUND_MIXER_READ_RECMASK   0x80044dfd
827
#define TARGET_SOUND_MIXER_READ_STEREODEVS  0x80044dfb
828
#define TARGET_SOUND_MIXER_READ_CAPS      0x80044dfc
829
#define TARGET_SOUND_MIXER_WRITE_VOLUME   0xc0044d00
830
#define TARGET_SOUND_MIXER_WRITE_BASS     0xc0044d01
831
#define TARGET_SOUND_MIXER_WRITE_TREBLE   0xc0044d02
832
#define TARGET_SOUND_MIXER_WRITE_SYNTH    0xc0044d03
833
#define TARGET_SOUND_MIXER_WRITE_PCM      0xc0044d04
834
#define TARGET_SOUND_MIXER_WRITE_SPEAKER  0xc0044d05
835
#define TARGET_SOUND_MIXER_WRITE_LINE     0xc0044d06
836
#define TARGET_SOUND_MIXER_WRITE_MIC      0xc0044d07
837
#define TARGET_SOUND_MIXER_WRITE_CD       0xc0044d08
838
#define TARGET_SOUND_MIXER_WRITE_IMIX     0xc0044d09
839
#define TARGET_SOUND_MIXER_WRITE_ALTPCM   0xc0044d0a
840
#define TARGET_SOUND_MIXER_WRITE_RECLEV   0xc0044d0b
841
#define TARGET_SOUND_MIXER_WRITE_IGAIN    0xc0044d0c
842
#define TARGET_SOUND_MIXER_WRITE_OGAIN    0xc0044d0d
843
#define TARGET_SOUND_MIXER_WRITE_LINE1    0xc0044d0e
844
#define TARGET_SOUND_MIXER_WRITE_LINE2    0xc0044d0f
845
#define TARGET_SOUND_MIXER_WRITE_LINE3    0xc0044d10
846
#define TARGET_SOUND_MIXER_WRITE_MUTE     0xc0044d1f
847
#define TARGET_SOUND_MIXER_WRITE_ENHANCE  0xc0044d1f
848
#define TARGET_SOUND_MIXER_WRITE_LOUD     0xc0044d1f
849
#define TARGET_SOUND_MIXER_WRITE_RECSRC   0xc0044dff
850

    
851
#define TARGET_VFAT_IOCTL_READDIR_BOTH    0x82187201
852
#define TARGET_VFAT_IOCTL_READDIR_SHORT   0x82187202