1b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 2b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/*--------------------------------------------------------------------*/ 3b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/*--- s390x/Linux-specific kernel interface. vki-s390x-linux.h ---*/ 4b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/*--------------------------------------------------------------------*/ 59ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant 69ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant/* 7b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar This file is part of Valgrind, a dynamic binary instrumentation 8b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar framework. 9b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 10b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar Copyright IBM Corp. 2010-2015 11b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 12b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar This program is free software; you can redistribute it and/or 13b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar modify it under the terms of the GNU General Public License as 14b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar published by the Free Software Foundation; either version 2 of the 15b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar License, or (at your option) any later version. 16b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 172d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines This program is distributed in the hope that it will be useful, but 182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines WITHOUT ANY WARRANTY; without even the implied warranty of 19b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar General Public License for more details. 21b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 22cdce50bda3603770cc4ef80cbb613c78b8e47a17Pirama Arumuga Nainar You should have received a copy of the GNU General Public License 23b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar along with this program; if not, write to the Free Software 24b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 25b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 02111-1307, USA. 26b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 27b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar The GNU General Public License is contained in the file COPYING. 28b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar*/ 29b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 30b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* Contributed by Florian Krohm and Volker Sameske */ 31b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 32b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef __VKI_S390X_LINUX_H 33b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __VKI_S390X_LINUX_H 34b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 35b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __force 36b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 37b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 38b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/types.h 39b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 40b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 41b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef __signed__ char __vki_s8; 42b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned char __vki_u8; 43b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 44b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef __signed__ short __vki_s16; 45cff5248a12a36a7225b707b23ac088f5ba214f8aDaniel Dunbartypedef unsigned short __vki_u16; 46cff5248a12a36a7225b707b23ac088f5ba214f8aDaniel Dunbar 47cff5248a12a36a7225b707b23ac088f5ba214f8aDaniel Dunbartypedef __signed__ int __vki_s32; 48b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned int __vki_u32; 49b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 50b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef __signed__ long __vki_s64; 51b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned long __vki_u64; 52b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 53b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned short vki_u16; 54b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 55b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned int vki_u32; 56b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 57b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 58b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/page.h 59b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 60b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 61b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* PAGE_SHIFT determines the page size */ 62b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PAGE_SHIFT 12 63b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PAGE_SIZE (1UL << VKI_PAGE_SHIFT) 64b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 65b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 66b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/siginfo.h 67b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 68b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 69b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* We need that to ensure that sizeof(siginfo) == 128. */ 70b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifdef __s390x__ 71b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __VKI_ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) 72b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif 73b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 74b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 75b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/sigcontext.h 76b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 77b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 78b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __VKI_NUM_GPRS 16 79b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __VKI_NUM_FPRS 16 80b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __VKI_NUM_ACRS 16 81b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 82b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 83b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 84b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* Has to be at least _NSIG_WORDS from asm/signal.h */ 85b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_SIGCONTEXT_NSIG 64 86b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_SIGCONTEXT_NSIG_BPW 32 87b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* Size of stack frame allocated when calling signal handler. */ 88b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __VKI_SIGNAL_FRAMESIZE 96 89b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 90b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#else /* VGA_s390x */ 91b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 92b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* Has to be at least _NSIG_WORDS from asm/signal.h */ 93b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_SIGCONTEXT_NSIG 64 94b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_SIGCONTEXT_NSIG_BPW 64 95b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* Size of stack frame allocated when calling signal handler. */ 96b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define __VKI_SIGNAL_FRAMESIZE 160 97b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 98b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* VGA_s390x */ 99b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 100b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 101b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_SIGCONTEXT_NSIG_WORDS (_VKI_SIGCONTEXT_NSIG / _VKI_SIGCONTEXT_NSIG_BPW) 102b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_SIGMASK_COPY_SIZE (sizeof(unsigned long)*_VKI_SIGCONTEXT_NSIG_WORDS) 103b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 104b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 105b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 106b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long mask; 107b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long addr; 108b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} __attribute__ ((aligned(8))) _vki_psw_t; 109b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 110b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 111b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 112b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar _vki_psw_t psw; 113b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long gprs[__VKI_NUM_GPRS]; 114b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int acrs[__VKI_NUM_ACRS]; 115b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} _vki_s390_regs_common; 116b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 117b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 118b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 119b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int fpc; 120b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar double fprs[__VKI_NUM_FPRS]; 121b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} _vki_s390_fp_regs; 122b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 123b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 124b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 125b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar _vki_s390_regs_common regs; 126b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar _vki_s390_fp_regs fpregs; 127b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} _vki_sigregs; 128b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 129b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 130b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_sigcontext 131b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 132b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long oldmask[_VKI_SIGCONTEXT_NSIG_WORDS]; 133b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar _vki_sigregs __user *sregs; 134b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 135b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 136b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 137b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 138b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/signal.h 139b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 140b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 141b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_NSIG _VKI_SIGCONTEXT_NSIG 142b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_NSIG_BPW _VKI_SIGCONTEXT_NSIG_BPW 143b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_NSIG_WORDS _VKI_SIGCONTEXT_NSIG_WORDS 144b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 145b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned long vki_old_sigset_t; 146b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 147b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct { 148b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long sig[_VKI_NSIG_WORDS]; 149b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_sigset_t; 150b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 151b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGHUP 1 152b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGINT 2 153b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGQUIT 3 154b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGILL 4 155b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGTRAP 5 156b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGABRT 6 157b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGIOT 6 158b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGBUS 7 159b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGFPE 8 160b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGKILL 9 161b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGUSR1 10 162b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGSEGV 11 163b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGUSR2 12 164b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGPIPE 13 165b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGALRM 14 166b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGTERM 15 167b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGSTKFLT 16 168b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGCHLD 17 169b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGCONT 18 170b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGSTOP 19 171b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGTSTP 20 172b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGTTIN 21 173b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGTTOU 22 174b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGURG 23 175b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGXCPU 24 176b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGXFSZ 25 177b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGVTALRM 26 178b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGPROF 27 179b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGWINCH 28 180b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGIO 29 181b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGPOLL VKI_SIGIO 182b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* 183b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGLOST 29 184b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar*/ 185b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGPWR 30 186b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGSYS 31 187b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGUNUSED 31 188b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 189b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* These should not be considered constants from userland. */ 190b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGRTMIN 32 191b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGRTMAX _VKI_NSIG 192b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 193b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* 194b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_FLAGS values: 195b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * 196b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_ONSTACK indicates that a registered stack_t will be used. 197b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the 198b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_RESTART flag to get restarting signals (which were the default long ago) 199b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 200b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_RESETHAND clears the handler when the signal is delivered. 201b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. 202b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_NODEFER prevents the current signal from being masked in the handler. 203b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * 204b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single 205b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * Unix names RESETHAND and NODEFER respectively. 206b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 207b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_NOCLDSTOP 0x00000001 208b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_NOCLDWAIT 0x00000002 209b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_SIGINFO 0x00000004 210b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_ONSTACK 0x08000000 211b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_RESTART 0x10000000 212b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_NODEFER 0x40000000 213b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_RESETHAND 0x80000000 214b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 215b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_NOMASK VKI_SA_NODEFER 216b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_ONESHOT VKI_SA_RESETHAND 217b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_INTERRUPT 0x20000000 /* dummy -- ignored */ 218b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 219b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SA_RESTORER 0x04000000 220b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 221b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* 222b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * sigaltstack controls 223b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 224b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SS_ONSTACK 1 225b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SS_DISABLE 2 226b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 227b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MINSIGSTKSZ 2048 228b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIGSTKSZ 8192 229b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 230b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 231b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* Next lines asm-generic/signal.h */ 232b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIG_BLOCK 0 /* for blocking signals */ 233b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIG_UNBLOCK 1 /* for unblocking signals */ 234b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIG_SETMASK 2 /* for setting the signal mask */ 235b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 236b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef void __vki_signalfn_t(int); 237b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef __vki_signalfn_t __user *__vki_sighandler_t; 238b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 239b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* default signal handling */ 240b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIG_DFL ((__force __vki_sighandler_t)0) 241b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* ignore signal */ 242b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIG_IGN ((__force __vki_sighandler_t)1) 243b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* error return from signal */ 244b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIG_ERR ((__force __vki_sighandler_t)-1) 245b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* Back to asm-s390/signal.h */ 246b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 247b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_old_sigaction { 248b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // [[Nb: a 'k' prefix is added to "sa_handler" because 249b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // bits/sigaction.h (which gets dragged in somehow via signal.h) 250b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // #defines it as something else. Since that is done for glibc's 251b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // purposes, which we don't care about here, we use our own name.]] 252b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_sighandler_t ksa_handler; 253b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_old_sigset_t sa_mask; 254b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long sa_flags; 255b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar void (*sa_restorer)(void); 256b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 257b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 258b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_sigaction { 259b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // [[See comment about extra 'k' above]] 260b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_sighandler_t ksa_handler; 261b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // Yes, the reserved field is really glibc specific. The kernel 262b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // doesn't have it and uses an unsigned long for sa_flags. 263b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // The glibc and the kernel agreed this is fine and the 264b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // __glibc_reserved0 field can be undefined. 265b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar // See https://sourceware.org/ml/libc-alpha/2014-09/msg00161.html 266b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int __glibc_reserved0; 267b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int sa_flags; 268b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar void (*sa_restorer)(void); 269b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_sigset_t sa_mask; /* mask last for extensibility */ 270b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 271b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 272b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_k_sigaction { 273b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar struct vki_sigaction sa; 274b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 275b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 276b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 277b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* On Linux we use the same type for passing sigactions to 278b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar and from the kernel. Hence: */ 279b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct vki_sigaction vki_sigaction_toK_t; 280b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct vki_sigaction vki_sigaction_fromK_t; 281b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 282b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 283b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct vki_sigaltstack { 284b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar void __user *ss_sp; 285b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int ss_flags; 286b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_size_t ss_size; 287b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_stack_t; 288b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 289b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 290b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 291b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/mman.h 292b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 293b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 294b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PROT_NONE 0x0 /* No page permissions */ 295b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PROT_READ 0x1 /* page can be read */ 296b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PROT_WRITE 0x2 /* page can be written */ 297b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PROT_EXEC 0x4 /* page can be executed */ 298b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend 299b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar change to start of 300b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar growsdown vma */ 301b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PROT_GROWSUP 0x02000000 /* mprotect flag: 302b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar extend change to end 303b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar of growsup vma */ 304b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 305b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MAP_SHARED 0x0001 /* Share changes */ 306b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MAP_PRIVATE 0x0002 /* */ 307b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MAP_FIXED 0x0010 /* */ 308b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MAP_ANONYMOUS 0x0020 /* */ 309b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 310b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 311b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 312b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/fcntl.h 313b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 314b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 315b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_RDONLY 00000000 316b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_WRONLY 00000001 317b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_RDWR 00000002 318b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_ACCMODE 00000003 319b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_CREAT 00000100 /* not fcntl */ 320b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_EXCL 00000200 /* not fcntl */ 321b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_NOCTTY 00000400 /* not fcntl */ 322b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_TRUNC 00001000 /* not fcntl */ 323b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_APPEND 00002000 324b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_O_NONBLOCK 00004000 325b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 326b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_AT_FDCWD -100 327b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 328b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_DUPFD 0 /* dup */ 329b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_GETFD 1 /* get close_on_exec */ 330b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_SETFD 2 /* set/clear close_on_exec */ 331b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_GETFL 3 /* get file->f_flags */ 332b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_SETFL 4 /* set file->f_flags */ 333b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_GETLK 5 334b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_SETLK 6 335b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_SETLKW 7 336b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_SETOWN 8 /* for sockets. */ 337b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_GETOWN 9 /* for sockets. */ 338b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_SETSIG 10 /* for sockets. */ 339b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_GETSIG 11 /* for sockets. */ 340b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 341b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_SETOWN_EX 15 342b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_GETOWN_EX 16 343b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 344b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_OFD_GETLK 36 345b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_OFD_SETLK 37 346b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_OFD_SETLKW 38 347b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 348b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_OWNER_TID 0 349b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_OWNER_PID 1 350b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_OWNER_PGRP 2 351b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 352b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_f_owner_ex { 353b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int type; 354b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_pid_t pid; 355b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 356b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 357b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */ 358b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 359b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_F_LINUX_SPECIFIC_BASE 1024 360b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 361b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 362b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 363b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390x/resource.h 364b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 365b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 366b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// which just does #include <asm-generic/resource.h> 367b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 368b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_RLIMIT_DATA 2 /* max data size */ 369b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_RLIMIT_STACK 3 /* max stack size */ 370b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_RLIMIT_CORE 4 /* max core file size */ 371b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_RLIMIT_NOFILE 7 /* max number of open files */ 372b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 373b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 374b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 375b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/socket.h 376b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 377b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 378b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SOL_SOCKET 1 379b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 380b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SO_TYPE 3 381b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 382b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SO_ATTACH_FILTER 26 383b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 384b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 385b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/sockios.h 386b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 387b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 388b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIOCSPGRP 0x8902 389b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIOCGPGRP 0x8904 390b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIOCATMARK 0x8905 391b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ 392b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* since 2.6.22 */ 393b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ 394b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 395b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 396b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 397b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/stat.h 398b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 399b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 400b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 401b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_stat { 402b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short st_dev; 403b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short __pad1; 404b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ino; 405b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short st_mode; 406b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short st_nlink; 407b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short st_uid; 408b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short st_gid; 409b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short st_rdev; 410b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short __pad2; 411b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_size; 412b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_blksize; 413b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_blocks; 414b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_atime; 415b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_atime_nsec; 416b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_mtime; 417b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_mtime_nsec; 418b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ctime; 419b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ctime_nsec; 420b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused4; 421b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused5; 422b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 423b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 424b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* This matches struct stat64 in glibc2.1, hence the absolutely 425b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * insane amounts of padding around dev_t's. 426b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 427b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_stat64 { 428b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long long st_dev; 429b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int __pad1; 430b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __st_ino; 431b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int st_mode; 432b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int st_nlink; 433b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_uid; 434b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_gid; 435b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long long st_rdev; 436b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int __pad3; 437b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long long st_size; 438b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_blksize; 439b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned char __pad4[4]; 440b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __pad5; /* future possible st_blocks high bits */ 441b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_blocks; /* Number 512-byte blocks allocated. */ 442b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_atime; 443b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_atime_nsec; 444b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_mtime; 445b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_mtime_nsec; 446b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ctime; 447b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ctime_nsec; /* will be high 32 bits of ctime someday */ 448b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long long st_ino; 449b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 450b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 451b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#else 452b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 453b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_stat { 454b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_dev; 455b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ino; 456b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_nlink; 457b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int st_mode; 458b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int st_uid; 459b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int st_gid; 460b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int __pad1; 461b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_rdev; 462b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_size; 463b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_atime; 464b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_atime_nsec; 465b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_mtime; 466b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_mtime_nsec; 467b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ctime; 468b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_ctime_nsec; 469b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long st_blksize; 470b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long st_blocks; 471b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused0[3]; 472b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 473b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 474b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* VGA_s390x */ 475b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 476b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 477b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 478b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/statfs.h 479b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 480b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 481b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_statfs { 482b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int f_type; 483b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int f_bsize; 484b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long f_blocks; 485b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long f_bfree; 486b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long f_bavail; 487b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long f_files; 488b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long f_ffree; 489b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_fsid_t f_fsid; 490b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int f_namelen; 491b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int f_frsize; 492b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int f_spare[5]; 493b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 494b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 495b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 496b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 497b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/termios.h 498b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 499b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 500b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_winsize { 501b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short ws_row; 502b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short ws_col; 503b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short ws_xpixel; 504b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short ws_ypixel; 505b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 506b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 507b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_NCC 8 508b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_termio { 509b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short c_iflag; /* input mode flags */ 510b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short c_oflag; /* output mode flags */ 511b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short c_cflag; /* control mode flags */ 512b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short c_lflag; /* local mode flags */ 513b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned char c_line; /* line discipline */ 514b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned char c_cc[VKI_NCC]; /* control characters */ 515b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 516b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 517b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 518b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 519b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/termbits.h 520b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 521b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 522b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned char vki_cc_t; 523b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef unsigned int vki_tcflag_t; 524b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 525b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_NCCS 19 526b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_termios { 527b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_tcflag_t c_iflag; /* input mode flags */ 528b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_tcflag_t c_oflag; /* output mode flags */ 529b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_tcflag_t c_cflag; /* control mode flags */ 530b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_tcflag_t c_lflag; /* local mode flags */ 531b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_cc_t c_line; /* line discipline */ 532b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_cc_t c_cc[VKI_NCCS]; /* control characters */ 533b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 534b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 535b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 536b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 537b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/ioctl.h 538b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 539b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 540b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_NRBITS 8 541b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_TYPEBITS 8 542b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_SIZEBITS 14 543b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_DIRBITS 2 544b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 545b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_NRMASK ((1 << _VKI_IOC_NRBITS)-1) 546b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_TYPEMASK ((1 << _VKI_IOC_TYPEBITS)-1) 547b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_SIZEMASK ((1 << _VKI_IOC_SIZEBITS)-1) 548b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_DIRMASK ((1 << _VKI_IOC_DIRBITS)-1) 549b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 550b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_NRSHIFT 0 551b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_TYPESHIFT (_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS) 552b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_SIZESHIFT (_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS) 553b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_DIRSHIFT (_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS) 554b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 555b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_NONE 0U 556b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_WRITE 1U 557b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_READ 2U 558b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 559b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC(dir,type,nr,size) \ 560b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar (((dir) << _VKI_IOC_DIRSHIFT) | \ 561b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar ((type) << _VKI_IOC_TYPESHIFT) | \ 562b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar ((nr) << _VKI_IOC_NRSHIFT) | \ 563b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar ((size) << _VKI_IOC_SIZESHIFT)) 564b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 565b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* used to create numbers */ 566b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0) 567b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOR(type,nr,size) _VKI_IOC(_VKI_IOC_READ,(type),(nr),(_VKI_IOC_TYPECHECK(size))) 568b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOW(type,nr,size) _VKI_IOC(_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size))) 569b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOWR(type,nr,size) _VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size))) 570b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 571b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* used to decode ioctl numbers.. */ 572b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_DIR(nr) (((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK) 573b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_TYPE(nr) (((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK) 574b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_NR(nr) (((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK) 575b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define _VKI_IOC_SIZE(nr) (((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK) 576b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 577b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 578b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/ioctls.h 579b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 580b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 581b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* 0x54 is just a magic number to make these relatively unique ('T') */ 582b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 583b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCGETS 0x5401 584b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSETS 0x5402 585b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSETSW 0x5403 586b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSETSF 0x5404 587b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCGETA 0x5405 588b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSETA 0x5406 589b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSETAW 0x5407 590b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSETAF 0x5408 591b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSBRK 0x5409 592b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCXONC 0x540A 593b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCFLSH 0x540B 594b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 595b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCSCTTY 0x540E 596b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCGPGRP 0x540F 597b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCSPGRP 0x5410 598b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCOUTQ 0x5411 599b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 600b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCGWINSZ 0x5413 601b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCSWINSZ 0x5414 602b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCMGET 0x5415 603b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCMBIS 0x5416 604b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCMBIC 0x5417 605b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCMSET 0x5418 606b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 607b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_FIONREAD 0x541B 608b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCLINUX 0x541C 609b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 610b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_FIONBIO 0x5421 611b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCNOTTY 0x5422 612b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 613b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */ 614b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 615b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ 616b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */ 617b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 618b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_FIONCLEX 0x5450 619b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_FIOCLEX 0x5451 620b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_FIOASYNC 0x5452 621b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 622b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCSERGETLSR 0x5459 /* Get line status register */ 623b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 624b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ 625b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 626b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 627b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.39-rc2/arch/s390/include/asm/ioctls.h 628b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 629b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 630b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_FIOQSIZE 0x545E 631b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 632b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 633b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/poll.h 634b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 635b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 636b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_pollfd { 637b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar int fd; 638b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar short events; 639b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar short revents; 640b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 641b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 642b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_POLLIN 0x0001 643b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 644b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 645b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/ptrace.h 646b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 647b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_NUM_GPRS 16 648b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_NUM_FPRS 16 649b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_NUM_CRS 16 650b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_NUM_ACRS 16 651b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 652b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef union 653b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 654b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar float f; 655b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar double d; 656b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_u64 ui; 657b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar struct 658b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar { 659b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_u32 hi; 660b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_u32 lo; 661b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar } fp; 662b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_freg_t; 663b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 664b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 665b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 666b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_u32 fpc; 667b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_freg_t fprs[VKI_NUM_FPRS]; 668b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_s390_fp_regs; 669b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 670b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 671b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 672b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long mask; 673b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long addr; 674b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} __attribute__ ((aligned(8))) vki_psw_t; 675b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 676b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 677b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 678b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_psw_t psw; 679b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long gprs[VKI_NUM_GPRS]; 680b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int acrs[VKI_NUM_ACRS]; 681b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long orig_gpr2; 682b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_s390_regs; 683b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 684b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* 685b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * Now for the program event recording (trace) definitions. 686b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 687b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 688b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 689b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long cr[3]; 690b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_per_cr_words; 691b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 692b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 693b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 694b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifdef VGA_s390x 695b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned : 32; 696b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* VGA_s390x */ 697b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned em_branching : 1; 698b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned em_instruction_fetch : 1; 699b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar /* 700b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * Switching on storage alteration automatically fixes 701b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * the storage alteration event bit in the users std. 702b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 703b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned em_storage_alteration : 1; 704b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned em_gpr_alt_unused : 1; 705b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned em_store_real_address : 1; 706b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned : 3; 707b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned branch_addr_ctl : 1; 708b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned : 1; 709b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned storage_alt_space_ctl : 1; 710b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned : 21; 711b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long starting_addr; 712b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long ending_addr; 713b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_per_cr_bits; 714b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 715b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 716b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 717b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short perc_atmid; 718b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long address; 719b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned char access_id; 720b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_per_lowcore_words; 721b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 722b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 723b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 724b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned perc_branching : 1; 725b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned perc_instruction_fetch : 1; 726b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned perc_storage_alteration : 1; 727b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned perc_gpr_alt_unused : 1; 728b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned perc_store_real_address : 1; 729b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned : 3; 730b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned atmid_psw_bit_31 : 1; 731b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned atmid_validity_bit : 1; 732b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned atmid_psw_bit_32 : 1; 733b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned atmid_psw_bit_5 : 1; 734b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned atmid_psw_bit_16 : 1; 735b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned atmid_psw_bit_17 : 1; 736b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned si : 2; 737b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long address; 738b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned : 4; 739b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned access_id : 4; 740b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_per_lowcore_bits; 741b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 742b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 743b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 744b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar union { 745b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_per_cr_words words; 746b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_per_cr_bits bits; 747b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar } control_regs; 748b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar /* 749b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * Use these flags instead of setting em_instruction_fetch 750b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * directly they are used so that single stepping can be 751b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * switched on & off while not affecting other tracing 752b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 753b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned single_step : 1; 754b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned instruction_fetch : 1; 755b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned : 30; 756b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar /* 757b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * These addresses are copied into cr10 & cr11 if single 758b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * stepping is switched off 759b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 760b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long starting_addr; 761b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long ending_addr; 762b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar union { 763b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_per_lowcore_words words; 764b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_per_lowcore_bits bits; 765b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar } lowcore; 766b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_per_struct; 767b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 768b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* 769b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * The user_regs_struct defines the way the user registers are 770b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * store on the stack for signal handling. 771b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 772b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_user_regs_struct 773b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 774b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_psw_t psw; 775b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long gprs[VKI_NUM_GPRS]; 776b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int acrs[VKI_NUM_ACRS]; 777b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long orig_gpr2; 778b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_s390_fp_regs fp_regs; 779b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar /* 780b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * These per registers are in here so that gdb can modify them 781b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * itself as there is no "official" ptrace interface for hardware 782b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * watchpoints. This is the way intel does it. 783b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 784b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_per_struct per_info; 785b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long ieee_instruction_pointer; 786b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar /* Used to give failing instruction back to user for ieee exceptions */ 787b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 788b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 789b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef struct 790b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 791b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned int vki_len; 792b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long vki_kernel_addr; 793b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long vki_process_addr; 794b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar} vki_ptrace_area; 795b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 796b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* 797b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar * S/390 specific non posix ptrace requests 798b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar */ 799b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PTRACE_PEEKUSR_AREA 0x5000 800b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_PTRACE_POKEUSR_AREA 0x5001 801b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 802b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 803b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-3.18/include/asm-s390/elf.h 804b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 805b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 806b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef vki_s390_fp_regs vki_elf_fpregset_t; 807b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbartypedef vki_s390_regs vki_elf_gregset_t; 808b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 809b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_HWCAP_S390_TE 1024 810b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_HWCAP_S390_VXRS 2048 811b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 812b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 813b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 814b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/ucontext.h 815b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 816b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 817b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_ucontext { 818b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long uc_flags; 819b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar struct vki_ucontext *uc_link; 820b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_stack_t uc_stack; 821b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar _vki_sigregs uc_mcontext; 822b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_sigset_t uc_sigmask; /* mask last for extensibility */ 823b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 824b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 825b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 826b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/ipcbuf.h 827b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 828b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 829b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_ipc64_perm 830b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{ 831b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_key_t key; 832b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_uid32_t uid; 833b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_gid32_t gid; 834b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_uid32_t cuid; 835b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_gid32_t cgid; 836b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_mode_t mode; 837b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short __pad1; 838b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short seq; 839b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 840b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned short __pad2; 841b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 842b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused1; 843b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused2; 844b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 845b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 846b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 847b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 848b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/sembuf.h 849b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 850b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 851b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_semid64_ds { 852b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar struct vki_ipc64_perm sem_perm; /* permissions .. see ipc.h */ 853b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t sem_otime; /* last semop time */ 854b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 855b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused1; 856b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 857b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t sem_ctime; /* last change time */ 858b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 859b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused2; 860b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 861b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long sem_nsems; /* no. of semaphores in array */ 862b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused3; 863b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused4; 864b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 865b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 866b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 867b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 868b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/msgbuf.h 869b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 870b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 871b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_msqid64_ds { 872b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar struct vki_ipc64_perm msg_perm; 873b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t msg_stime; /* last msgsnd time */ 874b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 875b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused1; 876b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 877b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t msg_rtime; /* last msgrcv time */ 878b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 879b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused2; 880b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 881b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t msg_ctime; /* last change time */ 882b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 883b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused3; 884b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 885b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long msg_cbytes; /* current number of bytes on queue */ 886b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long msg_qnum; /* number of messages in queue */ 887b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long msg_qbytes; /* max number of bytes on queue */ 888b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_pid_t msg_lspid; /* pid of last msgsnd */ 889b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_pid_t msg_lrpid; /* last receive pid */ 890b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused4; 891b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused5; 892b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 893b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 894b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 895b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 896b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/ipc.h 897b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 898b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 899b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_ipc_kludge { 900b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar struct vki_msgbuf __user *msgp; 901b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar long msgtyp; 902b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 903b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 904b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SEMOP 1 905b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SEMGET 2 906b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SEMCTL 3 907b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SEMTIMEDOP 4 908b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MSGSND 11 909b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MSGRCV 12 910b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MSGGET 13 911b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MSGCTL 14 912b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SHMAT 21 913b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SHMDT 22 914b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SHMGET 23 915b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SHMCTL 24 916b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 917b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 918b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 919b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.16.60/include/asm-s390/shmbuf.h 920b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 921b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 922b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_shmid64_ds { 923b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar struct vki_ipc64_perm shm_perm; /* operation perms */ 924b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar vki_size_t shm_segsz; /* size of segment (bytes) */ 925b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t shm_atime; /* last attach time */ 926b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 927b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused1; 928b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 929b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t shm_dtime; /* last detach time */ 930b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 931b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused2; 932b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 933b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_time_t shm_ctime; /* last change time */ 934b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#ifndef VGA_s390x 935b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused3; 936b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif /* ! VGA_s390x */ 937b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_pid_t shm_cpid; /* pid of creator */ 938b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar __vki_kernel_pid_t shm_lpid; /* pid of last operator */ 939b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long shm_nattch; /* no. of current attaches */ 940b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused4; 941b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused5; 942b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 943b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 944b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarstruct vki_shminfo64 { 945b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long shmmax; 946b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long shmmin; 947b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long shmmni; 948b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long shmseg; 949b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long shmall; 950b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused1; 951b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused2; 952b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused3; 953b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar unsigned long __unused4; 954b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}; 955b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 956b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 957b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 958b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// The following are defined in the VKI namespace but are nowhere found 959b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// in the linux headers. 960b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 961b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_BIG_ENDIAN 1 962b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MAX_PAGE_SHIFT VKI_PAGE_SHIFT 963b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE 964b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 965b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 966b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.35.4/arch/s390x/include/asm/shmparam.h 967b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 968b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 969b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_SHMLBA VKI_PAGE_SIZE 970b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 971b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/* If a system call returns a value >= VKI_MAX_ERRNO then that is considered 972b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar an error condition. I.e. the system call failed. */ 973b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_MAX_ERRNO -125 974b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 975b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 976b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-2.6.8.1/include/asm-generic/errno.h 977b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 978b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 979b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_ENOSYS 38 /* Function not implemented */ 980b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_EOVERFLOW 75 /* Value too large for defined data type */ 981b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 982b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 983b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// From linux-3.19.0/include/uapi/asm-generic/ioctls.h 984b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//---------------------------------------------------------------------- 985b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 986b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCGSERIAL 0x541E 987b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#define VKI_TIOCSSERIAL 0x541F 988b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 989b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif // __VKI_S390X_LINUX_H 990b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar 991b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/*--------------------------------------------------------------------*/ 992b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/*--- end ---*/ 993b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar/*--------------------------------------------------------------------*/ 994b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar