Statistics
| Branch: | Revision:

root / syscall-i386.h @ 31e31b8a

History | View | Annotate | Download (25.5 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
        unsigned long 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
        unsigned long  st_size;
256
        unsigned long  st_blksize;
257
        unsigned long  st_blocks;
258
        unsigned long  st_atime;
259
        unsigned long  __unused1;
260
        unsigned long  st_mtime;
261
        unsigned long  __unused2;
262
        unsigned long  st_ctime;
263
        unsigned long  __unused3;
264
        unsigned long  __unused4;
265
        unsigned long  __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
        unsigned long        __st_ino;
277

    
278
        unsigned int        st_mode;
279
        unsigned int        st_nlink;
280

    
281
        unsigned long        st_uid;
282
        unsigned long        st_gid;
283

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

    
287
        long long        st_size;
288
        unsigned long        st_blksize;
289

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

    
293
        unsigned long        st_atime;
294
        unsigned long        __pad5;
295

    
296
        unsigned long        st_mtime;
297
        unsigned long        __pad6;
298

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

    
302
        unsigned long long        st_ino;
303
};
304

    
305
typedef unsigned long old_sigset_t;                /* at least 32 bits */
306

    
307
struct target_old_sigaction {
308
        target_ulong _sa_handler;
309
        target_ulong sa_mask;
310
        target_ulong sa_flags;
311
        void (*sa_restorer)(void);
312
};
313

    
314
struct target_sigaction {
315
        target_ulong _sa_handler;
316
        target_sigset_t sa_mask;
317
        target_ulong sa_flags;
318
        target_ulong sa_restorer;
319
};
320

    
321
typedef union target_sigval {
322
        int sival_int;
323
        void *sival_ptr;
324
} target_sigval_t;
325

    
326
#define TARGET_SI_MAX_SIZE        128
327
#define TARGET_SI_PAD_SIZE        ((TARGET_SI_MAX_SIZE/sizeof(int)) - 3)
328

    
329
typedef struct target_siginfo {
330
        int si_signo;
331
        int si_errno;
332
        int si_code;
333

    
334
        union {
335
                int _pad[TARGET_SI_PAD_SIZE];
336

    
337
                /* kill() */
338
                struct {
339
                        pid_t _pid;                /* sender's pid */
340
                        uid_t _uid;                /* sender's uid */
341
                } _kill;
342

    
343
                /* POSIX.1b timers */
344
                struct {
345
                        unsigned int _timer1;
346
                        unsigned int _timer2;
347
                } _timer;
348

    
349
                /* POSIX.1b signals */
350
                struct {
351
                        pid_t _pid;                /* sender's pid */
352
                        uid_t _uid;                /* sender's uid */
353
                        sigval_t _sigval;
354
                } _rt;
355

    
356
                /* SIGCHLD */
357
                struct {
358
                        pid_t _pid;                /* which child */
359
                        uid_t _uid;                /* sender's uid */
360
                        int _status;                /* exit code */
361
                        clock_t _utime;
362
                        clock_t _stime;
363
                } _sigchld;
364

    
365
                /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
366
                struct {
367
                        void *_addr; /* faulting insn/memory ref. */
368
                } _sigfault;
369

    
370
                /* SIGPOLL */
371
                struct {
372
                        int _band;        /* POLL_IN, POLL_OUT, POLL_MSG */
373
                        int _fd;
374
                } _sigpoll;
375
        } _sifields;
376
} target_siginfo_t;
377

    
378
/* ioctls */
379

    
380
/*
381
 * The following is for compatibility across the various Linux
382
 * platforms.  The i386 ioctl numbering scheme doesn't really enforce
383
 * a type field.  De facto, however, the top 8 bits of the lower 16
384
 * bits are indeed used as a type field, so we might just as well make
385
 * this explicit here.  Please be sure to use the decoding macros
386
 * below from now on.
387
 */
