1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/ 3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--- mips/Linux-specific kernel interface. vki-mips64-linux.h ---*/ 4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/ 5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* 7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov This file is part of Valgrind, a dynamic binary instrumentation 8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov framework. 9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2010-2013 RT-RK 11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov mips-valgrind@rt-rk.com 12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov This program is free software; you can redistribute it and/or 14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov modify it under the terms of the GNU General Public License as 15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov published by the Free Software Foundation; either version 2 of the 16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov License, or (at your option) any later version. 17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov This program is distributed in the hope that it will be useful, but 19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov WITHOUT ANY WARRANTY; without even the implied warranty of 20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov General Public License for more details. 22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov You should have received a copy of the GNU General Public License 24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov along with this program; if not, write to the Free Software 25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 02111-1307, USA. 27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov*/ 28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __VKI_MIPS64_LINUX_H 30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __VKI_MIPS64_LINUX_H 31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <config.h> 33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// mips endian 35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if defined (_MIPSEL) 36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_LITTLE_ENDIAN 1 37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#elif defined (_MIPSEB) 38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_BIG_ENDIAN 1 39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/cachectl.h 43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_ICACHE (1<<0) /* flush instruction cache */ 46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_DCACHE (1<<1) /* writeback and flush data cache */ 47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_BCACHE (VKI_ICACHE | VKI_DCACHE) /* flush both caches */ 48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/mips-mips/types.h 51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed__ char __vki_s8; 54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned char __vki_u8; 55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed__ short __vki_s16; 57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned short __vki_u16; 58436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 59436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed__ int __vki_s32; 60436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned int __vki_u32; 61436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 62436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed char vki_s8; 63436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned char vki_u8; 64436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 65436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed short vki_s16; 66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned short vki_u16; 67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed int vki_s32; 69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned int vki_u32; 70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (_MIPS_SZLONG == 64) 72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed__ long __vki_s64; 73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned long __vki_u64; 74436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#else 75436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __signed__ long long __vki_s64; 76436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned long long __vki_u64; 77436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 78436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 79436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 80436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/page.h 81436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 82436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 83436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* PAGE_SHIFT determines the page size */ 84436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PAGE_SHIFT MIPS_PAGE_SHIFT 85436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PAGE_SIZE (1UL << VKI_PAGE_SHIFT) 86436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PAGE_MASK (~(VKI_PAGE_SIZE-1)) 87436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAX_PAGE_SHIFT VKI_PAGE_SHIFT 88436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE 89436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 90436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 91436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/arch/mips/include/bits/shm.h 92436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 93436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 94436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SHMLBA 0x40000 95436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 96436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 97436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/signal.h 98436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 99436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 100436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MINSIGSTKSZ 2048 101436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 102436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIG_BLOCK 1 /* for blocking signals */ 103436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIG_UNBLOCK 2 /* for unblocking signals */ 104436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIG_SETMASK 3 /* for setting the signal mask */ 105436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 106436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Type of a signal handler. */ 107436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef void __vki_signalfn_t(int); 108436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __vki_signalfn_t __user *__vki_sighandler_t; 109436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 110436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef void __vki_restorefn_t(void); 111436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef __vki_restorefn_t __user *__vki_sigrestore_t; 112436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 113436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIG_DFL ((__vki_sighandler_t)0) /* default signal handling */ 114436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIG_IGN ((__vki_sighandler_t)1) /* ignore signal */ 115436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIG_ERR ((__vki_sighandler_t)-1) /* error return from signal */ 116436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 117436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_NSIG 128 118436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_NSIG_BPW 64 119436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW) 120436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 121436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned long vki_old_sigset_t; /* at least 32 bits */ 122436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 123436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct { 124436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long sig[_VKI_NSIG_WORDS]; 125436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} vki_sigset_t; 126436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 127436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGHUP 1 /* Hangup (POSIX). */ 128436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGINT 2 /* Interrupt (ANSI). */ 129436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGQUIT 3 /* Quit (POSIX). */ 130436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGILL 4 /* Illegal instruction (ANSI). */ 131436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGTRAP 5 /* Trace trap (POSIX). */ 132436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGIOT 6 /* IOT trap (4.2 BSD). */ 133436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGABRT VKI_SIGIOT /* Abort (ANSI). */ 134436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGEMT 7 135436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGFPE 8 /* Floating-point exception (ANSI). */ 136436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGKILL 9 /* Kill, unblockable (POSIX). */ 137436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGBUS 10 /* BUS error (4.2 BSD). */ 138436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGSEGV 11 /* Segmentation violation (ANSI). */ 139436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGSYS 12 140436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGPIPE 13 /* Broken pipe (POSIX). */ 141436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGALRM 14 /* Alarm clock (POSIX). */ 142436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGTERM 15 /* Termination (ANSI). */ 143436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGUSR1 16 /* User-defined signal 1 (POSIX). */ 144436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGUSR2 17 /* User-defined signal 2 (POSIX). */ 145436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGCHLD 18 /* Child status has changed (POSIX). */ 146436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGCLD VKI_SIGCHLD /* Same as SIGCHLD (System V). */ 147436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGPWR 19 /* Power failure restart (System V). */ 148436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ 149436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGURG 21 /* Urgent condition on socket. */ 150436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGIO 22 /* I/O now possible (4.2 BSD). */ 151436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGPOLL VKI_SIGIO /* Pollable event occurred (System V).*/ 152436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGSTOP 23 /* Stop, unblockable (POSIX). */ 153436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGTSTP 24 /* Keyboard stop (POSIX). */ 154436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGCONT 25 /* Continue (POSIX). */ 155436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGTTIN 26 /* Background read from tty (POSIX). */ 156436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGTTOU 27 /* Background write to tty (POSIX). */ 157436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */ 158436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */ 159436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */ 160436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGXFSZ 31 /* File size limit exceeded (4.2 BSD).*/ 161436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 162436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* These should not be considered constants from userland. */ 163436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGRTMIN 32 164436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// [[This was (_NSIG-1) in 2.4.X... not sure if it matters.]] 165436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIGRTMAX (_VKI_NSIG - 1) 166436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 167436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_ONSTACK 0x08000000u 168436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_RESETHAND 0x80000000u 169436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_RESTART 0x10000000u 170436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_SIGINFO 0x00000008u 171436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_NODEFER 0x40000000u 172436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_NOCLDWAIT 0x00010000u 173436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_NOCLDSTOP 0x00000001u 174436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 175436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_NOMASK VKI_SA_NODEFER 176436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_ONESHOT VKI_SA_RESETHAND 177436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//#define VKI_SA_INTERRUPT 0x20000000 /* dummy -- ignored */ 178436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 179436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SA_RESTORER 0x04000000 180436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 181436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SS_ONSTACK 1 182436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SS_DISABLE 2 183436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 184436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_old_sigaction { 185436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // [[Nb: a 'k' prefix is added to "sa_handler" because 186436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // bits/sigaction.h (which gets dragged in somehow via signal.h) 187436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // #defines it as something else. Since that is done for glibc's 188436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // purposes, which we don't care about here, we use our own name.]] 189436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long sa_flags; 190436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_sighandler_t ksa_handler; 191436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_old_sigset_t sa_mask; 192436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_sigrestore_t sa_restorer; 193436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 194436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 195436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_sigaction { 196436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int sa_flags; 197436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_sighandler_t sa_handler; 198436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_sigset_t sa_mask; 199436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 200436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 201436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 202436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_sigaction_base { 203436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // [[See comment about extra 'k' above]] 204436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int sa_flags; 205436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_sighandler_t ksa_handler; 206436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_sigset_t sa_mask; // mask last for extensibility 207436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_sigrestore_t sa_restorer; 208436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 209436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 210436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* On Linux we use the same type for passing sigactions to 211436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov and from the kernel. Hence: */ 212436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_sigaction_base vki_sigaction_toK_t; 213436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_sigaction_base vki_sigaction_fromK_t; 214436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 215436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_sigaltstack { 216436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov void __user *ss_sp; 217436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_size_t ss_size; 218436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int ss_flags; 219436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} vki_stack_t; 220436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 221436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 222436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/sigcontext.h 223436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 224436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 225436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct _vki_fpreg { 226436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short significand[4]; 227436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short exponent; 228436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 229436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 230436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct _vki_fpxreg { 231436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short significand[4]; 232436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short exponent; 233436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short padding[3]; 234436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 235436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 236436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct _vki_xmmreg { 237436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long element[4]; 238436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 239436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 240436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct _vki_fpstate { 241436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Regular FPU environment */ 242436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long cw; 243436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long sw; 244436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long tag; 245436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long ipoff; 246436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long cssel; 247436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long dataoff; 248436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long datasel; 249436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct _vki_fpreg _st[8]; 250436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short status; 251436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short magic; /* 0xffff = regular FPU data only */ 252436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 253436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* FXSR FPU environment */ 254436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */ 255436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long mxcsr; 256436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long reserved; 257436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct _vki_fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */ 258436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct _vki_xmmreg _xmm[8]; 259436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long padding[56]; 260436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 261436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 262436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 263436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/sigcontext.h 264436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 265436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_sigcontext { 266436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_regs[32]; 267436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_fpregs[32]; 268436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_mdhi; 269436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_hi1; 270436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_hi2; 271436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_hi3; 272436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_mdlo; 273436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_lo1; 274436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_lo2; 275436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_lo3; 276436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_pc; 277436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_fpc_csr; 278436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_used_math; 279436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_dsp; 280436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u64 sc_reserved; 281436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 282436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 283436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 284436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/mman.h 285436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 286436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 287436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PROT_NONE 0x0 /* No page permissions */ 288436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PROT_READ 0x1 /* page can be read */ 289436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PROT_WRITE 0x2 /* page can be written */ 290436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PROT_EXEC 0x4 /* page can be executed */ 291436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start 292436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov of growsdown vma */ 293436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end 294436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov of growsup vma */ 295436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 296436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_SHARED 0x001 /* Share changes */ 297436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_PRIVATE 0x002 /* Changes are private */ 298436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//#define VKI_MAP_TYPE 0x0f /* Mask for type of mapping */ 299436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_FIXED 0x010 /* Interpret addr exactly */ 300436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 301436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_NORESERVE 0x0400 /* don't reserve swap pages */ 302436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 303436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* These are linux-specific */ 304436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_NORESERVE 0x0400 /* don't check for reservations */ 305436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_ANONYMOUS 0x0800 /* don't use a file */ 306436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_GROWSDOWN 0x1000 /* stack-like segment */ 307436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_DENYWRITE 0x2000 /* ETXTBSY */ 308436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_EXECUTABLE 0x4000 /* mark it as an executable */ 309436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_LOCKED 0x8000 /* pages are locked */ 310436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_POPULATE 0x10000 /* populate (prefault) pagetables */ 311436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MAP_NONBLOCK 0x20000 /* do not block on IO */ 312436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 313436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 314436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/fcntl.h 315436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 316436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 317436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_RDONLY 00 318436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_WRONLY 01 319436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_RDWR 02 320436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_ACCMODE 03 321436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 322436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_CREAT 0x0100 /* not fcntl */ 323436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_EXCL 0x0400 /* not fcntl */ 324436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 325436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_TRUNC 0x0200 /* not fcntl */ 326436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 327436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_APPEND 0x0008 328436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_NONBLOCK 0x0080 329436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_O_LARGEFILE 0x2000 330436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 331436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_AT_FDCWD -100 332436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 333436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_DUPFD 0 /* dup */ 334436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_GETFD 1 /* get close_on_exec */ 335436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETFD 2 /* set/clear close_on_exec */ 336436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_GETFL 3 /* get file->f_flags */ 337436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETFL 4 /* set file->f_flags */ 338436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 339436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_GETLK 14 340436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETLK 6 341436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETLKW 7 342436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 343436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETOWN 24 /* for sockets. */ 344436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_GETOWN 23 /* for sockets. */ 345436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETSIG 10 /* for sockets. */ 346436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_GETSIG 11 /* for sockets. */ 347436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 348436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETOWN_EX 15 349436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_GETOWN_EX 16 350436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 351436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_GETLK64 33 /* using 'struct flock64' */ 352436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETLK64 34 353436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_SETLKW64 35 354436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 355436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* for F_[GET|SET]FL */ 356436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */ 357436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 358436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_F_LINUX_SPECIFIC_BASE 1024 359436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 360436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_f_owner_ex { 361436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int type; 362436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_pid_t pid; 363436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 364436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 365436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 366436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/resource.h 367436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 368436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 369436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_RLIMIT_DATA 2 /* max data size */ 370436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_RLIMIT_STACK 3 /* max stack size */ 371436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_RLIMIT_CORE 4 /* max core file size */ 372436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_RLIMIT_NOFILE 5 /* max number of open files */ 373436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 374436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 375436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/socket.h 376436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 377436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 378436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SOL_SOCKET 0xffff 379436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 380436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SO_TYPE 0x1008 381436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 382436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SO_ATTACH_FILTER 26 383436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 384436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 385436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-i386/sockios.h 386436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 387436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 388436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIOCSPGRP 0x8902 389436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIOCGPGRP 0x8904 390436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ 391436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ 392436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 393436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 394436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/stat.h 395436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 396436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 397436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_stat { 398436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_dev; 399436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_pad0[3]; /* Reserved for st_dev expansion */ 400436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 401436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_ino; 402436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 403436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int st_mode; 404436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_nlink; 405436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 406436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_uid; 407436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_gid; 408436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 409436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_rdev; 410436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_pad1[3]; /* Reserved for st_rdev expansion */ 411436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 412436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov long st_size; 413436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 414436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* 415436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * Actually this should be timestruc_t st_atime, st_mtime and st_ctime 416436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * but we don't have it under Linux. 417436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov */ 418436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_atime; 419436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_atime_nsec; /* Reserved for st_atime expansion */ 420436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 421436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_mtime; 422436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_mtime_nsec; /* Reserved for st_mtime expansion */ 423436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 424436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_ctime; 425436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_ctime_nsec; /* Reserved for st_ctime expansion */ 426436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 427436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_blksize; 428436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_pad2; 429436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 430436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov long long st_blocks; 431436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 432436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 433436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_stat64 { 434436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_dev; 435436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_pad0[3]; /* Reserved for st_dev expansion */ 436436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 437436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long long st_ino; 438436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 439436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int st_mode; 440436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_nlink; 441436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 442436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_uid; 443436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned int st_gid; 444436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 445436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_rdev; 446436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */ 447436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 448436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov long long st_size; 449436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 450436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* 451436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * Actually this should be timestruc_t st_atime, st_mtime and st_ctime 452436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * but we don't have it under Linux. 453436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov */ 454436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_atime; 455436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_atime_nsec; /* Reserved for st_atime expansion */ 456436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 457436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_mtime; 458436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_mtime_nsec; /* Reserved for st_mtime expansion */ 459436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 460436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_ctime; 461436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_ctime_nsec; /* Reserved for st_ctime expansion */ 462436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 463436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_blksize; 464436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long st_pad2; 465436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 466436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov long long st_blocks; 467436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 468436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 469436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 470436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/statfs.h 471436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 472436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 473436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_statfs { 474436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_type; 475436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define f_fstyp f_type 476436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_bsize; 477436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_frsize; 478436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_blocks; 479436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_bfree; 480436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_files; 481436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_ffree; 482436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_bavail; 483436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_fsid_t f_fsid; 484436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_namelen; 485436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_u32 f_spare[6]; 486436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 487436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 488436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 489436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/termios.h 490436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 491436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 492436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_winsize { 493436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short ws_row; 494436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short ws_col; 495436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short ws_xpixel; 496436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short ws_ypixel; 497436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 498436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 499436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define NCC 8 500436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define NCCS 23 501436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_termio { 502436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short c_iflag; /* input mode flags */ 503436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short c_oflag; /* output mode flags */ 504436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short c_cflag; /* control mode flags */ 505436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short c_lflag; /* local mode flags */ 506436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov char c_line; /* line discipline */ 507436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned char c_cc[NCCS]; /* control characters */ 508436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 509436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 510436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 511436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/termbits.h 512436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 513436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 514436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned char vki_cc_t; 515436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned long vki_speed_t; 516436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned long vki_tcflag_t; 517436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 518436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_termios { 519436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_tcflag_t c_iflag; /* input mode flags */ 520436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_tcflag_t c_oflag; /* output mode flags */ 521436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_tcflag_t c_cflag; /* control mode flags */ 522436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_tcflag_t c_lflag; /* local mode flags */ 523436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_cc_t c_line; /* line discipline */ 524436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_cc_t c_cc[NCCS]; /* control characters */ 525436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 526436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 527436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 528436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/ioctl.h 529436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 530436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 531436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_NRBITS 8 532436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_TYPEBITS 8 5332ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_SIZEBITS 13 5342ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_DIRBITS 3 535436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 536436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_NRMASK ((1 << _VKI_IOC_NRBITS)-1) 537436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_TYPEMASK ((1 << _VKI_IOC_TYPEBITS)-1) 538436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_SIZEMASK ((1 << _VKI_IOC_SIZEBITS)-1) 539436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_DIRMASK ((1 << _VKI_IOC_DIRBITS)-1) 540436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 541436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_NRSHIFT 0 542436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_TYPESHIFT (_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS) 543436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_SIZESHIFT (_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS) 544436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_DIRSHIFT (_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS) 545436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 546436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_NONE 1U 5472ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_READ 2U 5482ca80a6a6fc069acdb73186e8e578dbf8f46af80Dmitriy Ivanov#define _VKI_IOC_WRITE 4U 549436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 550436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC(dir,type,nr,size) \ 551436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (((dir) << _VKI_IOC_DIRSHIFT) | \ 552436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov ((type) << _VKI_IOC_TYPESHIFT) | \ 553436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov ((nr) << _VKI_IOC_NRSHIFT) | \ 554436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov ((size) << _VKI_IOC_SIZESHIFT)) 555436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 556436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* provoke compile error for invalid uses of size argument */ 557436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovextern unsigned int __VKI_invalid_size_argument_for_IOC; 558436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* used to create numbers */ 559436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0) 560436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOR(type,nr,size) _VKI_IOC(_VKI_IOC_READ,(type),(nr), \ 561436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (_VKI_IOC_TYPECHECK(size))) 562436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOW(type,nr,size) _VKI_IOC(_VKI_IOC_WRITE,(type),(nr), \ 563436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (_VKI_IOC_TYPECHECK(size))) 564436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOWR(type,nr,size) _VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type), \ 565436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (nr),(_VKI_IOC_TYPECHECK(size))) 566436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 567436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* used to decode ioctl numbers.. */ 568436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_DIR(nr) (((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK) 569436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_TYPE(nr) (((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK) 570436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_NR(nr) (((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK) 571436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _VKI_IOC_SIZE(nr) (((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK) 572436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 573436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 574436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/ioctls.h 575436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 576436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 577436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCGETA 0x5401 578436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSETA 0x5402 /* Clashes with SNDCTL_TMR_START 579436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov sound ioctl */ 580436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSETAW 0x5403 581436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSETAF 0x5404 582436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 583436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSBRK 0x5405 584436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCXONC 0x5406 585436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCFLSH 0x5407 586436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 587436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCGETS 0x540d 588436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSETS 0x540e 589436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSETSW 0x540f 590436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSETSF 0x5410 591436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 592436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCEXCL 0x740d /* set exclusive use of tty */ 593436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCNXCL 0x740e /* reset exclusive use of tty */ 594436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCOUTQ 0x7472 /* output queue size */ 595436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSTI 0x5472 /* simulate terminal input */ 596436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCMGET 0x741d /* get all modem bits */ 597436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCMBIS 0x741b /* bis modem bits */ 598436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCMBIC 0x741c /* bic modem bits */ 599436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCMSET 0x741a /* set all modem bits */ 600436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT 0x5470 /* pty: set/clear packet mode */ 601436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT_DATA 0x00 /* data packet */ 602436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT_FLUSHREAD 0x01 /* flush packet */ 603436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ 604436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT_STOP 0x04 /* stop output */ 605436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT_START 0x08 /* start output */ 606436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ 607436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ 608436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 609436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* set window size */ 610436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSWINSZ _VKI_IOW('t', 103, struct vki_winsize) 611436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* get window size */ 612436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGWINSZ _VKI_IOR('t', 104, struct vki_winsize) 613436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCNOTTY 0x5471 /* void tty association */ 614436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSETD 0x7401 615436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGETD 0x7400 616436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 617436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_FIOCLEX 0x6601 618436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_FIONCLEX 0x6602 619436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_FIOASYNC 0x667d 620436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_FIONBIO 0x667e 621436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_FIOQSIZE 0x667f 622436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 623436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGLTC 0x7474 /* get special local chars */ 624436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSLTC 0x7475 /* set special local chars */ 625436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSPGRP _VKI_IOW('t', 118, int) /* set pgrp of tty */ 626436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGPGRP _VKI_IOR('t', 119, int) /* get pgrp of tty */ 627436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCCONS _VKI_IOW('t', 120, int) /* become virtual 628436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov console */ 629436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 630436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_FIONREAD 0x467f 631436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCINQ FIONREAD 632436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 633436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGETP 0x7408 634436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSETP 0x7409 635436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSETN 0x740a /* TIOCSETP wo flush */ 636436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 637436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSBRK 0x5427 /* BSD compatibility */ 638436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCCBRK 0x5428 /* BSD compatibility */ 639436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGSID 0x7416 /* Return the session ID of FD */ 640436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int) /* Get Pty 641436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Number (of pty-mux device) */ 642436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */ 643436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 644436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* I hope the range from 0x5480 on is free ... */ 645436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSCTTY 0x5480 /* become controlling tty */ 646436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGSOFTCAR 0x5481 647436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSSOFTCAR 0x5482 648436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCLINUX 0x5483 649436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGSERIAL 0x5484 650436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSSERIAL 0x5485 651436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TCSBRKP 0x5486 /* Needed for POSIX tcsendbreak() */ 652436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSERCONFIG 0x5488 653436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSERGWILD 0x5489 654436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSERSWILD 0x548a 655436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGLCKTRMIOS 0x548b 656436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSLCKTRMIOS 0x548c 657436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSERGSTRUCT 0x548d /* For debugging only */ 658436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSERGETLSR 0x548e /* Get line status register */ 659436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSERGETMULTI 0x548f /* Get multiport config */ 660436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSERSETMULTI 0x5490 /* Set multiport config */ 661436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCMIWAIT 0x5491 /* wait for a change on serial input 662436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov line(s) */ 663436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGICOUNT 0x5492 /* read serial port inline interrupt 664436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov counts */ 665436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCGHAYESESP 0x5493 /* Get Hayes ESP configuration */ 666436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_TIOCSHAYESESP 0x5494 /* Set Hayes ESP configuration */ 667436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 668436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 669436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From asm-generic/poll.h 670436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 671436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 672436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* These are specified by iBCS2 */ 673436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_POLLIN 0x0001 674436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 675436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_pollfd { 676436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int fd; 677436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov short events; 678436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov short revents; 679436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 680436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 681436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/elf.h 682436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 683436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 684436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_ELF_NGREG 45 /* includes nip, msr, lr, etc. */ 685436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_ELF_NFPREG 33 /* includes fpscr */ 686436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 687436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef unsigned long vki_elf_greg_t; 688436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG]; 689436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 690436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef double vki_elf_fpreg_t; 691436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef vki_elf_fpreg_t vki_elf_fpregset_t[VKI_ELF_NFPREG]; 692436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 693436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_user_fxsr_struct vki_elf_fpxregset_t; 694436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 695436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_AT_SYSINFO 32 696436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 697436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/ucontext.h 698436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 699436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 700436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_ucontext { 701436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long uc_flags; 702436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_ucontext *uc_link; 703436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_stack_t uc_stack; 704436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_sigcontext uc_mcontext; 705436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_sigset_t uc_sigmask; /* mask last for extensibility */ 706436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 707436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 708436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 709436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/ipcbuf.h 710436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 711436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 712436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_ipc64_perm { 713436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_key_t key; 714436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_uid_t uid; 715436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_gid_t gid; 716436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_uid_t cuid; 717436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_gid_t cgid; 718436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_mode_t mode; 719436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short seq; 720436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned short __pad1; 721436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused1; 722436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused2; 723436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 724436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 725436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 726436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/sembuf.h 727436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 728436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 729436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_semid64_ds { 730436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_ipc64_perm sem_perm; /* permissions .. see ipc.h */ 731436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t sem_otime; /* last semop time */ 732436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t sem_ctime; /* last change time */ 733436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long sem_nsems; /* no. of semaphores in array */ 734436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused1; 735436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused2; 736436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 737436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 738436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 739436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/msgbuf.h 740436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 741436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 742436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_msqid64_ds { 743436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_ipc64_perm msg_perm; 744436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t msg_stime; /* last msgsnd time */ 745436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t msg_rtime; /* last msgrcv time */ 746436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t msg_ctime; /* last change time */ 747436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long msg_cbytes; /* current number of bytes on queue */ 748436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long msg_qnum; /* number of messages in queue */ 749436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long msg_qbytes; /* max number of bytes on queue */ 750436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_pid_t msg_lspid; /* pid of last msgsnd */ 751436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_pid_t msg_lrpid; /* last receive pid */ 752436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused4; 753436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused5; 754436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 755436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 756436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 757436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/ipc.h 758436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 759436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 760436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_ipc_kludge { 761436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_msgbuf __user *msgp; 762436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov long msgtyp; 763436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 764436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 765436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SEMOP 1 766436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SEMGET 2 767436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SEMCTL 3 768436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SEMTIMEDOP 4 769436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MSGSND 11 770436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MSGRCV 12 771436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MSGGET 13 772436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_MSGCTL 14 773436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SHMAT 21 774436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SHMDT 22 775436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SHMGET 23 776436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SHMCTL 24 777436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 778436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 779436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/shmbuf.h 780436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 781436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 782436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_shmid64_ds { 783436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_ipc64_perm shm_perm; /* operation perms */ 784436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_size_t shm_segsz; /* size of segment (bytes) */ 785436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t shm_atime; /* last attach time */ 786436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t shm_dtime; /* last detach time */ 787436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_time_t shm_ctime; /* last change time */ 788436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_pid_t shm_cpid; /* pid of creator */ 789436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __vki_kernel_pid_t shm_lpid; /* pid of last operator */ 790436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long shm_nattch; /* no. of current attaches */ 791436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused1; 792436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused2; 793436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 794436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 795436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_shminfo64 { 796436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long shmmax; 797436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long shmmin; 798436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long shmmni; 799436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long shmseg; 800436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long shmall; 801436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused1; 802436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused2; 803436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused3; 804436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long __unused4; 805436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 806436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 807436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 808436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-mips/ptrace.h 809436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 810436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 811436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_pt_regs { 812436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifdef CONFIG_32BIT 813436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Pad bytes for argument save space on the stack. */ 814436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long pad0[6]; 815436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 816436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 817436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Saved main processor registers. */ 818436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long regs[32]; 819436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 820436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Saved special registers. */ 821436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long cp0_status; 822436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long hi; 823436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long lo; 824436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifdef CONFIG_CPU_HAS_SMARTMIPS 825436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long acx; 826436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 827436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long cp0_badvaddr; 828436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long cp0_cause; 829436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long cp0_epc; 830436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifdef CONFIG_MIPS_MT_SMTC 831436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long cp0_tcstatus; 832436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif /* CONFIG_MIPS_MT_SMTC */ 833436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifdef CONFIG_CPU_CAVIUM_OCTEON 834436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long long mpl[3]; /* MTM{0,1,2} */ 835436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov unsigned long long mtp[3]; /* MTP{0,1,2} */ 836436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 837436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} __attribute__ ((aligned (8))); 838436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 839436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 840436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define vki_user_regs_struct vki_pt_regs 841436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 842436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_lo lo 843436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_hi hi 844436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r31 regs[31] 845436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r30 regs[30] 846436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r29 regs[29] 847436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r28 regs[28] 848436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r27 regs[27] 849436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r26 regs[26] 850436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r25 regs[25] 851436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r24 regs[24] 852436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r23 regs[23] 853436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r22 regs[22] 854436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r21 regs[21] 855436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r20 regs[20] 856436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r19 regs[19] 857436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r18 regs[18] 858436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r17 regs[17] 859436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r16 regs[16] 860436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r15 regs[15] 861436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r14 regs[14] 862436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r13 regs[13] 863436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r12 regs[12] 864436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r11 regs[11] 865436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r10 regs[10] 866436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r9 regs[9] 867436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r8 regs[8] 868436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r7 regs[7] 869436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r6 regs[6] 870436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r5 regs[5] 871436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r4 regs[4] 872436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r3 regs[3] 873436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r2 regs[2] 874436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r1 regs[1] 875436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define MIPS_r0 regs[0] 876436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 877436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 878436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-i386/ptrace.h 879436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 880436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 881436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_GETREGS 12 882436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_SETREGS 13 883436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_GETFPREGS 14 884436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_SETFPREGS 15 885436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_GETFPXREGS 18 886436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_SETFPXREGS 19 887436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 888436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Calls to trace a 64bit program from a 32bit program. */ 889436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_PEEKTEXT_3264 0xc0 890436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_PEEKDATA_3264 0xc1 891436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_POKETEXT_3264 0xc2 892436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_POKEDATA_3264 0xc3 893436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_PTRACE_GET_THREAD_AREA_3264 0xc4s 894436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 895436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 896436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.9/include/asm-generic/siginfo.h 897436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 898436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 899436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define HAVE_ARCH_SIGINFO_T 900436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef union vki_sigval { 901436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int sival_int; 902436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov void __user *sival_ptr; 903436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} vki_sigval_t; 904436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 905436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __VKI_ARCH_SI_PREAMBLE_SIZE 906436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __VKI_ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) 907436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 908436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 909436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SI_MAX_SIZE 128 910436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 911436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef VKI_SI_PAD_SIZE 912436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_SI_PAD_SIZE ((VKI_SI_MAX_SIZE - __VKI_ARCH_SI_PREAMBLE_SIZE) / sizeof(int)) 913436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 914436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 915436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __VKI_ARCH_SI_UID_T 916436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __VKI_ARCH_SI_UID_T vki_uid_t 917436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 918436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 919436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __VKI_ARCH_SI_BAND_T 920436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __VKI_ARCH_SI_BAND_T long 921436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 922436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 923436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_siginfo { 924436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int si_signo; 925436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int si_code; 926436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int si_errno; 927436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int __pad0[VKI_SI_MAX_SIZE / sizeof(int) - VKI_SI_PAD_SIZE - 3]; 928436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 929436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov union { 930436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int _pad[VKI_SI_PAD_SIZE]; 931436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 932436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* kill() */ 933436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct { 934436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_pid_t _pid; /* sender's pid */ 935436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __VKI_ARCH_SI_UID_T _uid; /* sender's uid */ 936436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _kill; 937436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 938436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* POSIX.1b timers */ 939436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct { 940436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_timer_t _tid; /* timer id */ 941436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int _overrun; /* overrun count */ 942436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov char _pad[sizeof( __VKI_ARCH_SI_UID_T) - sizeof(int)]; 943436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_sigval_t _sigval; /* same as below */ 944436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int _sys_private; /* not to be passed to user */ 945436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _timer; 946436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 947436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* POSIX.1b signals */ 948436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct { 949436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_pid_t _pid; /* sender's pid */ 950436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __VKI_ARCH_SI_UID_T _uid; /* sender's uid */ 951436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_sigval_t _sigval; 952436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _rt; 953436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 954436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* SIGCHLD */ 955436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct { 956436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_pid_t _pid; /* which child */ 957436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __VKI_ARCH_SI_UID_T _uid; /* sender's uid */ 958436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int _status; /* exit code */ 959436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_clock_t _utime; 960436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_clock_t _stime; 961436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _sigchld; 962436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 963436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* IRIX SIGCHLD */ 964436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct { 965436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_pid_t _pid; /* which child */ 966436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_clock_t _utime; 967436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int _status; /* exit code */ 968436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_clock_t _stime; 969436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _irix_sigchld; 970436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 971436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ 972436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct { 973436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov void __user *_addr; /* faulting insn/memory ref. */ 974436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifdef __ARCH_SI_TRAPNO 975436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int _trapno; /* TRAP # which caused the signal */ 976436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 977436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _sigfault; 978436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 979436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* SIGPOLL, SIGXFSZ (To do ...) */ 980436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct { 981436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov __VKI_ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */ 982436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int _fd; 983436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _sigpoll; 984436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } _sifields; 985436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} vki_siginfo_t; 986436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 987436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 988436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-2.6.35.5/include/asm/break.h 989436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 990436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_BRK_OVERFLOW 6 /* Overflow check */ 991436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_BRK_DIVZERO 7 /* Divide by zero check */ 992436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 993436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 994436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-3.6.35.5/arch/mips/include/socket.h 995436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 996436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovenum vki_sock_type { 997436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_SOCK_STREAM = 2, 998436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // [[others omitted]] 999436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 1000436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define ARCH_HAS_SOCKET_TYPES 1 1001436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 1002436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 1003436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// From linux-3.13.0/include/asm/errno.h 1004436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//---------------------------------------------------------------------- 1005436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 1006436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_ENOSYS 89 /* Function not implemented */ 1007436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_EOVERFLOW 79 /* Value too large for defined data type */ 1008436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 1009436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif // __VKI_MIPS64_LINUX_H 1010436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 1011436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/ 1012436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--- end vki-mips64-linux.h ---*/ 1013436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/ 1014