diff --git a/configure b/configure index 492707a7b5..ba734673cc 100755 --- a/configure +++ b/configure @@ -1048,6 +1048,7 @@ elif test "$target_cpu" = "ppcemb" ; then elif test "$target_cpu" = "ppc64" ; then echo "TARGET_ARCH=ppc64" >> $config_mak echo "#define TARGET_ARCH \"ppc64\"" >> $config_h + echo "TARGET_ABI_DIR=ppc" >> $config_mak echo "#define TARGET_PPC 1" >> $config_h echo "#define TARGET_PPC64 1" >> $config_h elif test "$target_cpu" = "ppc64abi32" ; then @@ -1060,6 +1061,7 @@ elif test "$target_cpu" = "ppc64abi32" ; then elif test "$target_cpu" = "ppc64h" ; then echo "TARGET_ARCH=ppc64h" >> $config_mak echo "#define TARGET_ARCH \"ppc64h\"" >> $config_h + echo "TARGET_ABI_DIR=ppc" >> $config_mak echo "#define TARGET_PPC 1" >> $config_h echo "#define TARGET_PPC64 1" >> $config_h echo "#define TARGET_PPC64H 1" >> $config_h diff --git a/linux-user/ppc/syscall.h b/linux-user/ppc/syscall.h index 30427f69e0..f98d2bca5a 100644 --- a/linux-user/ppc/syscall.h +++ b/linux-user/ppc/syscall.h @@ -51,4 +51,8 @@ struct target_revectored_struct { * flags masks */ +#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#define UNAME_MACHINE "ppc64" +#else #define UNAME_MACHINE "ppc" +#endif diff --git a/linux-user/ppc/syscall_nr.h b/linux-user/ppc/syscall_nr.h index 1e5ced7137..8fa5bef3b5 100644 --- a/linux-user/ppc/syscall_nr.h +++ b/linux-user/ppc/syscall_nr.h @@ -193,19 +193,23 @@ #define TARGET_NR_vfork 189 #define TARGET_NR_ugetrlimit 190 /* SuS compliant getrlimit */ #define TARGET_NR_readahead 191 +#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) #define TARGET_NR_mmap2 192 #define TARGET_NR_truncate64 193 #define TARGET_NR_ftruncate64 194 #define TARGET_NR_stat64 195 #define TARGET_NR_lstat64 196 #define TARGET_NR_fstat64 197 +#endif #define TARGET_NR_pciconfig_read 198 #define TARGET_NR_pciconfig_write 199 #define TARGET_NR_pciconfig_iobase 200 #define TARGET_NR_multiplexer 201 #define TARGET_NR_getdents64 202 #define TARGET_NR_pivot_root 203 +#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) #define TARGET_NR_fcntl64 204 +#endif #define TARGET_NR_madvise 205 #define TARGET_NR_mincore 206 #define TARGET_NR_gettid 207 @@ -227,7 +231,9 @@ #define TARGET_NR_sched_getaffinity 223 /* 224 currently unused */ #define TARGET_NR_tuxcall 225 +#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) #define TARGET_NR_sendfile64 226 +#endif #define TARGET_NR_io_setup 227 #define TARGET_NR_io_destroy 228 #define TARGET_NR_io_getevents 229 @@ -255,7 +261,9 @@ #define TARGET_NR_utimes 251 #define TARGET_NR_statfs64 252 #define TARGET_NR_fstatfs64 253 +#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) #define TARGET_NR_fadvise64_64 254 +#endif #define TARGET_NR_rtas 255 #define TARGET_NR_sys_debug_setcontext 256 /* Number 257 is reserved for vserver */ @@ -292,7 +300,11 @@ #define TARGET_NR_mknodat 288 #define TARGET_NR_fchownat 289 #define TARGET_NR_futimesat 290 +#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#define TARGET_NR_newfstatat 291 +#else #define TARGET_NR_fstatat64 291 +#endif #define TARGET_NR_unlinkat 292 #define TARGET_NR_renameat 293 #define TARGET_NR_linkat 294 diff --git a/linux-user/ppc64/syscall.h b/linux-user/ppc64/syscall.h deleted file mode 100644 index bdb1a07daa..0000000000 --- a/linux-user/ppc64/syscall.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * PPC emulation for qemu: syscall definitions. - * - * Copyright (c) 2003 Jocelyn Mayer - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* XXX: ABSOLUTELY BUGGY: - * for now, this is quite just a cut-and-paste from i386 target... - */ - -/* default linux values for the selectors */ -#define __USER_DS (1) - -struct target_pt_regs { - unsigned long gpr[32]; - unsigned long nip; - unsigned long msr; - unsigned long orig_gpr3; /* Used for restarting system calls */ - unsigned long ctr; - unsigned long link; - unsigned long xer; - unsigned long ccr; - unsigned long mq; /* 601 only (not used at present) */ - /* Used on APUS to hold IPL value. */ - unsigned long trap; /* Reason for being here */ - unsigned long dar; /* Fault registers */ - unsigned long dsisr; - unsigned long result; /* Result of a system call */ -}; - -/* ioctls */ -struct target_revectored_struct { - abi_ulong __map[8]; /* 256 bits */ -}; - -/* - * flags masks - */ - -/* ipcs */ - -#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 - -#if 0 // To make it compile, even if the definition in syscall.c is bugged -struct target_msgbuf { - int mtype; - char mtext[1]; -}; -#endif - -struct target_ipc_kludge { - unsigned int msgp; /* Really (struct msgbuf *) */ - int msgtyp; -}; - -#if 0 // To make it compile, even if the definition in syscall.c is bugged -struct target_ipc_perm { - int __key; - unsigned short uid; - unsigned short gid; - unsigned short cuid; - unsigned short cgid; - unsigned short mode; - unsigned short seq; -}; -#endif - -#if 0 // To make it compile, even if the definition in syscall.c is bugged -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; -}; -#endif - -#if 0 // To make it compile, even if the definition in syscall.c is bugged -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 * */ -}; -#endif - -#define TARGET_IPC_RMID 0 -#define TARGET_IPC_SET 1 -#define TARGET_IPC_STAT 2 - -#define UNAME_MACHINE "ppc64" diff --git a/linux-user/ppc64/syscall_nr.h b/linux-user/ppc64/syscall_nr.h deleted file mode 100644 index d78ce53944..0000000000 --- a/linux-user/ppc64/syscall_nr.h +++ /dev/null @@ -1,313 +0,0 @@ -/* - * This file contains the system call numbers. - */ -#define TARGET_NR_restart_syscall 0 -#define TARGET_NR_exit 1 -#define TARGET_NR_fork 2 -#define TARGET_NR_read 3 -#define TARGET_NR_write 4 -#define TARGET_NR_open 5 -#define TARGET_NR_close 6 -#define TARGET_NR_waitpid 7 -#define TARGET_NR_creat 8 -#define TARGET_NR_link 9 -#define TARGET_NR_unlink 10 -#define TARGET_NR_execve 11 -#define TARGET_NR_chdir 12 -#define TARGET_NR_time 13 -#define TARGET_NR_mknod 14 -#define TARGET_NR_chmod 15 -#define TARGET_NR_lchown32 16 -#define TARGET_NR_break 17 -#define TARGET_NR_oldstat 18 -#define TARGET_NR_lseek 19 -#define TARGET_NR_getpid 20 -#define TARGET_NR_mount 21 -#define TARGET_NR_umount 22 -#define TARGET_NR_setuid32 23 -#define TARGET_NR_getuid32 24 -#define TARGET_NR_stime 25 -#define TARGET_NR_ptrace 26 -#define TARGET_NR_alarm 27 -#define TARGET_NR_oldfstat 28 -#define TARGET_NR_pause 29 -#define TARGET_NR_utime 30 -#define TARGET_NR_stty 31 -#define TARGET_NR_gtty 32 -#define TARGET_NR_access 33 -#define TARGET_NR_nice 34 -#define TARGET_NR_ftime 35 -#define TARGET_NR_sync 36 -#define TARGET_NR_kill 37 -#define TARGET_NR_rename 38 -#define TARGET_NR_mkdir 39 -#define TARGET_NR_rmdir 40 -#define TARGET_NR_dup 41 -#define TARGET_NR_pipe 42 -#define TARGET_NR_times 43 -#define TARGET_NR_prof 44 -#define TARGET_NR_brk 45 -#define TARGET_NR_setgid32 46 -#define TARGET_NR_getgid32 47 -#define TARGET_NR_signal 48 -#define TARGET_NR_geteuid32 49 -#define TARGET_NR_getegid32 50 -#define TARGET_NR_acct 51 -#define TARGET_NR_umount2 52 -#define TARGET_NR_lock 53 -#define TARGET_NR_ioctl 54 -#define TARGET_NR_fcntl 55 -#define TARGET_NR_mpx 56 -#define TARGET_NR_setpgid 57 -#define TARGET_NR_ulimit 58 -#define TARGET_NR_oldolduname 59 -#define TARGET_NR_umask 60 -#define TARGET_NR_chroot 61 -#define TARGET_NR_ustat 62 -#define TARGET_NR_dup2 63 -#define TARGET_NR_getppid 64 -#define TARGET_NR_getpgrp 65 -#define TARGET_NR_setsid 66 -#define TARGET_NR_sigaction 67 -#define TARGET_NR_sgetmask 68 -#define TARGET_NR_ssetmask 69 -#define TARGET_NR_setreuid32 70 -#define TARGET_NR_setregid32 71 -#define TARGET_NR_sigsuspend 72 -#define TARGET_NR_sigpending 73 -#define TARGET_NR_sethostname 74 -#define TARGET_NR_setrlimit 75 -#define TARGET_NR_getrlimit 76 -#define TARGET_NR_getrusage 77 -#define TARGET_NR_gettimeofday 78 -#define TARGET_NR_settimeofday 79 -#define TARGET_NR_getgroups32 80 -#define TARGET_NR_setgroups32 81 -#define TARGET_NR_select 82 -#define TARGET_NR_symlink 83 -#define TARGET_NR_oldlstat 84 -#define TARGET_NR_readlink 85 -#define TARGET_NR_uselib 86 -#define TARGET_NR_swapon 87 -#define TARGET_NR_reboot 88 -#define TARGET_NR_readdir 89 -#define TARGET_NR_mmap 90 -#define TARGET_NR_munmap 91 -#define TARGET_NR_truncate 92 -#define TARGET_NR_ftruncate 93 -#define TARGET_NR_fchmod 94 -#define TARGET_NR_fchown32 95 -#define TARGET_NR_getpriority 96 -#define TARGET_NR_setpriority 97 -#define TARGET_NR_profil 98 -#define TARGET_NR_statfs 99 -#define TARGET_NR_fstatfs 100 -#define TARGET_NR_ioperm 101 -#define TARGET_NR_socketcall 102 -#define TARGET_NR_syslog 103 -#define TARGET_NR_setitimer 104 -#define TARGET_NR_getitimer 105 -#define TARGET_NR_stat 106 -#define TARGET_NR_lstat 107 -#define TARGET_NR_fstat 108 -#define TARGET_NR_olduname 109 -#define TARGET_NR_iopl 110 -#define TARGET_NR_vhangup 111 -#define TARGET_NR_idle 112 -#define TARGET_NR_vm86 113 -#define TARGET_NR_wait4 114 -#define TARGET_NR_swapoff 115 -#define TARGET_NR_sysinfo 116 -#define TARGET_NR_ipc 117 -#define TARGET_NR_fsync 118 -#define TARGET_NR_sigreturn 119 -#define TARGET_NR_clone 120 -#define TARGET_NR_setdomainname 121 -#define TARGET_NR_uname 122 -#define TARGET_NR_modify_ldt 123 -#define TARGET_NR_adjtimex 124 -#define TARGET_NR_mprotect 125 -#define TARGET_NR_sigprocmask 126 -#define TARGET_NR_create_module 127 -#define TARGET_NR_init_module 128 -#define TARGET_NR_delete_module 129 -#define TARGET_NR_get_kernel_syms 130 -#define TARGET_NR_quotactl 131 -#define TARGET_NR_getpgid 132 -#define TARGET_NR_fchdir 133 -#define TARGET_NR_bdflush 134 -#define TARGET_NR_sysfs 135 -#define TARGET_NR_personality 136 -#define TARGET_NR_afs_syscall 137 /* Syscall for Andrew File System */ -#define TARGET_NR_setfsuid32 138 -#define TARGET_NR_setfsgid32 139 -#define TARGET_NR__llseek 140 -#define TARGET_NR_getdents 141 -#define TARGET_NR__newselect 142 -#define TARGET_NR_flock 143 -#define TARGET_NR_msync 144 -#define TARGET_NR_readv 145 -#define TARGET_NR_writev 146 -#define TARGET_NR_getsid 147 -#define TARGET_NR_fdatasync 148 -#define TARGET_NR__sysctl 149 -#define TARGET_NR_mlock 150 -#define TARGET_NR_munlock 151 -#define TARGET_NR_mlockall 152 -#define TARGET_NR_munlockall 153 -#define TARGET_NR_sched_setparam 154 -#define TARGET_NR_sched_getparam 155 -#define TARGET_NR_sched_setscheduler 156 -#define TARGET_NR_sched_getscheduler 157 -#define TARGET_NR_sched_yield 158 -#define TARGET_NR_sched_get_priority_max 159 -#define TARGET_NR_sched_get_priority_min 160 -#define TARGET_NR_sched_rr_get_interval 161 -#define TARGET_NR_nanosleep 162 -#define TARGET_NR_mremap 163 -#define TARGET_NR_setresuid32 164 -#define TARGET_NR_getresuid32 165 -#define TARGET_NR_query_module 166 -#define TARGET_NR_poll 167 -#define TARGET_NR_nfsservctl 168 -#define TARGET_NR_setresgid32 169 -#define TARGET_NR_getresgid32 170 -#define TARGET_NR_prctl 171 -#define TARGET_NR_rt_sigreturn 172 -#define TARGET_NR_rt_sigaction 173 -#define TARGET_NR_rt_sigprocmask 174 -#define TARGET_NR_rt_sigpending 175 -#define TARGET_NR_rt_sigtimedwait 176 -#define TARGET_NR_rt_sigqueueinfo 177 -#define TARGET_NR_rt_sigsuspend 178 -#define TARGET_NR_pread64 179 -#define TARGET_NR_pwrite64 180 -#define TARGET_NR_chown32 181 -#define TARGET_NR_getcwd 182 -#define TARGET_NR_capget 183 -#define TARGET_NR_capset 184 -#define TARGET_NR_sigaltstack 185 -#define TARGET_NR_sendfile 186 -#define TARGET_NR_getpmsg 187 /* some people actually want streams */ -#define TARGET_NR_putpmsg 188 /* some people actually want streams */ -#define TARGET_NR_vfork 189 -#define TARGET_NR_ugetrlimit 190 /* SuS compliant getrlimit */ -#define TARGET_NR_readahead 191 -#define TARGET_NR_mmap2 192 -#define TARGET_NR_truncate64 193 -#define TARGET_NR_ftruncate64 194 -#define TARGET_NR_stat64 195 -#define TARGET_NR_lstat64 196 -#define TARGET_NR_fstat64 197 -#define TARGET_NR_pciconfig_read 198 -#define TARGET_NR_pciconfig_write 199 -#define TARGET_NR_pciconfig_iobase 200 -#define TARGET_NR_multiplexer 201 -#define TARGET_NR_getdents64 202 -#define TARGET_NR_pivot_root 203 -#define TARGET_NR_fcntl64 204 -#define TARGET_NR_madvise 205 -#define TARGET_NR_mincore 206 -#define TARGET_NR_gettid 207 -#define TARGET_NR_tkill 208 -#define TARGET_NR_setxattr 209 -#define TARGET_NR_lsetxattr 210 -#define TARGET_NR_fsetxattr 211 -#define TARGET_NR_getxattr 212 -#define TARGET_NR_lgetxattr 213 -#define TARGET_NR_fgetxattr 214 -#define TARGET_NR_listxattr 215 -#define TARGET_NR_llistxattr 216 -#define TARGET_NR_flistxattr 217 -#define TARGET_NR_removexattr 218 -#define TARGET_NR_lremovexattr 219 -#define TARGET_NR_fremovexattr 220 -#define TARGET_NR_futex 221 -#define TARGET_NR_sched_setaffinity 222 -#define TARGET_NR_sched_getaffinity 223 -/* 224 currently unused */ -#define TARGET_NR_tuxcall 225 -#define TARGET_NR_sendfile64 226 -#define TARGET_NR_io_setup 227 -#define TARGET_NR_io_destroy 228 -#define TARGET_NR_io_getevents 229 -#define TARGET_NR_io_submit 230 -#define TARGET_NR_io_cancel 231 -#define TARGET_NR_set_tid_address 232 -#define TARGET_NR_fadvise64 233 -#define TARGET_NR_exit_group 234 -#define TARGET_NR_lookup_dcookie 235 -#define TARGET_NR_epoll_create 236 -#define TARGET_NR_epoll_ctl 237 -#define TARGET_NR_epoll_wait 238 -#define TARGET_NR_remap_file_pages 239 -#define TARGET_NR_timer_create 240 -#define TARGET_NR_timer_settime 241 -#define TARGET_NR_timer_gettime 242 -#define TARGET_NR_timer_getoverrun 243 -#define TARGET_NR_timer_delete 244 -#define TARGET_NR_clock_settime 245 -#define TARGET_NR_clock_gettime 246 -#define TARGET_NR_clock_getres 247 -#define TARGET_NR_clock_nanosleep 248 -#define TARGET_NR_swapcontext 249 -#define TARGET_NR_tgkill 250 -#define TARGET_NR_utimes 251 -#define TARGET_NR_statfs64 252 -#define TARGET_NR_fstatfs64 253 -#define TARGET_NR_fadvise64_64 254 -#define TARGET_NR_rtas 255 -#define TARGET_NR_sys_debug_setcontext 256 -/* Number 257 is reserved for vserver */ -#define TARGET_NR_migrate_pages 258 -#define TARGET_NR_mbind 259 -#define TARGET_NR_get_mempolicy 260 -#define TARGET_NR_set_mempolicy 261 -#define TARGET_NR_mq_open 262 -#define TARGET_NR_mq_unlink 263 -#define TARGET_NR_mq_timedsend 264 -#define TARGET_NR_mq_timedreceive 265 -#define TARGET_NR_mq_notify 266 -#define TARGET_NR_mq_getsetattr 267 -#define TARGET_NR_kexec_load 268 -#define TARGET_NR_add_key 269 -#define TARGET_NR_request_key 270 -#define TARGET_NR_keyctl 271 -#define TARGET_NR_waitid 272 -#define TARGET_NR_ioprio_set 273 -#define TARGET_NR_ioprio_get 274 -#define TARGET_NR_inotify_init 275 -#define TARGET_NR_inotify_add_watch 276 -#define TARGET_NR_inotify_rm_watch 277 -#define TARGET_NR_spu_run 278 -#define TARGET_NR_spu_create 279 -#define TARGET_NR_pselect6 280 -#define TARGET_NR_ppoll 281 -#define TARGET_NR_unshare 282 -#define TARGET_NR_splice 283 -#define TARGET_NR_tee 284 -#define TARGET_NR_vmsplice 285 -#define TARGET_NR_openat 286 -#define TARGET_NR_mkdirat 287 -#define TARGET_NR_mknodat 288 -#define TARGET_NR_fchownat 289 -#define TARGET_NR_futimesat 290 -#define TARGET_NR_newfstatat 291 -#define TARGET_NR_unlinkat 292 -#define TARGET_NR_renameat 293 -#define TARGET_NR_linkat 294 -#define TARGET_NR_symlinkat 295 -#define TARGET_NR_readlinkat 296 -#define TARGET_NR_fchmodat 297 -#define TARGET_NR_faccessat 298 -#define TARGET_NR_get_robust_list 299 -#define TARGET_NR_set_robust_list 300 -#define TARGET_NR_move_pages 301 -#define TARGET_NR_getcpu 302 -#define TARGET_NR_epoll_pwait 303 -#define TARGET_NR_utimensat 304 -#define TARGET_NR_signalfd 305 -#define TARGET_NR_timerfd 306 -#define TARGET_NR_eventfd 307 -#define TARGET_NR_sync_file_range2 308 -#define TARGET_NR_fallocate 309 diff --git a/linux-user/ppc64/target_signal.h b/linux-user/ppc64/target_signal.h deleted file mode 100644 index defae809a9..0000000000 --- a/linux-user/ppc64/target_signal.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef TARGET_SIGNAL_H -#define TARGET_SIGNAL_H - -#include "cpu.h" - -/* this struct defines a stack used during syscall handling */ - -typedef struct target_sigaltstack { - abi_ulong ss_sp; - abi_long ss_flags; - abi_ulong ss_size; -} target_stack_t; - - -/* - * sigaltstack controls - */ -#define TARGET_SS_ONSTACK 1 -#define TARGET_SS_DISABLE 2 - -#define TARGET_MINSIGSTKSZ 2048 -#define TARGET_SIGSTKSZ 8192 - -static inline abi_ulong get_sp_from_cpustate(CPUPPCState *state) -{ - return state->gpr[1]; -} - -#endif /* TARGET_SIGNAL_H */ diff --git a/linux-user/ppc64/termbits.h b/linux-user/ppc64/termbits.h deleted file mode 100644 index 41537ed39e..0000000000 --- a/linux-user/ppc64/termbits.h +++ /dev/null @@ -1,237 +0,0 @@ -/* from asm/termbits.h */ - -#define TARGET_NCCS 19 - -struct target_termios { - unsigned int c_iflag; /* input mode flags */ - unsigned int c_oflag; /* output mode flags */ - unsigned int c_cflag; /* control mode flags */ - unsigned int c_lflag; /* local mode flags */ - unsigned char c_cc[TARGET_NCCS]; /* control characters */ - unsigned char c_line; /* line discipline */ - unsigned int c_ispeed; /* input speed */ - unsigned int c_ospeed; /* output speed */ -}; - -/* c_cc character offsets */ -#define TARGET_VINTR 0 -#define TARGET_VQUIT 1 -#define TARGET_VERASE 2 -#define TARGET_VKILL 3 -#define TARGET_VEOF 4 -#define TARGET_VMIN 5 -#define TARGET_VEOL 6 -#define TARGET_VTIME 7 -#define TARGET_VEOL2 8 -#define TARGET_VSWTC 9 - -#define TARGET_VWERASE 10 -#define TARGET_VREPRINT 11 -#define TARGET_VSUSP 12 -#define TARGET_VSTART 13 -#define TARGET_VSTOP 14 -#define TARGET_VLNEXT 15 -#define TARGET_VDISCARD 16 - -#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_XTABS 00006000 /* required by POSIX to == TAB3 */ -#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 - -/* c_cflag bit meaning */ -#define TARGET_CBAUD 0000377 -#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 - -/* ioctls */ - -#define TARGET_FIOCLEX TARGET_IO('f', 1) -#define TARGET_FIONCLEX TARGET_IO('f', 2) -#define TARGET_FIOASYNC TARGET_IOW('f', 125, int) -#define TARGET_FIONBIO TARGET_IOW('f', 126, int) -#define TARGET_FIONREAD TARGET_IOR('f', 127, int) -#define TARGET_TIOCINQ TARGET_FIONREAD -//#define TARGET_FIOQSIZE TARGET_IOR('f', 128, loff_t) - -#define TARGET_TCGETS TARGET_IOR('t', 19, struct target_termios) -#define TARGET_TCSETS TARGET_IOW('t', 20, struct target_termios) -#define TARGET_TCSETSW TARGET_IOW('t', 21, struct target_termios) -#define TARGET_TCSETSF TARGET_IOW('t', 22, struct target_termios) - -#define TARGET_TCGETA TARGET_IOR('t', 23, struct target_termio) -#define TARGET_TCSETA TARGET_IOW('t', 24, struct target_termio) -#define TARGET_TCSETAW TARGET_IOW('t', 25, struct target_termio) -#define TARGET_TCSETAF TARGET_IOW('t', 28, struct target_termio) - -#define TARGET_TCSBRK TARGET_IO('t', 29) -#define TARGET_TCXONC TARGET_IO('t', 30) -#define TARGET_TCFLSH TARGET_IO('t', 31) - -#define TARGET_TIOCSWINSZ TARGET_IOW('t', 103, struct target_winsize) -#define TARGET_TIOCGWINSZ TARGET_IOR('t', 104, struct target_winsize) -#define TARGET_TIOCSTART TARGET_IO('t', 110) /* start output, like ^Q */ -#define TARGET_TIOCSTOP TARGET_IO('t', 111) /* stop output, like ^S */ -#define TARGET_TIOCOUTQ TARGET_IOR('t', 115, int) /* output queue size */ - -#define TARGET_TIOCGLTC TARGET_IOR('t', 116, struct target_ltchars) -#define TARGET_TIOCSLTC TARGET_IOW('t', 117, struct target_ltchars) -#define TARGET_TIOCSPGRP TARGET_IOW('t', 118, int) -#define TARGET_TIOCGPGRP TARGET_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_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_TIOCNOTTY 0x5422 -#define TARGET_TIOCSETD 0x5423 -#define TARGET_TIOCGETD 0x5424 -#define TARGET_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */ -#define TARGET_TIOCTTYGSTRUCT 0x5426 /* For debugging only */ -#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 TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ -#define TARGET_TIOCSPTLCK TARGET_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 */ -