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