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