1663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 2663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/*--------------------------------------------------------------------*/ 3663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/*--- mips/Linux-specific kernel interface. vki-mips32-linux.h ---*/ 4663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/*--------------------------------------------------------------------*/ 5663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 6663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* 7663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng This file is part of Valgrind, a dynamic binary instrumentation 8663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng framework. 9663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2010-2013 RT-RK 11663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng mips-valgrind@rt-rk.com 12663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 13663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng This program is free software; you can redistribute it and/or 14663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng modify it under the terms of the GNU General Public License as 15663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng published by the Free Software Foundation; either version 2 of the 16663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng License, or (at your option) any later version. 17663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 18663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng This program is distributed in the hope that it will be useful, but 19663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng WITHOUT ANY WARRANTY; without even the implied warranty of 20663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng General Public License for more details. 22663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 23663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng You should have received a copy of the GNU General Public License 24663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng along with this program; if not, write to the Free Software 25663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 26663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 02111-1307, USA. 27663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 28663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng The GNU General Public License is contained in the file COPYING. 29663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng*/ 30663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 31663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifndef __VKI_MIPS32_LINUX_H 32663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define __VKI_MIPS32_LINUX_H 33663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 34663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#include <config.h> 35663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 36663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// mips endian 37663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#if defined (_MIPSEL) 38663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_LITTLE_ENDIAN 1 39663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#elif defined (_MIPSEB) 40663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_BIG_ENDIAN 1 41663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 43663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 44663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 45663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-generic/int-ll64.h 46663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 47663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 48663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __signed__ char __vki_s8; 49663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned char __vki_u8; 50663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 51663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __signed__ short __vki_s16; 52663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned short __vki_u16; 53663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 54663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __signed__ int __vki_s32; 55663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned int __vki_u32; 56663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 57663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __signed char vki_s8; 58663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned char vki_u8; 59663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 60663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __signed short vki_s16; 61663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned short vki_u16; 62663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 63663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __signed int vki_s32; 64663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned int vki_u32; 65663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 66663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __signed__ long long __vki_s64; 67663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned long long __vki_u64; 68663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 69663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 70663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 71663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/page.h 72663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 73663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 74663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* PAGE_SHIFT determines the page size */ 75663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PAGE_SHIFT MIPS_PAGE_SHIFT 76663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PAGE_SIZE (1UL << VKI_PAGE_SHIFT) 77663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PAGE_MASK (~(VKI_PAGE_SIZE-1)) 78663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAX_PAGE_SHIFT VKI_PAGE_SHIFT 79663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE 80663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 81663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 82436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/arch/mips/include/bits/shm.h 83663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 84663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 85436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SHMLBA 0x40000 86663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 87663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 88663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm/signal.h 89663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 90663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 91663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MINSIGSTKSZ 2048 92663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 93663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIG_BLOCK 1 /* for blocking signals */ 94663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIG_UNBLOCK 2 /* for unblocking signals */ 95663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIG_SETMASK 3 /* for setting the signal mask */ 96663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 97663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* Type of a signal handler. */ 98663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef void __vki_signalfn_t(int); 99663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __vki_signalfn_t __user *__vki_sighandler_t; 100663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 101663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef void __vki_restorefn_t(void); 102663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef __vki_restorefn_t __user *__vki_sigrestore_t; 103663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 104663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIG_DFL ((__vki_sighandler_t)0) /* default signal handling */ 105663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIG_IGN ((__vki_sighandler_t)1) /* ignore signal */ 106663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 107663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_NSIG 128 108663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_NSIG_BPW 32 109663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW) 110663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 111663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned long vki_old_sigset_t; /* at least 32 bits */ 112663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 113663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef struct { 114663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sig[_VKI_NSIG_WORDS]; 115663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng} vki_sigset_t; 116663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 117663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGHUP 1 /* Hangup (POSIX). */ 118663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGINT 2 /* Interrupt (ANSI). */ 119663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGQUIT 3 /* Quit (POSIX). */ 120663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGILL 4 /* Illegal instruction (ANSI). */ 121663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGTRAP 5 /* Trace trap (POSIX). */ 122663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGIOT 6 /* IOT trap (4.2 BSD). */ 123663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGABRT VKI_SIGIOT /* Abort (ANSI). */ 124663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGEMT 7 125663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGFPE 8 /* Floating-point exception (ANSI). */ 126663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGKILL 9 /* Kill, unblockable (POSIX). */ 127663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGBUS 10 /* BUS error (4.2 BSD). */ 128663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGSEGV 11 /* Segmentation violation (ANSI). */ 129663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGSYS 12 130663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGPIPE 13 /* Broken pipe (POSIX). */ 131663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGALRM 14 /* Alarm clock (POSIX). */ 132663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGTERM 15 /* Termination (ANSI). */ 133663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGUSR1 16 /* User-defined signal 1 (POSIX). */ 134663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGUSR2 17 /* User-defined signal 2 (POSIX). */ 135663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGCHLD 18 /* Child status has changed (POSIX). */ 136663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGCLD VKI_SIGCHLD /* Same as SIGCHLD (System V). */ 137663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGPWR 19 /* Power failure restart (System V). */ 138663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ 139663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGURG 21 /* Urgent condition on socket (4.2 BSD). */ 140663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGIO 22 /* I/O now possible (4.2 BSD). */ 141663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGPOLL VKI_SIGIO /* Pollable event occurred (System V). */ 142663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGSTOP 23 /* Stop, unblockable (POSIX). */ 143663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGTSTP 24 /* Keyboard stop (POSIX). */ 144663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGCONT 25 /* Continue (POSIX). */ 145663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGTTIN 26 /* Background read from tty (POSIX). */ 146663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGTTOU 27 /* Background write to tty (POSIX). */ 147663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */ 148663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */ 149663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */ 150663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */ 151663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 152663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* These should not be considered constants from userland. */ 153663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGRTMIN 32 154663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// [[This was (_NSIG-1) in 2.4.X... not sure if it matters.]] 155663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIGRTMAX _VKI_NSIG 156663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 157663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_ONSTACK 0x08000000 158663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_RESETHAND 0x80000000 159663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_RESTART 0x10000000 160663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_SIGINFO 0x00000008 161663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_NODEFER 0x40000000 162663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_NOCLDWAIT 0x00010000 163663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_NOCLDSTOP 0x00000001 164663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 165663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_NOMASK VKI_SA_NODEFER 166663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_ONESHOT VKI_SA_RESETHAND 167663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//#define VKI_SA_INTERRUPT 0x20000000 /* dummy -- ignored */ 168663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 169663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SA_RESTORER 0x04000000 170663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 171663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SS_ONSTACK 1 172663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SS_DISABLE 2 173663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 174663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_old_sigaction { 175663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng // [[Nb: a 'k' prefix is added to "sa_handler" because 176663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng // bits/sigaction.h (which gets dragged in somehow via signal.h) 177663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng // #defines it as something else. Since that is done for glibc's 178663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng // purposes, which we don't care about here, we use our own name.]] 179663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sa_flags; 180663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_sighandler_t ksa_handler; 181663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_old_sigset_t sa_mask; 182663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_sigrestore_t sa_restorer; 183663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 184663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 185663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_sigaction { 186663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sa_flags; 187663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_sighandler_t sa_handler; 188663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_sigset_t sa_mask; 189663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 190663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 191663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 192663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_sigaction_base { 193663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng // [[See comment about extra 'k' above]] 194663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sa_flags; 195663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_sighandler_t ksa_handler; 196663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 197663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_sigset_t sa_mask; /* mask last for extensibility */ 198663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_sigrestore_t sa_restorer; 199663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 200663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 201663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* On Linux we use the same type for passing sigactions to 202663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng and from the kernel. Hence: */ 203663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef struct vki_sigaction_base vki_sigaction_toK_t; 204663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef struct vki_sigaction_base vki_sigaction_fromK_t; 205663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 206663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef struct vki_sigaltstack { 207663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng void __user *ss_sp; 208663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_size_t ss_size; 209663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int ss_flags; 210663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 211663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng} vki_stack_t; 212663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 213663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 214663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 215663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From 2.6.35.5/include/asm-mips/sigcontext.h 216663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 217663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 218663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct _vki_fpreg { 219663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short significand[4]; 220663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short exponent; 221663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 222663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 223663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct _vki_fpxreg { 224663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short significand[4]; 225663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short exponent; 226663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short padding[3]; 227663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 228663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 229663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct _vki_xmmreg { 230663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long element[4]; 231663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 232663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 233663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct _vki_fpstate { 234663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* Regular FPU environment */ 235663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long cw; 236663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sw; 237663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long tag; 238663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long ipoff; 239663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long cssel; 240663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long dataoff; 241663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long datasel; 242663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct _vki_fpreg _st[8]; 243663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short status; 244663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short magic; /* 0xffff = regular FPU data only */ 245663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 246663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* FXSR FPU environment */ 247663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */ 248663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long mxcsr; 249663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long reserved; 250663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct _vki_fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */ 251663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct _vki_xmmreg _xmm[8]; 252663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long padding[56]; 253663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 254663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 255663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 256663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/sigcontext.h 257663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 258663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 259663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_sigcontext { 260663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sc_regmask; /* Unused */ 261663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sc_status; /* Unused */ 262663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long sc_pc; 263663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long sc_regs[32]; 264663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long sc_fpregs[32]; 265663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sc_acx; /* Was sc_ownedfp */ 266663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sc_fpc_csr; 267663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sc_fpc_eir; /* Unused */ 268663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sc_used_math; 269663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int sc_dsp; /* dsp status, was sc_ssflags */ 270663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long sc_mdhi; 271663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long sc_mdlo; 272663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sc_hi1; /* Was sc_cause */ 273663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sc_lo1; /* Was sc_badvaddr */ 274663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sc_hi2; /* Was sc_sigset[4] */ 275663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sc_lo2; 276663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sc_hi3; 277663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sc_lo3; 278663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 279663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 280663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 281663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/mman.h 282663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 283663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 284663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PROT_NONE 0x0 /* No page permissions */ 285663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PROT_READ 0x1 /* page can be read */ 286663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PROT_WRITE 0x2 /* page can be written */ 287663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PROT_EXEC 0x4 /* page can be executed */ 288663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */ 289663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */ 290663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 291663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_SHARED 0x001 /* Share changes */ 292663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_PRIVATE 0x002 /* Changes are private */ 293663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_FIXED 0x010 /* Interpret addr exactly */ 294663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 295663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_NORESERVE 0x0400 /* don't reserve swap pages */ 296663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 297663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* These are linux-specific */ 298663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_NORESERVE 0x0400 /* don't check for reservations */ 299663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_ANONYMOUS 0x0800 /* don't use a file */ 300663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_GROWSDOWN 0x1000 /* stack-like segment */ 301663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_DENYWRITE 0x2000 /* ETXTBSY */ 302663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_EXECUTABLE 0x4000 /* mark it as an executable */ 303663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_LOCKED 0x8000 /* pages are locked */ 304663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_POPULATE 0x10000 /* populate (prefault) pagetables */ 305663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MAP_NONBLOCK 0x20000 /* do not block on IO */ 306663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 307663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 308663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 309663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/fcntl.h 310663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 311663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 312436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_ACCMODE 03 313663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_RDONLY 00 314663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_WRONLY 01 315663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_RDWR 02 316663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 317663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_CREAT 0x0100 /* not fcntl */ 318663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_EXCL 0x0400 /* not fcntl */ 319663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 320663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_TRUNC 0x0200 /* not fcntl */ 321663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 322663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_APPEND 0x0008 323663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_NONBLOCK 0x0080 324663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_O_LARGEFILE 0x2000 325663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 326663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_AT_FDCWD -100 327663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 328663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_DUPFD 0 /* dup */ 329663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_GETFD 1 /* get close_on_exec */ 330663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETFD 2 /* set/clear close_on_exec */ 331663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_GETFL 3 /* get file->f_flags */ 332663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETFL 4 /* set file->f_flags */ 333663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 334663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_GETLK 14 335663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETLK 6 336663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETLKW 7 337663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 338663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETOWN 24 /* for sockets. */ 339663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_GETOWN 23 /* for sockets. */ 340663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETSIG 10 /* for sockets. */ 341663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_GETSIG 11 /* for sockets. */ 342663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 343663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETOWN_EX 15 344663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_GETOWN_EX 16 345663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 346663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_GETLK64 33 /* using 'struct flock64' */ 347663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETLK64 34 348663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_SETLKW64 35 349663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 350663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* for F_[GET|SET]FL */ 351663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */ 352663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 353663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_F_LINUX_SPECIFIC_BASE 1024 354663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 355663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_f_owner_ex { 356663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int type; 357663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_pid_t pid; 358663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 359663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 360663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 361663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/resource.h 362663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 363663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 364663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_RLIMIT_DATA 2 /* max data size */ 365663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_RLIMIT_STACK 3 /* max stack size */ 366663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_RLIMIT_CORE 4 /* max core file size */ 367663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_RLIMIT_NOFILE 5 /* max number of open files */ 368663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 369663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 370663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/socket.h 371663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 372663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 373663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SOL_SOCKET 0xffff 374436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 375663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SO_TYPE 0x1008 376663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 377436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SO_ATTACH_FILTER 26 378436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 379663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 380663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-i386/sockios.h 381663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 382663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 383663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIOCSPGRP 0x8902 384663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIOCGPGRP 0x8904 385663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ 386663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ 387663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 388663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 389663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/stat.h 390663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 391663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 392663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_stat { 393663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned st_dev; 394663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_pad1[3]; /* Reserved for network id */ 395663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_ino; 396663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int st_mode; 397663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_nlink; 398663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int st_uid; 399663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int st_gid; 400663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned st_rdev; 401663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_pad2[2]; 402663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_size; 403663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_pad3; 404663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* 405663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * Actually this should be timestruc_t st_atime, st_mtime and st_ctime 406663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * but we don't have it under Linux. 407663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng */ 408663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_atime; 409663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_atime_nsec; 410663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_mtime; 411663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_mtime_nsec; 412663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_ctime; 413663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_ctime_nsec; 414663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_blksize; 415663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_blocks; 416663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_pad4[14]; 417663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 418663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 419663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* 420663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * This matches struct stat64 in glibc2.1, hence the absolutely insane 421663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * amounts of padding around dev_t's. The memory layout is the same as of 422663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * struct stat of the 64-bit kernel. 423663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng */ 424663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 425663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_stat64 { 426663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_dev; 427663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_pad0[3]; /* Reserved for st_dev expansion */ 428663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 429663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long st_ino; 430663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 431663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int st_mode; 432663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_nlink; 433663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 434663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int st_uid; 435663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned int st_gid; 436663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 437663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_rdev; 438663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */ 439663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 440663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long long st_size; 441663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 442663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* 443663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * Actually this should be timestruc_t st_atime, st_mtime and st_ctime 444663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * but we don't have it under Linux. 445663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng */ 446663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_atime; 447663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_atime_nsec; /* Reserved for st_atime expansion */ 448663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 449663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_mtime; 450663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_mtime_nsec; /* Reserved for st_mtime expansion */ 451663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 452663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long st_ctime; 453663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_ctime_nsec; /* Reserved for st_ctime expansion */ 454663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 455663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_blksize; 456663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long st_pad2; 457663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 458663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long long st_blocks; 459663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 460663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 461663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 462663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/statfs.h 463663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 464663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 465663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_statfs { 466663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_type; 467663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_bsize; 468663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_frsize; /* Fragment size - unsupported */ 469663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_blocks; 470663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_bfree; 471663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_files; 472663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_ffree; 473663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_bavail; 474663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 475663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* Linux specials */ 476663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_fsid_t f_fsid; 477663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_namelen; 478663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long f_spare[6]; 479663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 480663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 481663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 482663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/termios.h 483663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 484663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 485663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_winsize { 486663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short ws_row; 487663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short ws_col; 488663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short ws_xpixel; 489663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short ws_ypixel; 490663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 491663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 492663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define NCC 8 493663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define NCCS 23 494663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_termio { 495663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short c_iflag; /* input mode flags */ 496663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short c_oflag; /* output mode flags */ 497663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short c_cflag; /* control mode flags */ 498663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short c_lflag; /* local mode flags */ 499663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng char c_line; /* line discipline */ 500663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned char c_cc[NCCS]; /* control characters */ 501663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 502663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 503663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 504663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 505663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/termbits.h 506663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 507663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 508663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned char vki_cc_t; 509663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned long vki_speed_t; 510663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned long vki_tcflag_t; 511663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 512663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_termios { 513663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_tcflag_t c_iflag; /* input mode flags */ 514663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_tcflag_t c_oflag; /* output mode flags */ 515663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_tcflag_t c_cflag; /* control mode flags */ 516663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_tcflag_t c_lflag; /* local mode flags */ 517663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_cc_t c_line; /* line discipline */ 518663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_cc_t c_cc[NCCS]; /* control characters */ 519663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 520663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 521663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 522663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/ioctl.h 523663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 524663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 525663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_NRBITS 8 526663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_TYPEBITS 8 5272ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_SIZEBITS 13 5282ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_DIRBITS 3 529663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 530663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_NRMASK ((1 << _VKI_IOC_NRBITS)-1) 531663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_TYPEMASK ((1 << _VKI_IOC_TYPEBITS)-1) 532663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_SIZEMASK ((1 << _VKI_IOC_SIZEBITS)-1) 533663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_DIRMASK ((1 << _VKI_IOC_DIRBITS)-1) 534663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 535663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_NRSHIFT 0 536663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_TYPESHIFT (_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS) 537663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_SIZESHIFT (_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS) 538663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_DIRSHIFT (_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS) 539663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 540663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_NONE 1U 5412ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_READ 2U 5422ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_WRITE 4U 543663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 544663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC(dir,type,nr,size) \ 545663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng (((dir) << _VKI_IOC_DIRSHIFT) | \ 546663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng ((type) << _VKI_IOC_TYPESHIFT) | \ 547663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng ((nr) << _VKI_IOC_NRSHIFT) | \ 548663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng ((size) << _VKI_IOC_SIZESHIFT)) 549663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 550663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* provoke compile error for invalid uses of size argument */ 551663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengextern unsigned int __VKI_invalid_size_argument_for_IOC; 552663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* used to create numbers */ 553663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0) 554663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOR(type,nr,size) _VKI_IOC(_VKI_IOC_READ,(type),(nr),(_VKI_IOC_TYPECHECK(size))) 555663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOW(type,nr,size) _VKI_IOC(_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size))) 556663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOWR(type,nr,size) _VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size))) 557663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 558663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* used to decode ioctl numbers.. */ 559663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_DIR(nr) (((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK) 560663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_TYPE(nr) (((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK) 561663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_NR(nr) (((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK) 562663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define _VKI_IOC_SIZE(nr) (((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK) 563663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 564663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 565663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/ioctls.h 566663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 567663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 568663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCGETA 0x5401 569663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSETA 0x5402 /* Clashes with SNDCTL_TMR_START sound ioctl */ 570663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSETAW 0x5403 571663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSETAF 0x5404 572663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 573663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSBRK 0x5405 574663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCXONC 0x5406 575663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCFLSH 0x5407 576663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 577663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCGETS 0x540d 578663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSETS 0x540e 579663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSETSW 0x540f 580663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSETSF 0x5410 581663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 582663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCEXCL 0x740d /* set exclusive use of tty */ 583663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCNXCL 0x740e /* reset exclusive use of tty */ 584663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCOUTQ 0x7472 /* output queue size */ 585663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSTI 0x5472 /* simulate terminal input */ 586663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCMGET 0x741d /* get all modem bits */ 587663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCMBIS 0x741b /* bis modem bits */ 588663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCMBIC 0x741c /* bic modem bits */ 589663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCMSET 0x741a /* set all modem bits */ 590663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT 0x5470 /* pty: set/clear packet mode */ 591663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT_DATA 0x00 /* data packet */ 592663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT_FLUSHREAD 0x01 /* flush packet */ 593663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ 594663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT_STOP 0x04 /* stop output */ 595663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT_START 0x08 /* start output */ 596663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ 597663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ 598663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* #define TIOCPKT_IOCTL 0x40 state change of pty driver */ 599663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSWINSZ _VKI_IOW('t', 103, struct vki_winsize) /* set window size */ 600663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGWINSZ _VKI_IOR('t', 104, struct vki_winsize) /* get window size */ 601663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCNOTTY 0x5471 /* void tty association */ 602663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSETD 0x7401 603663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGETD 0x7400 604663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 605663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_FIOCLEX 0x6601 606663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_FIONCLEX 0x6602 607663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_FIOASYNC 0x667d 608663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_FIONBIO 0x667e 609663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_FIOQSIZE 0x667f 610663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 611663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGLTC 0x7474 /* get special local chars */ 612663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSLTC 0x7475 /* set special local chars */ 613663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSPGRP _VKI_IOW('t', 118, int) /* set pgrp of tty */ 614663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGPGRP _VKI_IOR('t', 119, int) /* get pgrp of tty */ 615663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCCONS _VKI_IOW('t', 120, int) /* become virtual console */ 616663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 617663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_FIONREAD 0x467f 618663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCINQ FIONREAD 619663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 620663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGETP 0x7408 621663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSETP 0x7409 622663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSETN 0x740a /* TIOCSETP wo flush */ 623663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 624663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSBRK 0x5427 /* BSD compatibility */ 625663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCCBRK 0x5428 /* BSD compatibility */ 626663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGSID 0x7416 /* Return the session ID of FD */ 627663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ 628663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */ 629663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 630663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* I hope the range from 0x5480 on is free ... */ 631663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSCTTY 0x5480 /* become controlling tty */ 632663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGSOFTCAR 0x5481 633663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSSOFTCAR 0x5482 634663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCLINUX 0x5483 635663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGSERIAL 0x5484 636663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSSERIAL 0x5485 637663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TCSBRKP 0x5486 /* Needed for POSIX tcsendbreak() */ 638663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSERCONFIG 0x5488 639663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSERGWILD 0x5489 640663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSERSWILD 0x548a 641663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGLCKTRMIOS 0x548b 642663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSLCKTRMIOS 0x548c 643663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSERGSTRUCT 0x548d /* For debugging only */ 644663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSERGETLSR 0x548e /* Get line status register */ 645663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSERGETMULTI 0x548f /* Get multiport config */ 646663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSERSETMULTI 0x5490 /* Set multiport config */ 647663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCMIWAIT 0x5491 /* wait for a change on serial input line(s) */ 648663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGICOUNT 0x5492 /* read serial port inline interrupt counts */ 649663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCGHAYESESP 0x5493 /* Get Hayes ESP configuration */ 650663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_TIOCSHAYESESP 0x5494 /* Set Hayes ESP configuration */ 651663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 652663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 653663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From asm-generic/poll.h 654663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 655663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 656663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/* These are specified by iBCS2 */ 657663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_POLLIN 0x0001 658663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 659663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_pollfd { 660663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int fd; 661663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng short events; 662663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng short revents; 663663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 664663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 665663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/ucontext.h 666663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 667663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 668663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_ucontext { 669663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long uc_flags; 670663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct vki_ucontext *uc_link; 671663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_stack_t uc_stack; 672663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct vki_sigcontext uc_mcontext; 673663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_sigset_t uc_sigmask; /* mask last for extensibility */ 674663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 675663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 676663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// CAB: TODO 677663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef void vki_modify_ldt_t; 678663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 679663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 680663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/ipcbuf.h 681663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 682663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 683663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_ipc64_perm 684663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng{ 685663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_key_t key; 686663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_uid_t uid; 687663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_gid_t gid; 688663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_uid_t cuid; 689663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_gid_t cgid; 690663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_mode_t mode; 691663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short seq; 692663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned short __pad1; 693663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused1; 694663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused2; 695663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 696663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 697663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 698663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/sembuf.h 699663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 700663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 701663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_semid64_ds { 702663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct vki_ipc64_perm sem_perm; /* permissions .. see ipc.h */ 703663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t sem_otime; /* last semop time */ 704663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t sem_ctime; /* last change time */ 705663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long sem_nsems; /* no. of semaphores in array */ 706663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused1; 707663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused2; 708663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 709663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 710663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 711663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 712663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/msgbuf.h 713663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 714663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 715663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_msqid64_ds { 716663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct vki_ipc64_perm msg_perm; 717663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t msg_stime; /* last msgsnd time */ 718663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused1; 719663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t msg_rtime; /* last msgrcv time */ 720663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused2; 721663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t msg_ctime; /* last change time */ 722663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused3; 723663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long msg_cbytes; /* current number of bytes on queue */ 724663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long msg_qnum; /* number of messages in queue */ 725663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long msg_qbytes; /* max number of bytes on queue */ 726663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_pid_t msg_lspid; /* pid of last msgsnd */ 727663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_pid_t msg_lrpid; /* last receive pid */ 728663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused4; 729663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused5; 730663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 731663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 732663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 733663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/ipc.h 734663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 735663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 736663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_ipc_kludge { 737663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct vki_msgbuf __user *msgp; 738663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng long msgtyp; 739663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 740663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 741663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SEMOP 1 742663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SEMGET 2 743663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SEMCTL 3 744663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SEMTIMEDOP 4 745663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MSGSND 11 746663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MSGRCV 12 747663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MSGGET 13 748663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_MSGCTL 14 749663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SHMAT 21 750663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SHMDT 22 751663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SHMGET 23 752663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SHMCTL 24 753663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 754663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 755663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/shmbuf.h 756663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 757663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 758663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_shmid64_ds { 759663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct vki_ipc64_perm shm_perm; /* operation perms */ 760663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_size_t shm_segsz; /* size of segment (bytes) */ 761663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t shm_atime; /* last attach time */ 762663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t shm_dtime; /* last detach time */ 763663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_time_t shm_ctime; /* last change time */ 764663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_pid_t shm_cpid; /* pid of creator */ 765663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __vki_kernel_pid_t shm_lpid; /* pid of last operator */ 766663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long shm_nattch; /* no. of current attaches */ 767663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused1; 768663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused2; 769663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 770663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 771663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_shminfo64 { 772663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long shmmax; 773663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long shmmin; 774663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long shmmni; 775663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long shmseg; 776663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long shmall; 777663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused1; 778663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused2; 779663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused3; 780663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long __unused4; 781663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}; 782663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 783663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/ptrace.h 784663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 785663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 786663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengstruct vki_pt_regs { 787663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifdef CONFIG_32BIT 788663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* Pad bytes for argument save space on the stack. */ 789663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long pad0[6]; 790663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 791663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* Saved main processor registers. */ 792663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long regs[32]; 793663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 794663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* Saved special registers. */ 795663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long cp0_status; 796663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long hi; 797663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long lo; 798663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifdef CONFIG_CPU_HAS_SMARTMIPS 799663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long acx; 800663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 801663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long cp0_badvaddr; 802663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long cp0_cause; 803663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long cp0_epc; 804663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifdef CONFIG_MIPS_MT_SMTC 805663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long cp0_tcstatus; 806663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif /* CONFIG_MIPS_MT_SMTC */ 807663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifdef CONFIG_CPU_CAVIUM_OCTEON 808663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long mpl[3]; /* MTM{0,1,2} */ 809663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng unsigned long long mtp[3]; /* MTP{0,1,2} */ 810663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 811663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng} __attribute__ ((aligned (8))); 812663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 813663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 814663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define vki_user_regs_struct vki_pt_regs 815663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 816663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_lo lo 817663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_hi hi 818663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//#define MIPS_pc regs[32] 819663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r31 regs[31] 820663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r30 regs[30] 821663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r29 regs[29] 822663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r28 regs[28] 823663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r27 regs[27] 824663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r26 regs[26] 825663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r25 regs[25] 826663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r24 regs[24] 827663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r23 regs[23] 828663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r22 regs[22] 829663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r21 regs[21] 830663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r20 regs[20] 831663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r19 regs[19] 832663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r18 regs[18] 833663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r17 regs[17] 834663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r16 regs[16] 835663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r15 regs[15] 836663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r14 regs[14] 837663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r13 regs[13] 838663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r12 regs[12] 839663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r11 regs[11] 840663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r10 regs[10] 841663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r9 regs[9] 842663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r8 regs[8] 843663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r7 regs[7] 844663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r6 regs[6] 845663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r5 regs[5] 846663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r4 regs[4] 847663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r3 regs[3] 848663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r2 regs[2] 849663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r1 regs[1] 850663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define MIPS_r0 regs[0] 851663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 852663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PTRACE_GETREGS 12 853663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PTRACE_SETREGS 13 854663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PTRACE_GETFPREGS 14 855663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_PTRACE_SETFPREGS 15 856663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 857663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-mips/elf.h 858663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 859663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef unsigned long vki_elf_greg_t; 860663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 861663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_ELF_NGREG (sizeof (struct vki_user_regs_struct) / sizeof(vki_elf_greg_t)) 862663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_ELF_NFPREG 33 /* includes fpscr */ 863663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 864663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG]; 865663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 866663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef double vki_elf_fpreg_t; 867663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef vki_elf_fpreg_t vki_elf_fpregset_t[VKI_ELF_NFPREG]; 868663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 869663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef struct vki_user_fxsr_struct vki_elf_fpxregset_t; 870663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 871663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_AT_SYSINFO 32 872663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 873663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm-generic/siginfo.h 874663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 875663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define HAVE_ARCH_SIGINFO_T 876663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 877663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef union vki_sigval { 878663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int sival_int; 879663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng void __user *sival_ptr; 880663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng} vki_sigval_t; 881663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 882663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifndef __VKI_ARCH_SI_PREAMBLE_SIZE 883663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define __VKI_ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int)) 884663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 885663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 886663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SI_MAX_SIZE 128 887663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 888663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifndef VKI_SI_PAD_SIZE 889663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_SI_PAD_SIZE ((VKI_SI_MAX_SIZE - __VKI_ARCH_SI_PREAMBLE_SIZE) / sizeof(int)) 890663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 891663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 892663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifndef __VKI_ARCH_SI_UID_T 893663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define __VKI_ARCH_SI_UID_T vki_uid_t 894663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 895663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 896663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifndef __VKI_ARCH_SI_BAND_T 897663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define __VKI_ARCH_SI_BAND_T long 898663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 899663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 900663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengtypedef struct vki_siginfo { 901663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int si_signo; 902663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int si_code; 903663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int si_errno; 904663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int __pad0[VKI_SI_MAX_SIZE / sizeof(int) - VKI_SI_PAD_SIZE - 3]; 905663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 906663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng union { 907663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int _pad[VKI_SI_PAD_SIZE]; 908663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 909663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* kill() */ 910663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct { 911663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_pid_t _pid; /* sender's pid */ 912663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __VKI_ARCH_SI_UID_T _uid; /* sender's uid */ 913663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _kill; 914663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 915663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* POSIX.1b timers */ 916663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct { 917663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_timer_t _tid; /* timer id */ 918663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int _overrun; /* overrun count */ 919663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng char _pad[sizeof( __VKI_ARCH_SI_UID_T) - sizeof(int)]; 920663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_sigval_t _sigval; /* same as below */ 921663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int _sys_private; /* not to be passed to user */ 922663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _timer; 923663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 924663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* POSIX.1b signals */ 925663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct { 926663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_pid_t _pid; /* sender's pid */ 927663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __VKI_ARCH_SI_UID_T _uid; /* sender's uid */ 928663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_sigval_t _sigval; 929663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _rt; 930663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 931663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* SIGCHLD */ 932663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct { 933663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_pid_t _pid; /* which child */ 934663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __VKI_ARCH_SI_UID_T _uid; /* sender's uid */ 935663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int _status; /* exit code */ 936663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_clock_t _utime; 937663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_clock_t _stime; 938663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _sigchld; 939663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 940663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* IRIX SIGCHLD */ 941663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct { 942663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_pid_t _pid; /* which child */ 943663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_clock_t _utime; 944663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int _status; /* exit code */ 945663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng vki_clock_t _stime; 946663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _irix_sigchld; 947663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 948663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ 949663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct { 950663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng void __user *_addr; /* faulting insn/memory ref. */ 951663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#ifdef __ARCH_SI_TRAPNO 952663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int _trapno; /* TRAP # which caused the signal */ 953663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#endif 954663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _sigfault; 955663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 956663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng /* SIGPOLL, SIGXFSZ (To do ...) */ 957663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng struct { 958663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng __VKI_ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */ 959663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng int _fd; 960663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _sigpoll; 961663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng } _sifields; 962663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng} vki_siginfo_t; 963663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 964663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 965663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng// From linux-2.6.35.5/include/asm/break.h 966663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng//---------------------------------------------------------------------- 967663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_BRK_OVERFLOW 6 /* Overflow check */ 968663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#define VKI_BRK_DIVZERO 7 /* Divide by zero check */ 969663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 970436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 971436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-3.6.35.5/arch/mips/include/socket.h 972436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 973436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovenum vki_sock_type { 974436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_SOCK_STREAM = 2, 975436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // [[others omitted]] 976436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 977436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define ARCH_HAS_SOCKET_TYPES 1 978436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 979436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 980436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-3.13.0/include/asm/errno.h 981436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 982436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 983436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_ENOSYS 89 /* Function not implemented */ 984436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_EOVERFLOW 79 /* Value too large for defined data type */ 985663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 986436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif // __VKI_MIPS32_LINUX_H 987663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 988663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/*--------------------------------------------------------------------*/ 989663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/*--- end vki-mips32-linux.h ---*/ 990663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/*--------------------------------------------------------------------*/ 991