388
#define TARGET_IOC_NRBITS        8
389
#define TARGET_IOC_TYPEBITS        8
390
#define TARGET_IOC_SIZEBITS        14
391
#define TARGET_IOC_DIRBITS        2
392

    
393
#define TARGET_IOC_NRMASK        ((1 << TARGET_IOC_NRBITS)-1)
394
#define TARGET_IOC_TYPEMASK        ((1 << TARGET_IOC_TYPEBITS)-1)
395
#define TARGET_IOC_SIZEMASK        ((1 << TARGET_IOC_SIZEBITS)-1)
396
#define TARGET_IOC_DIRMASK        ((1 << TARGET_IOC_DIRBITS)-1)
397

    
398
#define TARGET_IOC_NRSHIFT        0
399
#define TARGET_IOC_TYPESHIFT        (TARGET_IOC_NRSHIFT+TARGET_IOC_NRBITS)
400
#define TARGET_IOC_SIZESHIFT        (TARGET_IOC_TYPESHIFT+TARGET_IOC_TYPEBITS)
401
#define TARGET_IOC_DIRSHIFT        (TARGET_IOC_SIZESHIFT+TARGET_IOC_SIZEBITS)
402

    
403
/*
404
 * Direction bits.
405
 */
406
#define TARGET_IOC_NONE        0U
407
#define TARGET_IOC_WRITE        1U
408
#define TARGET_IOC_READ        2U
409

    
410
#define TARGET_IOC(dir,type,nr,size) \
411
        (((dir)  << TARGET_IOC_DIRSHIFT) | \
412
         ((type) << TARGET_IOC_TYPESHIFT) | \
413
         ((nr)   << TARGET_IOC_NRSHIFT) | \
414
         ((size) << TARGET_IOC_SIZESHIFT))
