]> git.proxmox.com Git - qemu.git/commitdiff
Definitions needed for Alpha linux user-mode emulation.
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 5 Apr 2007 07:06:55 +0000 (07:06 +0000)
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 5 Apr 2007 07:06:55 +0000 (07:06 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2599 c046a42c-6fe2-441c-8c8c-71466251a162

linux-user/alpha/syscall.h [new file with mode: 0644]
linux-user/alpha/syscall_nr.h [new file with mode: 0644]
linux-user/alpha/termbits.h [new file with mode: 0644]

diff --git a/linux-user/alpha/syscall.h b/linux-user/alpha/syscall.h
new file mode 100644 (file)
index 0000000..def680e
--- /dev/null
@@ -0,0 +1,115 @@
+/* default linux values for the selectors */
+#define __USER_DS      (1)
+
+struct target_pt_regs {
+       target_ulong r0;
+       target_ulong r1;
+       target_ulong r2;
+       target_ulong r3;
+       target_ulong r4;
+       target_ulong r5;
+       target_ulong r6;
+       target_ulong r7;
+       target_ulong r8;
+       target_ulong r19;
+       target_ulong r20;
+       target_ulong r21;
+       target_ulong r22;
+       target_ulong r23;
+       target_ulong r24;
+       target_ulong r25;
+       target_ulong r26;
+       target_ulong r27;
+       target_ulong r28;
+       target_ulong hae;
+/* JRP - These are the values provided to a0-a2 by PALcode */
+       target_ulong trap_a0;
+       target_ulong trap_a1;
+       target_ulong trap_a2;
+/* These are saved by PAL-code: */
+       target_ulong ps;
+       target_ulong pc;
+       target_ulong gp;
+       target_ulong r16;
+       target_ulong r17;
+       target_ulong r18;
+/* Those is needed by qemu to temporary store the user stack pointer */
+        target_ulong usp;
+        target_ulong unique;
+};
+
+#define TARGET_SEMOP           1
+#define TARGET_SEMGET          2
+#define TARGET_SEMCTL          3 
+#define TARGET_MSGSND          11 
+#define TARGET_MSGRCV          12
+#define TARGET_MSGGET          13
+#define TARGET_MSGCTL          14
+#define TARGET_SHMAT           21
+#define TARGET_SHMDT           22
+#define TARGET_SHMGET          23
+#define TARGET_SHMCTL          24
+
+struct target_msgbuf {
+       int mtype;
+       char mtext[1];
+};
+
+struct target_ipc_kludge {
+       unsigned int    msgp;   /* Really (struct msgbuf *) */
+       int msgtyp;
+};     
+
+struct target_ipc_perm {
+       int     key;
+       unsigned short  uid;
+       unsigned short  gid;
+       unsigned short  cuid;
+       unsigned short  cgid;
+       unsigned short  mode;
+       unsigned short  seq;
+};
+
+struct target_msqid_ds {
+       struct target_ipc_perm  msg_perm;
+       unsigned int            msg_first;      /* really struct target_msg* */
+       unsigned int            msg_last;       /* really struct target_msg* */
+       unsigned int            msg_stime;      /* really target_time_t */
+       unsigned int            msg_rtime;      /* really target_time_t */
+       unsigned int            msg_ctime;      /* really target_time_t */
+       unsigned int            wwait;          /* really struct wait_queue* */
+       unsigned int            rwait;          /* really struct wait_queue* */
+       unsigned short          msg_cbytes;
+       unsigned short          msg_qnum;
+       unsigned short          msg_qbytes;
+       unsigned short          msg_lspid;
+       unsigned short          msg_lrpid;
+};
+
+struct target_shmid_ds {
+       struct target_ipc_perm  shm_perm;
+       int                     shm_segsz;
+       unsigned int            shm_atime;      /* really target_time_t */
+       unsigned int            shm_dtime;      /* really target_time_t */
+       unsigned int            shm_ctime;      /* really target_time_t */
+       unsigned short          shm_cpid;
+       unsigned short          shm_lpid;
+       short                   shm_nattch;
+       unsigned short          shm_npages;
+       unsigned long           *shm_pages;
+       void                    *attaches;      /* really struct shm_desc * */
+};
+
+#define TARGET_IPC_RMID        0
+#define TARGET_IPC_SET 1
+#define TARGET_IPC_STAT        2
+
+union target_semun {
+    int val;
+    unsigned int buf;  /* really struct semid_ds * */
+    unsigned int array; /* really unsigned short * */
+    unsigned int __buf;        /* really struct seminfo * */
+    unsigned int __pad;        /* really void* */
+};
+
+#define UNAME_MACHINE "alpha"
diff --git a/linux-user/alpha/syscall_nr.h b/linux-user/alpha/syscall_nr.h
new file mode 100644 (file)
index 0000000..b39b6d8
--- /dev/null
@@ -0,0 +1,381 @@
+#define TARGET_NR_osf_syscall    0     /* not implemented */
+#define TARGET_NR_exit           1
+#define TARGET_NR_fork           2
+#define TARGET_NR_read           3
+#define TARGET_NR_write                  4
+#define TARGET_NR_osf_old_open   5     /* not implemented */
+#define TARGET_NR_close                  6
+#define TARGET_NR_osf_wait4              7
+#define TARGET_NR_osf_old_creat          8     /* not implemented */
+#define TARGET_NR_link           9
+#define TARGET_NR_unlink                10
+#define TARGET_NR_osf_execve            11     /* not implemented */
+#define TARGET_NR_chdir                 12
+#define TARGET_NR_fchdir                13
+#define TARGET_NR_mknod                 14
+#define TARGET_NR_chmod                 15
+#define TARGET_NR_chown                 16
+#define TARGET_NR_brk           17
+#define TARGET_NR_osf_getfsstat         18     /* not implemented */
+#define TARGET_NR_lseek                 19
+#define TARGET_NR_getxpid               20
+#define TARGET_NR_osf_mount             21
+#define TARGET_NR_umount                22
+#define TARGET_NR_setuid                23
+#define TARGET_NR_getxuid               24
+#define TARGET_NR_exec_with_loader      25     /* not implemented */
+#define TARGET_NR_ptrace                26
+#define TARGET_NR_osf_nrecvmsg  27     /* not implemented */
+#define TARGET_NR_osf_nsendmsg  28     /* not implemented */
+#define TARGET_NR_osf_nrecvfrom         29     /* not implemented */
+#define TARGET_NR_osf_naccept   30     /* not implemented */
+#define TARGET_NR_osf_ngetpeername      31     /* not implemented */
+#define TARGET_NR_osf_ngetsockname      32     /* not implemented */
+#define TARGET_NR_access                33
+#define TARGET_NR_osf_chflags   34     /* not implemented */
+#define TARGET_NR_osf_fchflags  35     /* not implemented */
+#define TARGET_NR_sync          36
+#define TARGET_NR_kill          37
+#define TARGET_NR_osf_old_stat  38     /* not implemented */
+#define TARGET_NR_setpgid               39
+#define TARGET_NR_osf_old_lstat         40     /* not implemented */
+#define TARGET_NR_dup           41
+#define TARGET_NR_pipe          42
+#define TARGET_NR_osf_set_program_attributes   43
+#define TARGET_NR_osf_profil            44     /* not implemented */
+#define TARGET_NR_open          45
+#define TARGET_NR_osf_old_sigaction     46     /* not implemented */
+#define TARGET_NR_getxgid               47
+#define TARGET_NR_osf_sigprocmask       48
+#define TARGET_NR_osf_getlogin  49     /* not implemented */
+#define TARGET_NR_osf_setlogin  50     /* not implemented */
+#define TARGET_NR_acct          51
+#define TARGET_NR_sigpending            52
+
+#define TARGET_NR_ioctl                 54
+#define TARGET_NR_osf_reboot            55     /* not implemented */
+#define TARGET_NR_osf_revoke            56     /* not implemented */
+#define TARGET_NR_symlink               57
+#define TARGET_NR_readlink              58
+#define TARGET_NR_execve                59
+#define TARGET_NR_umask                 60
+#define TARGET_NR_chroot                61
+#define TARGET_NR_osf_old_fstat         62     /* not implemented */
+#define TARGET_NR_getpgrp               63
+#define TARGET_NR_getpagesize   64
+#define TARGET_NR_osf_mremap            65     /* not implemented */
+#define TARGET_NR_vfork                 66
+#define TARGET_NR_stat          67
+#define TARGET_NR_lstat                 68
+#define TARGET_NR_osf_sbrk              69     /* not implemented */
+#define TARGET_NR_osf_sstk              70     /* not implemented */
+#define TARGET_NR_mmap          71     /* OSF/1 mmap is superset of Linux */
+#define TARGET_NR_osf_old_vadvise       72     /* not implemented */
+#define TARGET_NR_munmap                73
+#define TARGET_NR_mprotect              74
+#define TARGET_NR_madvise               75
+#define TARGET_NR_vhangup               76
+#define TARGET_NR_osf_kmodcall  77     /* not implemented */
+#define TARGET_NR_osf_mincore   78     /* not implemented */
+#define TARGET_NR_getgroups             79
+#define TARGET_NR_setgroups             80
+#define TARGET_NR_osf_old_getpgrp       81     /* not implemented */
+#define TARGET_NR_setpgrp               82     /* BSD alias for setpgid */
+#define TARGET_NR_osf_setitimer         83
+#define TARGET_NR_osf_old_wait  84     /* not implemented */
+#define TARGET_NR_osf_table             85     /* not implemented */
+#define TARGET_NR_osf_getitimer         86
+#define TARGET_NR_gethostname   87
+#define TARGET_NR_sethostname   88
+#define TARGET_NR_getdtablesize         89
+#define TARGET_NR_dup2          90
+#define TARGET_NR_fstat                 91
+#define TARGET_NR_fcntl                 92
+#define TARGET_NR_osf_select            93
+#define TARGET_NR_poll          94
+#define TARGET_NR_fsync                 95
+#define TARGET_NR_setpriority   96
+#define TARGET_NR_socket                97
+#define TARGET_NR_connect               98
+#define TARGET_NR_accept                99
+#define TARGET_NR_getpriority  100
+#define TARGET_NR_send         101
+#define TARGET_NR_recv         102
+#define TARGET_NR_sigreturn            103
+#define TARGET_NR_bind         104
+#define TARGET_NR_setsockopt           105
+#define TARGET_NR_listen               106
+#define TARGET_NR_osf_plock            107     /* not implemented */
+#define TARGET_NR_osf_old_sigvec       108     /* not implemented */
+#define TARGET_NR_osf_old_sigblock     109     /* not implemented */
+#define TARGET_NR_osf_old_sigsetmask   110     /* not implemented */
+#define TARGET_NR_sigsuspend           111
+#define TARGET_NR_osf_sigstack 112
+#define TARGET_NR_recvmsg              113
+#define TARGET_NR_sendmsg              114
+#define TARGET_NR_osf_old_vtrace       115     /* not implemented */
+#define TARGET_NR_osf_gettimeofday     116
+#define TARGET_NR_osf_getrusage        117
+#define TARGET_NR_getsockopt           118
+
+#define TARGET_NR_readv                120
+#define TARGET_NR_writev               121
+#define TARGET_NR_osf_settimeofday     122
+#define TARGET_NR_fchown               123
+#define TARGET_NR_fchmod               124
+#define TARGET_NR_recvfrom             125
+#define TARGET_NR_setreuid             126
+#define TARGET_NR_setregid             127
+#define TARGET_NR_rename               128
+#define TARGET_NR_truncate             129
+#define TARGET_NR_ftruncate            130
+#define TARGET_NR_flock                131
+#define TARGET_NR_setgid               132
+#define TARGET_NR_sendto               133
+#define TARGET_NR_shutdown             134
+#define TARGET_NR_socketpair           135
+#define TARGET_NR_mkdir                136
+#define TARGET_NR_rmdir                137
+#define TARGET_NR_osf_utimes           138
+#define TARGET_NR_osf_old_sigreturn    139     /* not implemented */
+#define TARGET_NR_osf_adjtime  140     /* not implemented */
+#define TARGET_NR_getpeername  141
+#define TARGET_NR_osf_gethostid        142     /* not implemented */
+#define TARGET_NR_osf_sethostid        143     /* not implemented */
+#define TARGET_NR_getrlimit            144
+#define TARGET_NR_setrlimit            145
+#define TARGET_NR_osf_old_killpg       146     /* not implemented */
+#define TARGET_NR_setsid               147
+#define TARGET_NR_quotactl             148
+#define TARGET_NR_osf_oldquota 149     /* not implemented */
+#define TARGET_NR_getsockname  150
+
+#define TARGET_NR_osf_pid_block        153     /* not implemented */
+#define TARGET_NR_osf_pid_unblock      154     /* not implemented */
+
+#define TARGET_NR_sigaction            156
+#define TARGET_NR_osf_sigwaitprim      157     /* not implemented */
+#define TARGET_NR_osf_nfssvc           158     /* not implemented */
+#define TARGET_NR_osf_getdirentries    159
+#define TARGET_NR_osf_statfs           160
+#define TARGET_NR_osf_fstatfs  161
+
+#define TARGET_NR_osf_asynch_daemon    163     /* not implemented */
+#define TARGET_NR_osf_getfh            164     /* not implemented */   
+#define TARGET_NR_osf_getdomainname    165
+#define TARGET_NR_setdomainname        166
+
+#define TARGET_NR_osf_exportfs 169     /* not implemented */
+
+#define TARGET_NR_osf_alt_plock        181     /* not implemented */
+
+#define TARGET_NR_osf_getmnt           184     /* not implemented */
+
+#define TARGET_NR_osf_alt_sigpending   187     /* not implemented */
+#define TARGET_NR_osf_alt_setsid       188     /* not implemented */
+
+#define TARGET_NR_osf_swapon           199
+#define TARGET_NR_msgctl               200
+#define TARGET_NR_msgget               201
+#define TARGET_NR_msgrcv               202
+#define TARGET_NR_msgsnd               203
+#define TARGET_NR_semctl               204
+#define TARGET_NR_semget               205
+#define TARGET_NR_semop                206
+#define TARGET_NR_osf_utsname  207
+#define TARGET_NR_lchown               208
+#define TARGET_NR_osf_shmat            209
+#define TARGET_NR_shmctl               210
+#define TARGET_NR_shmdt                211
+#define TARGET_NR_shmget               212
+#define TARGET_NR_osf_mvalid           213     /* not implemented */
+#define TARGET_NR_osf_getaddressconf   214     /* not implemented */
+#define TARGET_NR_osf_msleep           215     /* not implemented */
+#define TARGET_NR_osf_mwakeup  216     /* not implemented */
+#define TARGET_NR_msync                217
+#define TARGET_NR_osf_signal           218     /* not implemented */
+#define TARGET_NR_osf_utc_gettime      219     /* not implemented */
+#define TARGET_NR_osf_utc_adjtime      220     /* not implemented */
+
+#define TARGET_NR_osf_security 222     /* not implemented */
+#define TARGET_NR_osf_kloadcall        223     /* not implemented */
+
+#define TARGET_NR_getpgid              233
+#define TARGET_NR_getsid               234
+#define TARGET_NR_sigaltstack  235
+#define TARGET_NR_osf_waitid           236     /* not implemented */
+#define TARGET_NR_osf_priocntlset      237     /* not implemented */
+#define TARGET_NR_osf_sigsendset       238     /* not implemented */
+#define TARGET_NR_osf_set_speculative  239     /* not implemented */
+#define TARGET_NR_osf_msfs_syscall     240     /* not implemented */
+#define TARGET_NR_osf_sysinfo  241
+#define TARGET_NR_osf_uadmin           242     /* not implemented */
+#define TARGET_NR_osf_fuser            243     /* not implemented */
+#define TARGET_NR_osf_proplist_syscall    244
+#define TARGET_NR_osf_ntp_adjtime      245     /* not implemented */
+#define TARGET_NR_osf_ntp_gettime      246     /* not implemented */
+#define TARGET_NR_osf_pathconf 247     /* not implemented */
+#define TARGET_NR_osf_fpathconf        248     /* not implemented */
+
+#define TARGET_NR_osf_uswitch  250     /* not implemented */
+#define TARGET_NR_osf_usleep_thread    251
+#define TARGET_NR_osf_audcntl  252     /* not implemented */
+#define TARGET_NR_osf_audgen           253     /* not implemented */
+#define TARGET_NR_sysfs                254
+#define TARGET_NR_osf_subsys_info      255     /* not implemented */
+#define TARGET_NR_osf_getsysinfo       256
+#define TARGET_NR_osf_setsysinfo       257
+#define TARGET_NR_osf_afs_syscall      258     /* not implemented */
+#define TARGET_NR_osf_swapctl  259     /* not implemented */
+#define TARGET_NR_osf_memcntl  260     /* not implemented */
+#define TARGET_NR_osf_fdatasync        261     /* not implemented */
+
+
+/*
+ * Linux-specific system calls begin at 300
+ */
+#define TARGET_NR_bdflush              300
+#define TARGET_NR_sethae               301
+#define TARGET_NR_mount                302
+#define TARGET_NR_old_adjtimex 303
+#define TARGET_NR_swapoff              304
+#define TARGET_NR_getdents             305
+#define TARGET_NR_create_module        306
+#define TARGET_NR_init_module  307
+#define TARGET_NR_delete_module        308
+#define TARGET_NR_get_kernel_syms      309
+#define TARGET_NR_syslog               310
+#define TARGET_NR_reboot               311
+#define TARGET_NR_clone                312
+#define TARGET_NR_uselib               313
+#define TARGET_NR_mlock                314
+#define TARGET_NR_munlock              315
+#define TARGET_NR_mlockall             316
+#define TARGET_NR_munlockall           317
+#define TARGET_NR_sysinfo              318
+#define TARGET_NR__sysctl              319
+/* 320 was sys_idle.  */
+#define TARGET_NR_oldumount            321
+#define TARGET_NR_swapon               322
+#define TARGET_NR_times                323
+#define TARGET_NR_personality  324
+#define TARGET_NR_setfsuid             325
+#define TARGET_NR_setfsgid             326
+#define TARGET_NR_ustat                327
+#define TARGET_NR_statfs               328
+#define TARGET_NR_fstatfs              329
+#define TARGET_NR_sched_setparam               330
+#define TARGET_NR_sched_getparam               331
+#define TARGET_NR_sched_setscheduler           332
+#define TARGET_NR_sched_getscheduler           333
+#define TARGET_NR_sched_yield          334
+#define TARGET_NR_sched_get_priority_max       335
+#define TARGET_NR_sched_get_priority_min       336
+#define TARGET_NR_sched_rr_get_interval        337
+#define TARGET_NR_afs_syscall          338
+#define TARGET_NR_uname                        339
+#define TARGET_NR_nanosleep                    340
+#define TARGET_NR_mremap                       341
+#define TARGET_NR_nfsservctl                   342
+#define TARGET_NR_setresuid                    343
+#define TARGET_NR_getresuid                    344
+#define TARGET_NR_pciconfig_read               345
+#define TARGET_NR_pciconfig_write              346
+#define TARGET_NR_query_module         347
+#define TARGET_NR_prctl                        348
+#define TARGET_NR_pread64                      349
+#define TARGET_NR_pwrite64                     350
+#define TARGET_NR_rt_sigreturn         351
+#define TARGET_NR_rt_sigaction         352
+#define TARGET_NR_rt_sigprocmask               353
+#define TARGET_NR_rt_sigpending                354
+#define TARGET_NR_rt_sigtimedwait              355
+#define TARGET_NR_rt_sigqueueinfo              356
+#define TARGET_NR_rt_sigsuspend                357
+#define TARGET_NR_select                       358
+#define TARGET_NR_gettimeofday         359
+#define TARGET_NR_settimeofday         360
+#define TARGET_NR_getitimer                    361
+#define TARGET_NR_setitimer                    362
+#define TARGET_NR_utimes                       363
+#define TARGET_NR_getrusage                    364
+#define TARGET_NR_wait4                        365
+#define TARGET_NR_adjtimex                     366
+#define TARGET_NR_getcwd                       367
+#define TARGET_NR_capget                       368
+#define TARGET_NR_capset                       369
+#define TARGET_NR_sendfile                     370
+#define TARGET_NR_setresgid                    371
+#define TARGET_NR_getresgid                    372
+#define TARGET_NR_dipc                 373
+#define TARGET_NR_pivot_root                   374
+#define TARGET_NR_mincore                      375
+#define TARGET_NR_pciconfig_iobase             376
+#define TARGET_NR_getdents64                   377
+#define TARGET_NR_gettid                       378
+#define TARGET_NR_readahead                    379
+/* 380 is unused */
+#define TARGET_NR_tkill                        381
+#define TARGET_NR_setxattr                     382
+#define TARGET_NR_lsetxattr                    383
+#define TARGET_NR_fsetxattr                    384
+#define TARGET_NR_getxattr                     385
+#define TARGET_NR_lgetxattr                    386
+#define TARGET_NR_fgetxattr                    387
+#define TARGET_NR_listxattr                    388
+#define TARGET_NR_llistxattr                   389
+#define TARGET_NR_flistxattr                   390
+#define TARGET_NR_removexattr          391
+#define TARGET_NR_lremovexattr         392
+#define TARGET_NR_fremovexattr         393
+#define TARGET_NR_futex                        394
+#define TARGET_NR_sched_setaffinity            395     
+#define TARGET_NR_sched_getaffinity            396
+#define TARGET_NR_tuxcall                      397
+#define TARGET_NR_io_setup                     398
+#define TARGET_NR_io_destroy                   399
+#define TARGET_NR_io_getevents         400
+#define TARGET_NR_io_submit                    401
+#define TARGET_NR_io_cancel                    402
+#define TARGET_NR_exit_group                   405
+#define TARGET_NR_lookup_dcookie               406
+#define TARGET_NR_sys_epoll_create             407
+#define TARGET_NR_sys_epoll_ctl                408
+#define TARGET_NR_sys_epoll_wait               409
+#define TARGET_NR_remap_file_pages             410
+#define TARGET_NR_set_tid_address              411
+#define TARGET_NR_restart_syscall              412
+#define TARGET_NR_fadvise64                    413
+#define TARGET_NR_timer_create         414
+#define TARGET_NR_timer_settime                415
+#define TARGET_NR_timer_gettime                416
+#define TARGET_NR_timer_getoverrun             417
+#define TARGET_NR_timer_delete         418
+#define TARGET_NR_clock_settime                419
+#define TARGET_NR_clock_gettime                420
+#define TARGET_NR_clock_getres         421
+#define TARGET_NR_clock_nanosleep              422
+#define TARGET_NR_semtimedop                   423
+#define TARGET_NR_tgkill                       424
+#define TARGET_NR_stat64                       425
+#define TARGET_NR_lstat64                      426
+#define TARGET_NR_fstat64                      427
+#define TARGET_NR_vserver                      428
+#define TARGET_NR_mbind                        429
+#define TARGET_NR_get_mempolicy                430
+#define TARGET_NR_set_mempolicy                431
+#define TARGET_NR_mq_open                      432
+#define TARGET_NR_mq_unlink                    433
+#define TARGET_NR_mq_timedsend         434
+#define TARGET_NR_mq_timedreceive              435
+#define TARGET_NR_mq_notify                    436
+#define TARGET_NR_mq_getsetattr                437
+#define TARGET_NR_waitid                       438
+#define TARGET_NR_add_key                      439
+#define TARGET_NR_request_key          440
+#define TARGET_NR_keyctl                       441
+#define TARGET_NR_ioprio_set                   442
+#define TARGET_NR_ioprio_get                   443
+#define TARGET_NR_inotify_init         444
+#define TARGET_NR_inotify_add_watch            445
+#define TARGET_NR_inotify_rm_watch             446
diff --git a/linux-user/alpha/termbits.h b/linux-user/alpha/termbits.h
new file mode 100644 (file)
index 0000000..a30c2a9
--- /dev/null
@@ -0,0 +1,265 @@
+typedef unsigned char  cc_t;
+typedef unsigned int   speed_t;
+typedef unsigned int   tcflag_t;
+
+#define TARGET_NCCS 19
+struct target_termios {
+       tcflag_t c_iflag;               /* input mode flags */
+       tcflag_t c_oflag;               /* output mode flags */
+       tcflag_t c_cflag;               /* control mode flags */
+       tcflag_t c_lflag;               /* local mode flags */
+       cc_t c_cc[TARGET_NCCS];         /* control characters */
+       cc_t c_line;                    /* line discipline (== c_cc[19]) */
+       speed_t c_ispeed;               /* input speed */
+       speed_t c_ospeed;               /* output speed */
+};
+
+/* c_cc characters */
+#define TARGET_VEOF 0
+#define TARGET_VEOL 1
+#define TARGET_VEOL2 2
+#define TARGET_VERASE 3
+#define TARGET_VWERASE 4
+#define TARGET_VKILL 5
+#define TARGET_VREPRINT 6
+#define TARGET_VSWTC 7
+#define TARGET_VINTR 8
+#define TARGET_VQUIT 9
+#define TARGET_VSUSP 10
+#define TARGET_VSTART 12
+#define TARGET_VSTOP 13
+#define TARGET_VLNEXT 14
+#define TARGET_VDISCARD 15
+#define TARGET_VMIN 16
+#define TARGET_VTIME 17
+
+/* c_iflag bits */
+#define TARGET_IGNBRK  0000001
+#define TARGET_BRKINT  0000002
+#define TARGET_IGNPAR  0000004
+#define TARGET_PARMRK  0000010
+#define TARGET_INPCK   0000020
+#define TARGET_ISTRIP  0000040
+#define TARGET_INLCR   0000100
+#define TARGET_IGNCR   0000200
+#define TARGET_ICRNL   0000400
+#define TARGET_IXON    0001000
+#define TARGET_IXOFF   0002000
+#define TARGET_IXANY   0004000
+#define TARGET_IUCLC   0010000
+#define TARGET_IMAXBEL 0020000
+#define TARGET_IUTF8   0040000
+
+/* c_oflag bits */
+#define TARGET_OPOST   0000001
+#define TARGET_ONLCR   0000002
+#define TARGET_OLCUC   0000004
+
+#define TARGET_OCRNL   0000010
+#define TARGET_ONOCR   0000020
+#define TARGET_ONLRET  0000040
+
+#define TARGET_OFILL   00000100
+#define TARGET_OFDEL   00000200
+#define TARGET_NLDLY   00001400
+#define   TARGET_NL0   00000000
+#define   TARGET_NL1   00000400
+#define   TARGET_NL2   00001000
+#define   TARGET_NL3   00001400
+#define TARGET_TABDLY  00006000
+#define   TARGET_TAB0  00000000
+#define   TARGET_TAB1  00002000
+#define   TARGET_TAB2  00004000
+#define   TARGET_TAB3  00006000
+#define TARGET_CRDLY   00030000
+#define   TARGET_CR0   00000000
+#define   TARGET_CR1   00010000
+#define   TARGET_CR2   00020000
+#define   TARGET_CR3   00030000
+#define TARGET_FFDLY   00040000
+#define   TARGET_FF0   00000000
+#define   TARGET_FF1   00040000
+#define TARGET_BSDLY   00100000
+#define   TARGET_BS0   00000000
+#define   TARGET_BS1   00100000
+#define TARGET_VTDLY   00200000
+#define   TARGET_VT0   00000000
+#define   TARGET_VT1   00200000
+#define TARGET_XTABS   01000000 /* Hmm.. Linux/i386 considers this part of TABDLY.. */
+
+/* c_cflag bit meaning */
+#define TARGET_CBAUD   0000037
+#define  TARGET_B0     0000000         /* hang up */
+#define  TARGET_B50    0000001
+#define  TARGET_B75    0000002
+#define  TARGET_B110   0000003
+#define  TARGET_B134   0000004
+#define  TARGET_B150   0000005
+#define  TARGET_B200   0000006
+#define  TARGET_B300   0000007
+#define  TARGET_B600   0000010
+#define  TARGET_B1200  0000011
+#define  TARGET_B1800  0000012
+#define  TARGET_B2400  0000013
+#define  TARGET_B4800  0000014
+#define  TARGET_B9600  0000015
+#define  TARGET_B19200 0000016
+#define  TARGET_B38400 0000017
+#define TARGET_EXTA B19200
+#define TARGET_EXTB B38400
+#define TARGET_CBAUDEX 0000000
+#define  TARGET_B57600   00020
+#define  TARGET_B115200  00021
+#define  TARGET_B230400  00022
+#define  TARGET_B460800  00023
+#define  TARGET_B500000  00024
+#define  TARGET_B576000  00025
+#define  TARGET_B921600  00026
+#define TARGET_B1000000  00027
+#define TARGET_B1152000  00030
+#define TARGET_B1500000  00031
+#define TARGET_B2000000  00032
+#define TARGET_B2500000  00033
+#define TARGET_B3000000  00034
+#define TARGET_B3500000  00035
+#define TARGET_B4000000  00036
+
+#define TARGET_CSIZE   00001400
+#define   TARGET_CS5   00000000
+#define   TARGET_CS6   00000400
+#define   TARGET_CS7   00001000
+#define   TARGET_CS8   00001400
+
+#define TARGET_CSTOPB  00002000
+#define TARGET_CREAD   00004000
+#define TARGET_PARENB  00010000
+#define TARGET_PARODD  00020000
+#define TARGET_HUPCL   00040000
+
+#define TARGET_CLOCAL  00100000
+#define TARGET_CMSPAR    010000000000          /* mark or space (stick) parity */
+#define TARGET_CRTSCTS   020000000000          /* flow control */
+
+/* c_lflag bits */
+#define TARGET_ISIG    0x00000080
+#define TARGET_ICANON  0x00000100
+#define TARGET_XCASE   0x00004000
+#define TARGET_ECHO    0x00000008
+#define TARGET_ECHOE   0x00000002
+#define TARGET_ECHOK   0x00000004
+#define TARGET_ECHONL  0x00000010
+#define TARGET_NOFLSH  0x80000000
+#define TARGET_TOSTOP  0x00400000
+#define TARGET_ECHOCTL 0x00000040
+#define TARGET_ECHOPRT 0x00000020
+#define TARGET_ECHOKE  0x00000001
+#define TARGET_FLUSHO  0x00800000
+#define TARGET_PENDIN  0x20000000
+#define TARGET_IEXTEN  0x00000400
+
+#define TARGET_FIOCLEX         _IO('f', 1)
+#define TARGET_FIONCLEX        _IO('f', 2)
+#define TARGET_FIOASYNC        _IOW('f', 125, int)
+#define TARGET_FIONBIO         _IOW('f', 126, int)
+#define TARGET_FIONREAD        _IOR('f', 127, int)
+#define TARGET_TIOCINQ         FIONREAD
+#define TARGET_FIOQSIZE        _IOR('f', 128, loff_t)
+
+#define TARGET_TIOCGETP        _IOR('t', 8, struct sgttyb)
+#define TARGET_TIOCSETP        _IOW('t', 9, struct sgttyb)
+#define TARGET_TIOCSETN        _IOW('t', 10, struct sgttyb)    /* TIOCSETP wo flush */
+
+#define TARGET_TIOCSETC        _IOW('t', 17, struct tchars)
+#define TARGET_TIOCGETC        _IOR('t', 18, struct tchars)
+#define TARGET_TCGETS          _IOR('t', 19, struct termios)
+#define TARGET_TCSETS          _IOW('t', 20, struct termios)
+#define TARGET_TCSETSW         _IOW('t', 21, struct termios)
+#define TARGET_TCSETSF         _IOW('t', 22, struct termios)
+
+#define TARGET_TCGETA          _IOR('t', 23, struct termio)
+#define TARGET_TCSETA          _IOW('t', 24, struct termio)
+#define TARGET_TCSETAW         _IOW('t', 25, struct termio)
+#define TARGET_TCSETAF         _IOW('t', 28, struct termio)
+
+#define TARGET_TCSBRK          _IO('t', 29)
+#define TARGET_TCXONC          _IO('t', 30)
+#define TARGET_TCFLSH          _IO('t', 31)
+
+#define TARGET_TIOCSWINSZ      _IOW('t', 103, struct winsize)
+#define TARGET_TIOCGWINSZ      _IOR('t', 104, struct winsize)
+#define        TARGET_TIOCSTART        _IO('t', 110)           /* start output, like ^Q */
+#define        TARGET_TIOCSTOP _IO('t', 111)           /* stop output, like ^S */
+#define TARGET_TIOCOUTQ        _IOR('t', 115, int)     /* output queue size */
+
+#define TARGET_TIOCGLTC        _IOR('t', 116, struct ltchars)
+#define TARGET_TIOCSLTC        _IOW('t', 117, struct ltchars)
+#define TARGET_TIOCSPGRP       _IOW('t', 118, int)
+#define TARGET_TIOCGPGRP       _IOR('t', 119, int)
+
+#define TARGET_TIOCEXCL        0x540C
+#define TARGET_TIOCNXCL        0x540D
+#define TARGET_TIOCSCTTY       0x540E
+
+#define TARGET_TIOCSTI         0x5412
+#define TARGET_TIOCMGET        0x5415
+#define TARGET_TIOCMBIS        0x5416
+#define TARGET_TIOCMBIC        0x5417
+#define TARGET_TIOCMSET        0x5418
+# define TARGET_TIOCM_LE       0x001
+# define TARGET_TIOCM_DTR      0x002
+# define TARGET_TIOCM_RTS      0x004
+# define TARGET_TIOCM_ST       0x008
+# define TARGET_TIOCM_SR       0x010
+# define TARGET_TIOCM_CTS      0x020
+# define TARGET_TIOCM_CAR      0x040
+# define TARGET_TIOCM_RNG      0x080
+# define TARGET_TIOCM_DSR      0x100
+# define TARGET_TIOCM_CD       TIOCM_CAR
+# define TARGET_TIOCM_RI       TIOCM_RNG
+# define TARGET_TIOCM_OUT1     0x2000
+# define TARGET_TIOCM_OUT2     0x4000
+# define TARGET_TIOCM_LOOP     0x8000
+
+#define TARGET_TIOCGSOFTCAR    0x5419
+#define TARGET_TIOCSSOFTCAR    0x541A
+#define TARGET_TIOCLINUX       0x541C
+#define TARGET_TIOCCONS        0x541D
+#define TARGET_TIOCGSERIAL     0x541E
+#define TARGET_TIOCSSERIAL     0x541F
+#define TARGET_TIOCPKT         0x5420
+# define TARGET_TIOCPKT_DATA            0
+# define TARGET_TIOCPKT_FLUSHREAD       1
+# define TARGET_TIOCPKT_FLUSHWRITE      2
+# define TARGET_TIOCPKT_STOP            4
+# define TARGET_TIOCPKT_START           8
+# define TARGET_TIOCPKT_NOSTOP         16
+# define TARGET_TIOCPKT_DOSTOP         32
+
+
+#define TARGET_TIOCNOTTY       0x5422
+#define TARGET_TIOCSETD        0x5423
+#define TARGET_TIOCGETD        0x5424
+#define TARGET_TCSBRKP         0x5425  /* Needed for POSIX tcsendbreak() */
+#define TARGET_TIOCSBRK        0x5427  /* BSD compatibility */
+#define TARGET_TIOCCBRK        0x5428  /* BSD compatibility */
+#define TARGET_TIOCGSID        0x5429  /* Return the session ID of FD */
+#define TARGET_TIOCGPTN        _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
+#define TARGET_TIOCSPTLCK      _IOW('T',0x31, int)  /* Lock/unlock Pty */
+
+#define TARGET_TIOCSERCONFIG   0x5453
+#define TARGET_TIOCSERGWILD    0x5454
+#define TARGET_TIOCSERSWILD    0x5455
+#define TARGET_TIOCGLCKTRMIOS  0x5456
+#define TARGET_TIOCSLCKTRMIOS  0x5457
+#define TARGET_TIOCSERGSTRUCT  0x5458 /* For debugging only */
+#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
+  /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+# define TARGET_TIOCSER_TEMT    0x01   /* Transmitter physically empty */
+#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
+#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
+
+#define TARGET_TIOCMIWAIT      0x545C  /* wait for a change on serial input line(s) */
+#define TARGET_TIOCGICOUNT     0x545D  /* read serial port inline interrupt counts */
+#define TARGET_TIOCGHAYESESP   0x545E  /* Get Hayes ESP configuration */
+#define TARGET_TIOCSHAYESESP   0x545F  /* Set Hayes ESP configuration */
+