Browse Source
* 's390-next' of git://repo.or.cz/qemu/agraf: s390x: complain when allocating ram fails s390x: fix memory detection for guests > 64GB s390x: change mapping base to allow guests > 2GB s390x: Fix debugging for unknown sigp order codes s390x: build s390x by default s390x: remove compatibility cc field s390x: Adjust GDB stub s390x: translate engine for s390x CPU s390x: Adjust internal kvm code s390x: Implement opcode helpers s390x: helper functions for system emulation s390x: Shift variables in CPUState for memset(0) s390x: keep hint on virtio managing size s390x: make kvm exported functions conditional on kvm s390x: s390x-linux-user support tcg: extend max tcg opcodes when using 64-on-32bit s390x: fix smp support for kvmremotes/github/stable-0.15
24 changed files with 10062 additions and 79 deletions
@ -0,0 +1 @@ |
|||
# Default configuration for s390x-linux-user
|
|||
@ -0,0 +1,23 @@ |
|||
/* this typedef defines how a Program Status Word looks like */ |
|||
typedef struct { |
|||
abi_ulong mask; |
|||
abi_ulong addr; |
|||
} __attribute__ ((aligned(8))) target_psw_t; |
|||
|
|||
/*
|
|||
* The pt_regs struct defines the way the registers are stored on |
|||
* the stack during a system call. |
|||
*/ |
|||
|
|||
#define TARGET_NUM_GPRS 16 |
|||
|
|||
struct target_pt_regs { |
|||
abi_ulong args[1]; |
|||
target_psw_t psw; |
|||
abi_ulong gprs[TARGET_NUM_GPRS]; |
|||
abi_ulong orig_gpr2; |
|||
unsigned short ilc; |
|||
unsigned short trap; |
|||
}; |
|||
|
|||
#define UNAME_MACHINE "s390x" |
|||
@ -0,0 +1,349 @@ |
|||
/*
|
|||
* This file contains the system call numbers. |
|||
*/ |
|||
|
|||
#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_restart_syscall 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_mknod 14 |
|||
#define TARGET_NR_chmod 15 |
|||
#define TARGET_NR_lseek 19 |
|||
#define TARGET_NR_getpid 20 |
|||
#define TARGET_NR_mount 21 |
|||
#define TARGET_NR_umount 22 |
|||
#define TARGET_NR_ptrace 26 |
|||
#define TARGET_NR_alarm 27 |
|||
#define TARGET_NR_pause 29 |
|||
#define TARGET_NR_utime 30 |
|||
#define TARGET_NR_access 33 |
|||
#define TARGET_NR_nice 34 |
|||
#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_brk 45 |
|||
#define TARGET_NR_signal 48 |
|||
#define TARGET_NR_acct 51 |
|||
#define TARGET_NR_umount2 52 |
|||
#define TARGET_NR_ioctl 54 |
|||
#define TARGET_NR_fcntl 55 |
|||
#define TARGET_NR_setpgid 57 |
|||
#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_sigsuspend 72 |
|||
#define TARGET_NR_sigpending 73 |
|||
#define TARGET_NR_sethostname 74 |
|||
#define TARGET_NR_setrlimit 75 |
|||
#define TARGET_NR_getrusage 77 |
|||
#define TARGET_NR_gettimeofday 78 |
|||
#define TARGET_NR_settimeofday 79 |
|||
#define TARGET_NR_symlink 83 |
|||
#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_getpriority 96 |
|||
#define TARGET_NR_setpriority 97 |
|||
#define TARGET_NR_statfs 99 |
|||
#define TARGET_NR_fstatfs 100 |
|||
#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_lookup_dcookie 110 |
|||
#define TARGET_NR_vhangup 111 |
|||
#define TARGET_NR_idle 112 |
|||
#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_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_getdents 141 |
|||
#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_query_module 167 |
|||
#define TARGET_NR_poll 168 |
|||
#define TARGET_NR_nfsservctl 169 |
|||
#define TARGET_NR_prctl 172 |
|||
#define TARGET_NR_rt_sigreturn 173 |
|||
#define TARGET_NR_rt_sigaction 174 |
|||
#define TARGET_NR_rt_sigprocmask 175 |
|||
#define TARGET_NR_rt_sigpending 176 |
|||
#define TARGET_NR_rt_sigtimedwait 177 |
|||
#define TARGET_NR_rt_sigqueueinfo 178 |
|||
#define TARGET_NR_rt_sigsuspend 179 |
|||
#define TARGET_NR_pread64 180 |
|||
#define TARGET_NR_pwrite64 181 |
|||
#define TARGET_NR_getcwd 183 |
|||
#define TARGET_NR_capget 184 |
|||
#define TARGET_NR_capset 185 |
|||
#define TARGET_NR_sigaltstack 186 |
|||
#define TARGET_NR_sendfile 187 |
|||
#define TARGET_NR_getpmsg 188 |
|||
#define TARGET_NR_putpmsg 189 |
|||
#define TARGET_NR_vfork 190 |
|||
#define TARGET_NR_pivot_root 217 |
|||
#define TARGET_NR_mincore 218 |
|||
#define TARGET_NR_madvise 219 |
|||
#define TARGET_NR_getdents64 220 |
|||
#define TARGET_NR_readahead 222 |
|||
#define TARGET_NR_setxattr 224 |
|||
#define TARGET_NR_lsetxattr 225 |
|||
#define TARGET_NR_fsetxattr 226 |
|||
#define TARGET_NR_getxattr 227 |
|||
#define TARGET_NR_lgetxattr 228 |
|||
#define TARGET_NR_fgetxattr 229 |
|||
#define TARGET_NR_listxattr 230 |
|||
#define TARGET_NR_llistxattr 231 |
|||
#define TARGET_NR_flistxattr 232 |
|||
#define TARGET_NR_removexattr 233 |
|||
#define TARGET_NR_lremovexattr 234 |
|||
#define TARGET_NR_fremovexattr 235 |
|||
#define TARGET_NR_gettid 236 |
|||
#define TARGET_NR_tkill 237 |
|||
#define TARGET_NR_futex 238 |
|||
#define TARGET_NR_sched_setaffinity 239 |
|||
#define TARGET_NR_sched_getaffinity 240 |
|||
#define TARGET_NR_tgkill 241 |
|||
/* Number 242 is reserved for tux */ |
|||
#define TARGET_NR_io_setup 243 |
|||
#define TARGET_NR_io_destroy 244 |
|||
#define TARGET_NR_io_getevents 245 |
|||
#define TARGET_NR_io_submit 246 |
|||
#define TARGET_NR_io_cancel 247 |
|||
#define TARGET_NR_exit_group 248 |
|||
#define TARGET_NR_epoll_create 249 |
|||
#define TARGET_NR_epoll_ctl 250 |
|||
#define TARGET_NR_epoll_wait 251 |
|||
#define TARGET_NR_set_tid_address 252 |
|||
#define TARGET_NR_fadvise64 253 |
|||
#define TARGET_NR_timer_create 254 |
|||
#define TARGET_NR_timer_settime (TARGET_NR_timer_create+1) |
|||
#define TARGET_NR_timer_gettime (TARGET_NR_timer_create+2) |
|||
#define TARGET_NR_timer_getoverrun (TARGET_NR_timer_create+3) |
|||
#define TARGET_NR_timer_delete (TARGET_NR_timer_create+4) |
|||
#define TARGET_NR_clock_settime (TARGET_NR_timer_create+5) |
|||
#define TARGET_NR_clock_gettime (TARGET_NR_timer_create+6) |
|||
#define TARGET_NR_clock_getres (TARGET_NR_timer_create+7) |
|||
#define TARGET_NR_clock_nanosleep (TARGET_NR_timer_create+8) |
|||
/* Number 263 is reserved for vserver */ |
|||
#define TARGET_NR_statfs64 265 |
|||
#define TARGET_NR_fstatfs64 266 |
|||
#define TARGET_NR_remap_file_pages 267 |
|||
/* Number 268 is reserved for new sys_mbind */ |
|||
/* Number 269 is reserved for new sys_get_mempolicy */ |
|||
/* Number 270 is reserved for new sys_set_mempolicy */ |
|||
#define TARGET_NR_mq_open 271 |
|||
#define TARGET_NR_mq_unlink 272 |
|||
#define TARGET_NR_mq_timedsend 273 |
|||
#define TARGET_NR_mq_timedreceive 274 |
|||
#define TARGET_NR_mq_notify 275 |
|||
#define TARGET_NR_mq_getsetattr 276 |
|||
#define TARGET_NR_kexec_load 277 |
|||
#define TARGET_NR_add_key 278 |
|||
#define TARGET_NR_request_key 279 |
|||
#define TARGET_NR_keyctl 280 |
|||
#define TARGET_NR_waitid 281 |
|||
#define TARGET_NR_ioprio_set 282 |
|||
#define TARGET_NR_ioprio_get 283 |
|||
#define TARGET_NR_inotify_init 284 |
|||
#define TARGET_NR_inotify_add_watch 285 |
|||
#define TARGET_NR_inotify_rm_watch 286 |
|||
/* Number 287 is reserved for new sys_migrate_pages */ |
|||
#define TARGET_NR_openat 288 |
|||
#define TARGET_NR_mkdirat 289 |
|||
#define TARGET_NR_mknodat 290 |
|||
#define TARGET_NR_fchownat 291 |
|||
#define TARGET_NR_futimesat 292 |
|||
#define TARGET_NR_unlinkat 294 |
|||
#define TARGET_NR_renameat 295 |
|||
#define TARGET_NR_linkat 296 |
|||
#define TARGET_NR_symlinkat 297 |
|||
#define TARGET_NR_readlinkat 298 |
|||
#define TARGET_NR_fchmodat 299 |
|||
#define TARGET_NR_faccessat 300 |
|||
#define TARGET_NR_pselect6 301 |
|||
#define TARGET_NR_ppoll 302 |
|||
#define TARGET_NR_unshare 303 |
|||
#define TARGET_NR_set_robust_list 304 |
|||
#define TARGET_NR_get_robust_list 305 |
|||
#define TARGET_NR_splice 306 |
|||
#define TARGET_NR_sync_file_range 307 |
|||
#define TARGET_NR_tee 308 |
|||
#define TARGET_NR_vmsplice 309 |
|||
/* Number 310 is reserved for new sys_move_pages */ |
|||
#define TARGET_NR_getcpu 311 |
|||
#define TARGET_NR_epoll_pwait 312 |
|||
#define TARGET_NR_utimes 313 |
|||
#define TARGET_NR_fallocate 314 |
|||
#define TARGET_NR_utimensat 315 |
|||
#define TARGET_NR_signalfd 316 |
|||
#define TARGET_NR_timerfd 317 |
|||
#define TARGET_NR_eventfd 318 |
|||
#define TARGET_NR_timerfd_create 319 |
|||
#define TARGET_NR_timerfd_settime 320 |
|||
#define TARGET_NR_timerfd_gettime 321 |
|||
#define TARGET_NR_signalfd4 322 |
|||
#define TARGET_NR_eventfd2 323 |
|||
#define TARGET_NR_inotify_init1 324 |
|||
#define TARGET_NR_pipe2 325 |
|||
#define TARGET_NR_dup3 326 |
|||
#define TARGET_NR_epoll_create1 327 |
|||
#undef NR_syscalls |
|||
#define NR_syscalls 328 |
|||
|
|||
/*
|
|||
* There are some system calls that are not present on 64 bit, some |
|||
* have a different name although they do the same (e.g. TARGET_NR_chown32 |
|||
* is TARGET_NR_chown on 64 bit). |
|||
*/ |
|||
#ifndef TARGET_S390X |
|||
|
|||
#define TARGET_NR_time 13 |
|||
#define TARGET_NR_lchown 16 |
|||
#define TARGET_NR_setuid 23 |
|||
#define TARGET_NR_getuid 24 |
|||
#define TARGET_NR_stime 25 |
|||
#define TARGET_NR_setgid 46 |
|||
#define TARGET_NR_getgid 47 |
|||
#define TARGET_NR_geteuid 49 |
|||
#define TARGET_NR_getegid 50 |
|||
#define TARGET_NR_setreuid 70 |
|||
#define TARGET_NR_setregid 71 |
|||
#define TARGET_NR_getrlimit 76 |
|||
#define TARGET_NR_getgroups 80 |
|||
#define TARGET_NR_setgroups 81 |
|||
#define TARGET_NR_fchown 95 |
|||
#define TARGET_NR_ioperm 101 |
|||
#define TARGET_NR_setfsuid 138 |
|||
#define TARGET_NR_setfsgid 139 |
|||
#define TARGET_NR__llseek 140 |
|||
#define TARGET_NR__newselect 142 |
|||
#define TARGET_NR_setresuid 164 |
|||
#define TARGET_NR_getresuid 165 |
|||
#define TARGET_NR_setresgid 170 |
|||
#define TARGET_NR_getresgid 171 |
|||
#define TARGET_NR_chown 182 |
|||
#define TARGET_NR_ugetrlimit 191 /* SuS compliant getrlimit */ |
|||
#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_lchown32 198 |
|||
#define TARGET_NR_getuid32 199 |
|||
#define TARGET_NR_getgid32 200 |
|||
#define TARGET_NR_geteuid32 201 |
|||
#define TARGET_NR_getegid32 202 |
|||
#define TARGET_NR_setreuid32 203 |
|||
#define TARGET_NR_setregid32 204 |
|||
#define TARGET_NR_getgroups32 205 |
|||
#define TARGET_NR_setgroups32 206 |
|||
#define TARGET_NR_fchown32 207 |
|||
#define TARGET_NR_setresuid32 208 |
|||
#define TARGET_NR_getresuid32 209 |
|||
#define TARGET_NR_setresgid32 210 |
|||
#define TARGET_NR_getresgid32 211 |
|||
#define TARGET_NR_chown32 212 |
|||
#define TARGET_NR_setuid32 213 |
|||
#define TARGET_NR_setgid32 214 |
|||
#define TARGET_NR_setfsuid32 215 |
|||
#define TARGET_NR_setfsgid32 216 |
|||
#define TARGET_NR_fcntl64 221 |
|||
#define TARGET_NR_sendfile64 223 |
|||
#define TARGET_NR_fadvise64_64 264 |
|||
#define TARGET_NR_fstatat64 293 |
|||
|
|||
#else |
|||
|
|||
#define TARGET_NR_select 142 |
|||
#define TARGET_NR_getrlimit 191 /* SuS compliant getrlimit */ |
|||
#define TARGET_NR_lchown 198 |
|||
#define TARGET_NR_getuid 199 |
|||
#define TARGET_NR_getgid 200 |
|||
#define TARGET_NR_geteuid 201 |
|||
#define TARGET_NR_getegid 202 |
|||
#define TARGET_NR_setreuid 203 |
|||
#define TARGET_NR_setregid 204 |
|||
#define TARGET_NR_getgroups 205 |
|||
#define TARGET_NR_setgroups 206 |
|||
#define TARGET_NR_fchown 207 |
|||
#define TARGET_NR_setresuid 208 |
|||
#define TARGET_NR_getresuid 209 |
|||
#define TARGET_NR_setresgid 210 |
|||
#define TARGET_NR_getresgid 211 |
|||
#define TARGET_NR_chown 212 |
|||
#define TARGET_NR_setuid 213 |
|||
#define TARGET_NR_setgid 214 |
|||
#define TARGET_NR_setfsuid 215 |
|||
#define TARGET_NR_setfsgid 216 |
|||
#define TARGET_NR_newfstatat 293 |
|||
|
|||
#endif |
|||
|
|||
@ -0,0 +1,26 @@ |
|||
#ifndef TARGET_SIGNAL_H |
|||
#define TARGET_SIGNAL_H |
|||
|
|||
#include "cpu.h" |
|||
|
|||
typedef struct target_sigaltstack { |
|||
abi_ulong ss_sp; |
|||
int 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(CPUS390XState *state) |
|||
{ |
|||
return state->regs[15]; |
|||
} |
|||
|
|||
#endif /* TARGET_SIGNAL_H */ |
|||
@ -0,0 +1,283 @@ |
|||
/*
|
|||
* include/asm-s390/termbits.h |
|||
* |
|||
* S390 version |
|||
* |
|||
* Derived from "include/asm-i386/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_line; /* line discipline */ |
|||
unsigned char c_cc[TARGET_NCCS]; /* control characters */ |
|||
}; |
|||
|
|||
struct target_termios2 { |
|||
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_line; /* line discipline */ |
|||
unsigned char c_cc[TARGET_NCCS]; /* control characters */ |
|||
unsigned int c_ispeed; /* input speed */ |
|||
unsigned int c_ospeed; /* output speed */ |
|||
}; |
|||
|
|||
struct target_ktermios { |
|||
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_line; /* line discipline */ |
|||
unsigned char c_cc[TARGET_NCCS]; /* control characters */ |
|||
unsigned int c_ispeed; /* input speed */ |
|||
unsigned int c_ospeed; /* output speed */ |
|||
}; |
|||
|
|||
/* c_cc characters */ |
|||
#define TARGET_VINTR 0 |
|||
#define TARGET_VQUIT 1 |
|||
#define TARGET_VERASE 2 |
|||
#define TARGET_VKILL 3 |
|||
#define TARGET_VEOF 4 |
|||
#define TARGET_VTIME 5 |
|||
#define TARGET_VMIN 6 |
|||
#define TARGET_VSWTC 7 |
|||
#define TARGET_VSTART 8 |
|||
#define TARGET_VSTOP 9 |
|||
#define TARGET_VSUSP 10 |
|||
#define TARGET_VEOL 11 |
|||
#define TARGET_VREPRINT 12 |
|||
#define TARGET_VDISCARD 13 |
|||
#define TARGET_VWERASE 14 |
|||
#define TARGET_VLNEXT 15 |
|||
#define TARGET_VEOL2 16 |
|||
|
|||
/* 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_IUCLC 0001000 |
|||
#define TARGET_IXON 0002000 |
|||
#define TARGET_IXANY 0004000 |
|||
#define TARGET_IXOFF 0010000 |
|||
#define TARGET_IMAXBEL 0020000 |
|||
#define TARGET_IUTF8 0040000 |
|||
|
|||
/* c_oflag bits */ |
|||
#define TARGET_OPOST 0000001 |
|||
#define TARGET_OLCUC 0000002 |
|||
#define TARGET_ONLCR 0000004 |
|||
#define TARGET_OCRNL 0000010 |
|||
#define TARGET_ONOCR 0000020 |
|||
#define TARGET_ONLRET 0000040 |
|||
#define TARGET_OFILL 0000100 |
|||
#define TARGET_OFDEL 0000200 |
|||
#define TARGET_NLDLY 0000400 |
|||
#define TARGET_NL0 0000000 |
|||
#define TARGET_NL1 0000400 |
|||
#define TARGET_CRDLY 0003000 |
|||
#define TARGET_CR0 0000000 |
|||
#define TARGET_CR1 0001000 |
|||
#define TARGET_CR2 0002000 |
|||
#define TARGET_CR3 0003000 |
|||
#define TARGET_TABDLY 0014000 |
|||
#define TARGET_TAB0 0000000 |
|||
#define TARGET_TAB1 0004000 |
|||
#define TARGET_TAB2 0010000 |
|||
#define TARGET_TAB3 0014000 |
|||
#define TARGET_XTABS 0014000 |
|||
#define TARGET_BSDLY 0020000 |
|||
#define TARGET_BS0 0000000 |
|||
#define TARGET_BS1 0020000 |
|||
#define TARGET_VTDLY 0040000 |
|||
#define TARGET_VT0 0000000 |
|||
#define TARGET_VT1 0040000 |
|||
#define TARGET_FFDLY 0100000 |
|||
#define TARGET_FF0 0000000 |
|||
#define TARGET_FF1 0100000 |
|||
|
|||
/* c_cflag bit meaning */ |
|||
#define TARGET_CBAUD 0010017 |
|||
#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_CSIZE 0000060 |
|||
#define TARGET_CS5 0000000 |
|||
#define TARGET_CS6 0000020 |
|||
#define TARGET_CS7 0000040 |
|||
#define TARGET_CS8 0000060 |
|||
#define TARGET_CSTOPB 0000100 |
|||
#define TARGET_CREAD 0000200 |
|||
#define TARGET_PARENB 0000400 |
|||
#define TARGET_PARODD 0001000 |
|||
#define TARGET_HUPCL 0002000 |
|||
#define TARGET_CLOCAL 0004000 |
|||
#define TARGET_CBAUDEX 0010000 |
|||
#define TARGET_BOTHER 0010000 |
|||
#define TARGET_B57600 0010001 |
|||
#define TARGET_B115200 0010002 |
|||
#define TARGET_B230400 0010003 |
|||
#define TARGET_B460800 0010004 |
|||
#define TARGET_B500000 0010005 |
|||
#define TARGET_B576000 0010006 |
|||
#define TARGET_B921600 0010007 |
|||
#define TARGET_B1000000 0010010 |
|||
#define TARGET_B1152000 0010011 |
|||
#define TARGET_B1500000 0010012 |
|||
#define TARGET_B2000000 0010013 |
|||
#define TARGET_B2500000 0010014 |
|||
#define TARGET_B3000000 0010015 |
|||
#define TARGET_B3500000 0010016 |
|||
#define TARGET_B4000000 0010017 |
|||
#define TARGET_CIBAUD 002003600000 /* input baud rate */ |
|||
#define TARGET_CMSPAR 010000000000 /* mark or space (stick) parity */ |
|||
#define TARGET_CRTSCTS 020000000000 /* flow control */ |
|||
|
|||
#define TARGET_IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ |
|||
|
|||
/* c_lflag bits */ |
|||
#define TARGET_ISIG 0000001 |
|||
#define TARGET_ICANON 0000002 |
|||
#define TARGET_XCASE 0000004 |
|||
#define TARGET_ECHO 0000010 |
|||
#define TARGET_ECHOE 0000020 |
|||
#define TARGET_ECHOK 0000040 |
|||
#define TARGET_ECHONL 0000100 |
|||
#define TARGET_NOFLSH 0000200 |
|||
#define TARGET_TOSTOP 0000400 |
|||
#define TARGET_ECHOCTL 0001000 |
|||
#define TARGET_ECHOPRT 0002000 |
|||
#define TARGET_ECHOKE 0004000 |
|||
#define TARGET_FLUSHO 0010000 |
|||
#define TARGET_PENDIN 0040000 |
|||
#define TARGET_IEXTEN 0100000 |
|||
|
|||
/* tcflow() and TCXONC use these */ |
|||
#define TARGET_TCOOFF 0 |
|||
#define TARGET_TCOON 1 |
|||
#define TARGET_TCIOFF 2 |
|||
#define TARGET_TCION 3 |
|||
|
|||
/* tcflush() and TCFLSH use these */ |
|||
#define TARGET_TCIFLUSH 0 |
|||
#define TARGET_TCOFLUSH 1 |
|||
#define TARGET_TCIOFLUSH 2 |
|||
|
|||
/* tcsetattr uses these */ |
|||
#define TARGET_TCSANOW 0 |
|||
#define TARGET_TCSADRAIN 1 |
|||
#define TARGET_TCSAFLUSH 2 |
|||
|
|||
/*
|
|||
* include/asm-s390/ioctls.h |
|||
* |
|||
* S390 version |
|||
* |
|||
* Derived from "include/asm-i386/ioctls.h" |
|||
*/ |
|||
|
|||
/* 0x54 is just a magic number to make these relatively unique ('T') */ |
|||
|
|||
#define TARGET_TCGETS 0x5401 |
|||
#define TARGET_TCSETS 0x5402 |
|||
#define TARGET_TCSETSW 0x5403 |
|||
#define TARGET_TCSETSF 0x5404 |
|||
#define TARGET_TCGETA 0x5405 |
|||
#define TARGET_TCSETA 0x5406 |
|||
#define TARGET_TCSETAW 0x5407 |
|||
#define TARGET_TCSETAF 0x5408 |
|||
#define TARGET_TCSBRK 0x5409 |
|||
#define TARGET_TCXONC 0x540A |
|||
#define TARGET_TCFLSH 0x540B |
|||
#define TARGET_TIOCEXCL 0x540C |
|||
#define TARGET_TIOCNXCL 0x540D |
|||
#define TARGET_TIOCSCTTY 0x540E |
|||
#define TARGET_TIOCGPGRP 0x540F |
|||
#define TARGET_TIOCSPGRP 0x5410 |
|||
#define TARGET_TIOCOUTQ 0x5411 |
|||
#define TARGET_TIOCSTI 0x5412 |
|||
#define TARGET_TIOCGWINSZ 0x5413 |
|||
#define TARGET_TIOCSWINSZ 0x5414 |
|||
#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_FIONREAD 0x541B |
|||
#define TARGET_TIOCINQ FIONREAD |
|||
#define TARGET_TIOCLINUX 0x541C |
|||
#define TARGET_TIOCCONS 0x541D |
|||
#define TARGET_TIOCGSERIAL 0x541E |
|||
#define TARGET_TIOCSSERIAL 0x541F |
|||
#define TARGET_TIOCPKT 0x5420 |
|||
#define TARGET_FIONBIO 0x5421 |
|||
#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_TCGETS2 _IOR('T',0x2A, struct termios2) |
|||
#define TARGET_TCSETS2 _IOW('T',0x2B, struct termios2) |
|||
#define TARGET_TCSETSW2 _IOW('T',0x2C, struct termios2) |
|||
#define TARGET_TCSETSF2 _IOW('T',0x2D, struct termios2) |
|||
#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_TIOCGDEV _IOR('T',0x32, unsigned int) /* Get real dev no below /dev/console */ |
|||
|
|||
#define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ |
|||
#define TARGET_FIOCLEX 0x5451 |
|||
#define TARGET_FIOASYNC 0x5452 |
|||
#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 */ |
|||
#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_FIOQSIZE 0x545E |
|||
|
|||
/* Used for packet mode */ |
|||
#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_TIOCSER_TEMT 0x01 /* Transmitter physically empty */ |
|||
|
|||
@ -0,0 +1,151 @@ |
|||
#include "def-helper.h" |
|||
|
|||
DEF_HELPER_1(exception, void, i32) |
|||
DEF_HELPER_3(nc, i32, i32, i64, i64) |
|||
DEF_HELPER_3(oc, i32, i32, i64, i64) |
|||
DEF_HELPER_3(xc, i32, i32, i64, i64) |
|||
DEF_HELPER_3(mvc, void, i32, i64, i64) |
|||
DEF_HELPER_3(clc, i32, i32, i64, i64) |
|||
DEF_HELPER_2(mvcl, i32, i32, i32) |
|||
DEF_HELPER_FLAGS_1(set_cc_comp_s32, TCG_CALL_PURE|TCG_CALL_CONST, i32, s32) |
|||
DEF_HELPER_FLAGS_1(set_cc_comp_s64, TCG_CALL_PURE|TCG_CALL_CONST, i32, s64) |
|||
DEF_HELPER_FLAGS_2(set_cc_icm, TCG_CALL_PURE|TCG_CALL_CONST, i32, i32, i32) |
|||
DEF_HELPER_3(clm, i32, i32, i32, i64) |
|||
DEF_HELPER_3(stcm, void, i32, i32, i64) |
|||
DEF_HELPER_2(mlg, void, i32, i64) |
|||
DEF_HELPER_2(dlg, void, i32, i64) |
|||
DEF_HELPER_FLAGS_3(set_cc_add64, TCG_CALL_PURE|TCG_CALL_CONST, i32, s64, s64, s64) |
|||
DEF_HELPER_FLAGS_3(set_cc_addu64, TCG_CALL_PURE|TCG_CALL_CONST, i32, i64, i64, i64) |
|||
DEF_HELPER_FLAGS_3(set_cc_add32, TCG_CALL_PURE|TCG_CALL_CONST, i32, s32, s32, s32) |
|||
DEF_HELPER_FLAGS_3(set_cc_addu32, TCG_CALL_PURE|TCG_CALL_CONST, i32, i32, i32, i32) |
|||
DEF_HELPER_FLAGS_3(set_cc_sub64, TCG_CALL_PURE|TCG_CALL_CONST, i32, s64, s64, s64) |
|||
DEF_HELPER_FLAGS_3(set_cc_subu64, TCG_CALL_PURE|TCG_CALL_CONST, i32, i64, i64, i64) |
|||
DEF_HELPER_FLAGS_3(set_cc_sub32, TCG_CALL_PURE|TCG_CALL_CONST, i32, s32, s32, s32) |
|||
DEF_HELPER_FLAGS_3(set_cc_subu32, TCG_CALL_PURE|TCG_CALL_CONST, i32, i32, i32, i32) |
|||
DEF_HELPER_3(srst, i32, i32, i32, i32) |
|||
DEF_HELPER_3(clst, i32, i32, i32, i32) |
|||
DEF_HELPER_3(mvpg, void, i64, i64, i64) |
|||
DEF_HELPER_3(mvst, void, i32, i32, i32) |
|||
DEF_HELPER_3(csg, i32, i32, i64, i32) |
|||
DEF_HELPER_3(cdsg, i32, i32, i64, i32) |
|||
DEF_HELPER_3(cs, i32, i32, i64, i32) |
|||
DEF_HELPER_4(ex, i32, i32, i64, i64, i64) |
|||
DEF_HELPER_FLAGS_1(abs_i32, TCG_CALL_PURE|TCG_CALL_CONST, i32, s32) |
|||
DEF_HELPER_FLAGS_1(nabs_i32, TCG_CALL_PURE|TCG_CALL_CONST, s32, s32) |
|||
DEF_HELPER_FLAGS_1(abs_i64, TCG_CALL_PURE|TCG_CALL_CONST, i64, s64) |
|||
DEF_HELPER_FLAGS_1(nabs_i64, TCG_CALL_PURE|TCG_CALL_CONST, s64, s64) |
|||
DEF_HELPER_3(stcmh, void, i32, i64, i32) |
|||
DEF_HELPER_3(icmh, i32, i32, i64, i32) |
|||
DEF_HELPER_2(ipm, void, i32, i32) |
|||
DEF_HELPER_FLAGS_3(addc_u32, TCG_CALL_PURE|TCG_CALL_CONST, i32, i32, i32, i32) |
|||
DEF_HELPER_FLAGS_3(set_cc_addc_u64, TCG_CALL_PURE|TCG_CALL_CONST, i32, i64, i64, i64) |
|||
DEF_HELPER_3(stam, void, i32, i64, i32) |
|||
DEF_HELPER_3(lam, void, i32, i64, i32) |
|||
DEF_HELPER_3(mvcle, i32, i32, i64, i32) |
|||
DEF_HELPER_3(clcle, i32, i32, i64, i32) |
|||
DEF_HELPER_3(slb, i32, i32, i32, i32) |
|||
DEF_HELPER_4(slbg, i32, i32, i32, i64, i64) |
|||
DEF_HELPER_2(cefbr, void, i32, s32) |
|||
DEF_HELPER_2(cdfbr, void, i32, s32) |
|||
DEF_HELPER_2(cxfbr, void, i32, s32) |
|||
DEF_HELPER_2(cegbr, void, i32, s64) |
|||
DEF_HELPER_2(cdgbr, void, i32, s64) |
|||
DEF_HELPER_2(cxgbr, void, i32, s64) |
|||
DEF_HELPER_2(adbr, i32, i32, i32) |
|||
DEF_HELPER_2(aebr, i32, i32, i32) |
|||
DEF_HELPER_2(sebr, i32, i32, i32) |
|||
DEF_HELPER_2(sdbr, i32, i32, i32) |
|||
DEF_HELPER_2(debr, void, i32, i32) |
|||
DEF_HELPER_2(dxbr, void, i32, i32) |
|||
DEF_HELPER_2(mdbr, void, i32, i32) |
|||
DEF_HELPER_2(mxbr, void, i32, i32) |
|||
DEF_HELPER_2(ldebr, void, i32, i32) |
|||
DEF_HELPER_2(ldxbr, void, i32, i32) |
|||
DEF_HELPER_2(lxdbr, void, i32, i32) |
|||
DEF_HELPER_2(ledbr, void, i32, i32) |
|||
DEF_HELPER_2(lexbr, void, i32, i32) |
|||
DEF_HELPER_2(lpebr, i32, i32, i32) |
|||
DEF_HELPER_2(lpdbr, i32, i32, i32) |
|||
DEF_HELPER_2(lpxbr, i32, i32, i32) |
|||
DEF_HELPER_2(ltebr, i32, i32, i32) |
|||
DEF_HELPER_2(ltdbr, i32, i32, i32) |
|||
DEF_HELPER_2(ltxbr, i32, i32, i32) |
|||
DEF_HELPER_2(lcebr, i32, i32, i32) |
|||
DEF_HELPER_2(lcdbr, i32, i32, i32) |
|||
DEF_HELPER_2(lcxbr, i32, i32, i32) |
|||
DEF_HELPER_2(aeb, void, i32, i32) |
|||
DEF_HELPER_2(deb, void, i32, i32) |
|||
DEF_HELPER_2(meeb, void, i32, i32) |
|||
DEF_HELPER_2(cdb, i32, i32, i64) |
|||
DEF_HELPER_2(adb, i32, i32, i64) |
|||
DEF_HELPER_2(seb, void, i32, i32) |
|||
DEF_HELPER_2(sdb, i32, i32, i64) |
|||
DEF_HELPER_2(mdb, void, i32, i64) |
|||
DEF_HELPER_2(ddb, void, i32, i64) |
|||
DEF_HELPER_FLAGS_2(cebr, TCG_CALL_PURE, i32, i32, i32) |
|||
DEF_HELPER_FLAGS_2(cdbr, TCG_CALL_PURE, i32, i32, i32) |
|||
DEF_HELPER_FLAGS_2(cxbr, TCG_CALL_PURE, i32, i32, i32) |
|||
DEF_HELPER_3(cgebr, i32, i32, i32, i32) |
|||
DEF_HELPER_3(cgdbr, i32, i32, i32, i32) |
|||
DEF_HELPER_3(cgxbr, i32, i32, i32, i32) |
|||
DEF_HELPER_1(lzer, void, i32) |
|||
DEF_HELPER_1(lzdr, void, i32) |
|||
DEF_HELPER_1(lzxr, void, i32) |
|||
DEF_HELPER_3(cfebr, i32, i32, i32, i32) |
|||
DEF_HELPER_3(cfdbr, i32, i32, i32, i32) |
|||
DEF_HELPER_3(cfxbr, i32, i32, i32, i32) |
|||
DEF_HELPER_2(axbr, i32, i32, i32) |
|||
DEF_HELPER_2(sxbr, i32, i32, i32) |
|||
DEF_HELPER_2(meebr, void, i32, i32) |
|||
DEF_HELPER_2(ddbr, void, i32, i32) |
|||
DEF_HELPER_3(madb, void, i32, i64, i32) |
|||
DEF_HELPER_3(maebr, void, i32, i32, i32) |
|||
DEF_HELPER_3(madbr, void, i32, i32, i32) |
|||
DEF_HELPER_3(msdbr, void, i32, i32, i32) |
|||
DEF_HELPER_2(lxdb, void, i32, i64) |
|||
DEF_HELPER_FLAGS_2(tceb, TCG_CALL_PURE, i32, i32, i64) |
|||
DEF_HELPER_FLAGS_2(tcdb, TCG_CALL_PURE, i32, i32, i64) |
|||
DEF_HELPER_FLAGS_2(tcxb, TCG_CALL_PURE, i32, i32, i64) |
|||
DEF_HELPER_2(flogr, i32, i32, i64) |
|||
DEF_HELPER_2(sqdbr, void, i32, i32) |
|||
DEF_HELPER_FLAGS_1(cvd, TCG_CALL_PURE|TCG_CALL_CONST, i64, s32) |
|||
DEF_HELPER_3(unpk, void, i32, i64, i64) |
|||
DEF_HELPER_3(tr, void, i32, i64, i64) |
|||
|
|||
DEF_HELPER_2(servc, i32, i32, i64) |
|||
DEF_HELPER_3(diag, i64, i32, i64, i64) |
|||
DEF_HELPER_2(load_psw, void, i64, i64) |
|||
DEF_HELPER_1(program_interrupt, void, i32) |
|||
DEF_HELPER_FLAGS_1(stidp, TCG_CALL_CONST, void, i64) |
|||
DEF_HELPER_FLAGS_1(spx, TCG_CALL_CONST, void, i64) |
|||
DEF_HELPER_FLAGS_1(sck, TCG_CALL_CONST, i32, i64) |
|||
DEF_HELPER_1(stck, i32, i64) |
|||
DEF_HELPER_1(stcke, i32, i64) |
|||
DEF_HELPER_FLAGS_1(sckc, TCG_CALL_CONST, void, i64) |
|||
DEF_HELPER_FLAGS_1(stckc, TCG_CALL_CONST, void, i64) |
|||
DEF_HELPER_FLAGS_1(spt, TCG_CALL_CONST, void, i64) |
|||
DEF_HELPER_FLAGS_1(stpt, TCG_CALL_CONST, void, i64) |
|||
DEF_HELPER_3(stsi, i32, i64, i32, i32) |
|||
DEF_HELPER_3(lctl, void, i32, i64, i32) |
|||
DEF_HELPER_3(lctlg, void, i32, i64, i32) |
|||
DEF_HELPER_3(stctl, void, i32, i64, i32) |
|||
DEF_HELPER_3(stctg, void, i32, i64, i32) |
|||
DEF_HELPER_FLAGS_2(tprot, TCG_CALL_CONST, i32, i64, i64) |
|||
DEF_HELPER_FLAGS_1(iske, TCG_CALL_PURE|TCG_CALL_CONST, i64, i64) |
|||
DEF_HELPER_FLAGS_2(sske, TCG_CALL_CONST, void, i32, i64) |
|||
DEF_HELPER_FLAGS_2(rrbe, TCG_CALL_CONST, i32, i32, i64) |
|||
DEF_HELPER_2(csp, i32, i32, i32) |
|||
DEF_HELPER_3(mvcs, i32, i64, i64, i64) |
|||
DEF_HELPER_3(mvcp, i32, i64, i64, i64) |
|||
DEF_HELPER_3(sigp, i32, i64, i32, i64) |
|||
DEF_HELPER_1(sacf, void, i64) |
|||
DEF_HELPER_FLAGS_2(ipte, TCG_CALL_CONST, void, i64, i64) |
|||
DEF_HELPER_FLAGS_0(ptlb, TCG_CALL_CONST, void) |
|||
DEF_HELPER_2(lra, i32, i64, i32) |
|||
DEF_HELPER_2(stura, void, i64, i32) |
|||
DEF_HELPER_2(cksm, void, i32, i32) |
|||
|
|||
DEF_HELPER_FLAGS_4(calc_cc, TCG_CALL_PURE|TCG_CALL_CONST, |
|||
i32, i32, i64, i64, i64) |
|||
|
|||
#include "def-helper.h" |
|||
File diff suppressed because it is too large
File diff suppressed because it is too large
Loading…
Reference in new issue