415

    
416
/* used to create numbers */
417
#define TARGET_IO(type,nr)                TARGET_IOC(TARGET_IOC_NONE,(type),(nr),0)
418
#define TARGET_IOR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ,(type),(nr),sizeof(size))
419
#define TARGET_IOW(type,nr,size)        TARGET_IOC(TARGET_IOC_WRITE,(type),(nr),sizeof(size))
420
#define TARGET_IOWR(type,nr,size)        TARGET_IOC(TARGET_IOC_READ|TARGET_IOC_WRITE,(type),(nr),sizeof(size))
421

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

    
424
#define TARGET_TCGETS                0x5401
425
#define TARGET_TCSETS                0x5402
426
#define TARGET_TCSETSW                0x5403
427
#define TARGET_TCSETSF                0x5404
428
#define TARGET_TCGETA                0x5405
429
#define TARGET_TCSETA                0x5406
430
#define TARGET_TCSETAW                0x5407
431
#define TARGET_TCSETAF                0x5408
432
#define TARGET_TCSBRK                0x5409
433
#define TARGET_TCXONC                0x540A
434
#define TARGET_TCFLSH                0x540B
435
#define TARGET_TIOCEXCL        0x540C
436
#define TARGET_TIOCNXCL        0x540D
437
#define TARGET_TIOCSCTTY        0x540E
438
#define TARGET_TIOCGPGRP        0x540F
439
#define TARGET_TIOCSPGRP        0x5410
440
#define TARGET_TIOCOUTQ        0x5411
441
#define TARGET_TIOCSTI                0x5412
442
#define TARGET_TIOCGWINSZ        0x5413
443
#define TARGET_TIOCSWINSZ        0x5414
444
#define TARGET_TIOCMGET        0x5415
445
#define TARGET_TIOCMBIS        0x5416
446
#define TARGET_TIOCMBIC        0x5417
447
#define TARGET_TIOCMSET        0x5418
448
#define TARGET_TIOCGSOFTCAR        0x5419
449
#define TARGET_TIOCSSOFTCAR        0x541A
450
#define TARGET_FIONREAD        0x541B
451
#define TARGET_TIOCINQ                FIONREAD
452
#define TARGET_TIOCLINUX        0x541C
453
#define TARGET_TIOCCONS        0x541D
454
#define TARGET_TIOCGSERIAL        0x541E
455
#define TARGET_TIOCSSERIAL        0x541F
456
#define TARGET_TIOCPKT                0x5420
457
#define TARGET_FIONBIO                0x5421
458
#define TARGET_TIOCNOTTY        0x5422
459
#define TARGET_TIOCSETD        0x5423
460
#define TARGET_TIOCGETD        0x5424
461
#define TARGET_TCSBRKP                0x5425        /* Needed for POSIX tcsendbreak() */
462
#define TARGET_TIOCTTYGSTRUCT        0x5426  /* For debugging only */
463
#define TARGET_TIOCSBRK        0x5427  /* BSD compatibility */
464
#define TARGET_TIOCCBRK        0x5428  /* BSD compatibility */
465
#define TARGET_TIOCGSID        0x5429  /* Return the session ID of FD */
466
#define TARGET_TIOCGPTN        _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
467
#define TARGET_TIOCSPTLCK        _IOW('T',0x31, int)  /* Lock/unlock Pty */
468

    
469
#define TARGET_FIONCLEX        0x5450  /* these numbers need to be adjusted. */
470
#define TARGET_FIOCLEX                0x5451
471
#define TARGET_FIOASYNC        0x5452
472
#define TARGET_TIOCSERCONFIG        0x5453
473
#define TARGET_TIOCSERGWILD        0x5454
474
#define TARGET_TIOCSERSWILD        0x5455
475
#define TARGET_TIOCGLCKTRMIOS        0x5456
476
#define TARGET_TIOCSLCKTRMIOS        0x5457
477
#define TARGET_TIOCSERGSTRUCT        0x5458 /* For debugging only */
478
#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
479
#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
480
#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
481

    
482
#define TARGET_TIOCMIWAIT        0x545C        /* wait for a change on serial input line(s) */
483
#define TARGET_TIOCGICOUNT        0x545D        /* read serial port inline interrupt counts */
484
#define TARGET_TIOCGHAYESESP   0x545E  /* Get Hayes ESP configuration */
485
#define TARGET_TIOCSHAYESESP   0x545F  /* Set Hayes ESP configuration */
486

    
487
/* Used for packet mode */
488
#define TARGET_TIOCPKT_DATA                 0
489
#define TARGET_TIOCPKT_FLUSHREAD         1
490
#define TARGET_TIOCPKT_FLUSHWRITE         2
491
#define TARGET_TIOCPKT_STOP                 4
492
#define TARGET_TIOCPKT_START                 8
493
#define TARGET_TIOCPKT_NOSTOP                16
494
#define TARGET_TIOCPKT_DOSTOP                32
495

    
496
#define TARGET_TIOCSER_TEMT    0x01        /* Transmitter physically empty */
497

    
498
/* from asm/termbits.h */
499

    
500
#define TARGET_NCCS 19
501

    
502
struct target_termios {
503
    unsigned int c_iflag;               /* input mode flags */
504
    unsigned int c_oflag;               /* output mode flags */
505
    unsigned int c_cflag;               /* control mode flags */
506
    unsigned int c_lflag;               /* local mode flags */
507
    unsigned char c_line;                    /* line discipline */
508
    unsigned char c_cc[TARGET_NCCS];                /* control characters */
509
};
510

    
511
/* c_iflag bits */
512
#define TARGET_IGNBRK  0000001
513
#define TARGET_BRKINT  0000002
514
#define TARGET_IGNPAR  0000004
515
#define TARGET_PARMRK  0000010
516
#define TARGET_INPCK   0000020
517
#define TARGET_ISTRIP  0000040
518
#define TARGET_INLCR   0000100
519
#define TARGET_IGNCR   0000200
520
#define TARGET_ICRNL   0000400
521
#define TARGET_IUCLC   0001000
522
#define TARGET_IXON    0002000
523
#define TARGET_IXANY   0004000
524
#define TARGET_IXOFF   0010000
525
#define TARGET_IMAXBEL 0020000
526

    
527
/* c_oflag bits */
528
#define TARGET_OPOST   0000001
529
#define TARGET_OLCUC   0000002
530
#define TARGET_ONLCR   0000004
531
#define TARGET_OCRNL   0000010
532
#define TARGET_ONOCR   0000020
533
#define TARGET_ONLRET  0000040
534
#define TARGET_OFILL   0000100
535
#define TARGET_OFDEL   0000200
536
#define TARGET_NLDLY   0000400
537
#define   TARGET_NL0   0000000
538
#define   TARGET_NL1   0000400
539
#define TARGET_CRDLY   0003000
540
#define   TARGET_CR0   0000000
541
#define   TARGET_CR1   0001000
542
#define   TARGET_CR2   0002000
543
#define   TARGET_CR3   0003000
544
#define TARGET_TABDLY  0014000
545
#define   TARGET_TAB0  0000000
546
#define   TARGET_TAB1  0004000
547
#define   TARGET_TAB2  0010000
548
#define   TARGET_TAB3  0014000
549
#define   TARGET_XTABS 0014000
550
#define TARGET_BSDLY   0020000
551
#define   TARGET_BS0   0000000
552
#define   TARGET_BS1   0020000
553
#define TARGET_VTDLY   0040000
554
#define   TARGET_VT0   0000000
555
#define   TARGET_VT1   0040000
556
#define TARGET_FFDLY   0100000
557
#define   TARGET_FF0   0000000
558
#define   TARGET_FF1   0100000
559

    
560
/* c_cflag bit meaning */
561
#define TARGET_CBAUD   0010017
562
#define  TARGET_B0     0000000         /* hang up */
563
#define  TARGET_B50    0000001
564
#define  TARGET_B75    0000002
565
#define  TARGET_B110   0000003
566
#define  TARGET_B134   0000004
567
#define  TARGET_B150   0000005
568
#define  TARGET_B200   0000006
569
#define  TARGET_B300   0000007
570
#define  TARGET_B600   0000010
571
#define  TARGET_B1200  0000011
572
#define  TARGET_B1800  0000012
573
#define  TARGET_B2400  0000013
574
#define  TARGET_B4800  0000014
575
#define  TARGET_B9600  0000015
576
#define  TARGET_B19200 0000016
577
#define  TARGET_B38400 0000017
578
#define TARGET_EXTA B19200
579
#define TARGET_EXTB B38400
580
#define TARGET_CSIZE   0000060
581
#define   TARGET_CS5   0000000
582
#define   TARGET_CS6   0000020
583
#define   TARGET_CS7   0000040
584
#define   TARGET_CS8   0000060
585
#define TARGET_CSTOPB  0000100
586
#define TARGET_CREAD   0000200
587
#define TARGET_PARENB  0000400
588
#define TARGET_PARODD  0001000
589
#define TARGET_HUPCL   0002000
590
#define TARGET_CLOCAL  0004000
591
#define TARGET_CBAUDEX 0010000
592
#define  TARGET_B57600  0010001
593
#define  TARGET_B115200 0010002
594
#define  TARGET_B230400 0010003
595
#define  TARGET_B460800 0010004
596
#define TARGET_CIBAUD    002003600000  /* input baud rate (not used) */
597
#define TARGET_CRTSCTS   020000000000          /* flow control */
598

    
599
/* c_lflag bits */
600
#define TARGET_ISIG    0000001
601
#define TARGET_ICANON  0000002
602
#define TARGET_XCASE   0000004
603
#define TARGET_ECHO    0000010
604
#define TARGET_ECHOE   0000020
605
#define TARGET_ECHOK   0000040
606
#define TARGET_ECHONL  0000100
607
#define TARGET_NOFLSH  0000200
608
#define TARGET_TOSTOP  0000400
609
#define TARGET_ECHOCTL 0001000
610
#define TARGET_ECHOPRT 0002000
611
#define TARGET_ECHOKE  0004000
612
#define TARGET_FLUSHO  0010000
613
#define TARGET_PENDIN  0040000
614
#define TARGET_IEXTEN  0100000
615

    
616
/* c_cc character offsets */
617
#define TARGET_VINTR        0
618
#define TARGET_VQUIT        1
619
#define TARGET_VERASE        2
620
#define TARGET_VKILL        3
621
#define TARGET_VEOF        4
622
#define TARGET_VTIME        5
623
#define TARGET_VMIN        6
624
#define TARGET_VSWTC        7
625
#define TARGET_VSTART        8
626
#define TARGET_VSTOP        9
627
#define TARGET_VSUSP        10
628
#define TARGET_VEOL        11
629
#define TARGET_VREPRINT        12
630
#define TARGET_VDISCARD        13
631
#define TARGET_VWERASE        14
632
#define TARGET_VLNEXT        15
633
#define TARGET_VEOL2        16
634

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

    
637
#define TARGET_SNDCTL_COPR_HALT           0xc0144307
638
#define TARGET_SNDCTL_COPR_LOAD           0xcfb04301
639
#define TARGET_SNDCTL_COPR_RCODE          0xc0144303
640
#define TARGET_SNDCTL_COPR_RCVMSG         0x8fa44309
641
#define TARGET_SNDCTL_COPR_RDATA          0xc0144302
642
#define TARGET_SNDCTL_COPR_RESET          0x00004300
643
#define TARGET_SNDCTL_COPR_RUN            0xc0144306
644
#define TARGET_SNDCTL_COPR_SENDMSG        0xcfa44308
645
#define TARGET_SNDCTL_COPR_WCODE          0x40144305
646
#define TARGET_SNDCTL_COPR_WDATA          0x40144304
647
#define TARGET_SNDCTL_DSP_CHANNELS        0xc0045006
648
#define TARGET_SNDCTL_DSP_GETBLKSIZE      0xc0045004
649
#define TARGET_SNDCTL_DSP_GETCAPS         0x8004500f
650
#define TARGET_SNDCTL_DSP_GETFMTS         0x8004500b
651
#define TARGET_SNDCTL_DSP_GETIPTR         0x800c5011
652
#define TARGET_SNDCTL_DSP_GETISPACE       0x8010500d
653
#define TARGET_SNDCTL_DSP_GETOPTR         0x800c5012
654
#define TARGET_SNDCTL_DSP_GETOSPACE       0x8010500c
655
#define TARGET_SNDCTL_DSP_GETTRIGGER      0x80045010
656
#define TARGET_SNDCTL_DSP_MAPINBUF        0x80085013
657
#define TARGET_SNDCTL_DSP_MAPOUTBUF       0x80085014
658
#define TARGET_SNDCTL_DSP_NONBLOCK        0x0000500e
659
#define TARGET_SNDCTL_DSP_POST            0x00005008
660
#define TARGET_SNDCTL_DSP_RESET           0x00005000
661
#define TARGET_SNDCTL_DSP_SAMPLESIZE      0xc0045005
662
#define TARGET_SNDCTL_DSP_SETDUPLEX       0x00005016
663
#define TARGET_SNDCTL_DSP_SETFMT          0xc0045005
664
#define TARGET_SNDCTL_DSP_SETFRAGMENT     0xc004500a
665
#define TARGET_SNDCTL_DSP_SETSYNCRO       0x00005015
666
#define TARGET_SNDCTL_DSP_SETTRIGGER      0x40045010
667
#define TARGET_SNDCTL_DSP_SPEED           0xc0045002
668
#define TARGET_SNDCTL_DSP_STEREO          0xc0045003
669
#define TARGET_SNDCTL_DSP_SUBDIVIDE       0xc0045009
670
#define TARGET_SNDCTL_DSP_SYNC            0x00005001
671
#define TARGET_SNDCTL_FM_4OP_ENABLE       0x4004510f
672
#define TARGET_SNDCTL_FM_LOAD_INSTR       0x40285107
673
#define TARGET_SNDCTL_MIDI_INFO           0xc074510c
674
#define TARGET_SNDCTL_MIDI_MPUCMD         0xc0216d02
675
#define TARGET_SNDCTL_MIDI_MPUMODE        0xc0046d01
676
#define TARGET_SNDCTL_MIDI_PRETIME        0xc0046d00
677
#define TARGET_SNDCTL_PMGR_ACCESS         0xcfb85110
678
#define TARGET_SNDCTL_PMGR_IFACE          0xcfb85001
679
#define TARGET_SNDCTL_SEQ_CTRLRATE        0xc0045103
680
#define TARGET_SNDCTL_SEQ_GETINCOUNT      0x80045105
681
#define TARGET_SNDCTL_SEQ_GETOUTCOUNT     0x80045104
682
#define TARGET_SNDCTL_SEQ_NRMIDIS         0x8004510b
683
#define TARGET_SNDCTL_SEQ_NRSYNTHS        0x8004510a
684
#define TARGET_SNDCTL_SEQ_OUTOFBAND       0x40085112
685
#define TARGET_SNDCTL_SEQ_PANIC           0x00005111
686
#define TARGET_SNDCTL_SEQ_PERCMODE        0x40045106
687
#define TARGET_SNDCTL_SEQ_RESET           0x00005100
688
#define TARGET_SNDCTL_SEQ_RESETSAMPLES    0x40045109
689
#define TARGET_SNDCTL_SEQ_SYNC            0x00005101
690
#define TARGET_SNDCTL_SEQ_TESTMIDI        0x40045108
691
#define TARGET_SNDCTL_SEQ_THRESHOLD       0x4004510d
692
#define TARGET_SNDCTL_SEQ_TRESHOLD        0x4004510d
693
#define TARGET_SNDCTL_SYNTH_INFO          0xc08c5102
694
#define TARGET_SNDCTL_SYNTH_MEMAVL        0xc004510e
695
#define TARGET_SNDCTL_TMR_CONTINUE        0x00005404
696
#define TARGET_SNDCTL_TMR_METRONOME       0x40045407
697
#define TARGET_SNDCTL_TMR_SELECT          0x40045408
698
#define TARGET_SNDCTL_TMR_SOURCE          0xc0045406
699
#define TARGET_SNDCTL_TMR_START           0x00005402
700
#define TARGET_SNDCTL_TMR_STOP            0x00005403
701
#define TARGET_SNDCTL_TMR_TEMPO           0xc0045405
702
#define TARGET_SNDCTL_TMR_TIMEBASE        0xc0045401
703
#define TARGET_SOUND_PCM_WRITE_FILTER     0xc0045007
704
#define TARGET_SOUND_PCM_READ_RATE        0x80045002
705
#define TARGET_SOUND_PCM_READ_CHANNELS    0x80045006
706
#define TARGET_SOUND_PCM_READ_BITS        0x80045005
707
#define TARGET_SOUND_PCM_READ_FILTER      0x80045007
708
#define TARGET_SOUND_MIXER_INFO           0x80304d65
709
#define TARGET_SOUND_MIXER_ACCESS         0xc0804d66
710
#define TARGET_SOUND_MIXER_PRIVATE1       0xc0044d6f
711
#define TARGET_SOUND_MIXER_PRIVATE2       0xc0044d70
712
#define TARGET_SOUND_MIXER_PRIVATE3       0xc0044d71
713
#define TARGET_SOUND_MIXER_PRIVATE4       0xc0044d72
714
#define TARGET_SOUND_MIXER_PRIVATE5       0xc0044d73
715
#define TARGET_SOUND_MIXER_READ_VOLUME    0x80044d00
716
#define TARGET_SOUND_MIXER_READ_BASS      0x80044d01
717
#define TARGET_SOUND_MIXER_READ_TREBLE    0x80044d02
718
#define TARGET_SOUND_MIXER_READ_SYNTH     0x80044d03
719
#define TARGET_SOUND_MIXER_READ_PCM       0x80044d04
720
#define TARGET_SOUND_MIXER_READ_SPEAKER   0x80044d05
721
#define TARGET_SOUND_MIXER_READ_LINE      0x80044d06
722
#define TARGET_SOUND_MIXER_READ_MIC       0x80044d07
723
#define TARGET_SOUND_MIXER_READ_CD        0x80044d08
724
#define TARGET_SOUND_MIXER_READ_IMIX      0x80044d09
725
#define TARGET_SOUND_MIXER_READ_ALTPCM    0x80044d0a
726
#define TARGET_SOUND_MIXER_READ_RECLEV    0x80044d0b
727
#define TARGET_SOUND_MIXER_READ_IGAIN     0x80044d0c
728
#define TARGET_SOUND_MIXER_READ_OGAIN     0x80044d0d
729
#define TARGET_SOUND_MIXER_READ_LINE1     0x80044d0e
730
#define TARGET_SOUND_MIXER_READ_LINE2     0x80044d0f
731
#define TARGET_SOUND_MIXER_READ_LINE3     0x80044d10
732
#define TARGET_SOUND_MIXER_READ_MUTE      0x80044d1f
733
#define TARGET_SOUND_MIXER_READ_ENHANCE   0x80044d1f
734
#define TARGET_SOUND_MIXER_READ_LOUD      0x80044d1f
735
#define TARGET_SOUND_MIXER_READ_RECSRC    0x80044dff
736
#define TARGET_SOUND_MIXER_READ_DEVMASK   0x80044dfe
737
#define TARGET_SOUND_MIXER_READ_RECMASK   0x80044dfd
738
#define TARGET_SOUND_MIXER_READ_STEREODEVS  0x80044dfb
739
#define TARGET_SOUND_MIXER_READ_CAPS      0x80044dfc
740
#define TARGET_SOUND_MIXER_WRITE_VOLUME   0xc0044d00
741
#define TARGET_SOUND_MIXER_WRITE_BASS     0xc0044d01
742
#define TARGET_SOUND_MIXER_WRITE_TREBLE   0xc0044d02
743
#define TARGET_SOUND_MIXER_WRITE_SYNTH    0xc0044d03
744
#define TARGET_SOUND_MIXER_WRITE_PCM      0xc0044d04
745
#define TARGET_SOUND_MIXER_WRITE_SPEAKER  0xc0044d05
746
#define TARGET_SOUND_MIXER_WRITE_LINE     0xc0044d06
747
#define TARGET_SOUND_MIXER_WRITE_MIC      0xc0044d07
748
#define TARGET_SOUND_MIXER_WRITE_CD       0xc0044d08
749
#define TARGET_SOUND_MIXER_WRITE_IMIX     0xc0044d09
750
#define TARGET_SOUND_MIXER_WRITE_ALTPCM   0xc0044d0a
751
#define TARGET_SOUND_MIXER_WRITE_RECLEV   0xc0044d0b
752
#define TARGET_SOUND_MIXER_WRITE_IGAIN    0xc0044d0c
753
#define TARGET_SOUND_MIXER_WRITE_OGAIN    0xc0044d0d
754
#define TARGET_SOUND_MIXER_WRITE_LINE1    0xc0044d0e
755
#define TARGET_SOUND_MIXER_WRITE_LINE2    0xc0044d0f
756
#define TARGET_SOUND_MIXER_WRITE_LINE3    0xc0044d10
757
#define TARGET_SOUND_MIXER_WRITE_MUTE     0xc0044d1f
758
#define TARGET_SOUND_MIXER_WRITE_ENHANCE  0xc0044d1f
759
#define TARGET_SOUND_MIXER_WRITE_LOUD     0xc0044d1f
760
#define TARGET_SOUND_MIXER_WRITE_RECSRC   0xc0044dff