159570ffbe31930ab4d678754daaeec0715117a3dsewardj
259570ffbe31930ab4d678754daaeec0715117a3dsewardj/*--------------------------------------------------------------------*/
359570ffbe31930ab4d678754daaeec0715117a3dsewardj/*--- arm/Linux-specific kernel interface.         vki-arm-linux.h ---*/
459570ffbe31930ab4d678754daaeec0715117a3dsewardj/*--------------------------------------------------------------------*/
559570ffbe31930ab4d678754daaeec0715117a3dsewardj
659570ffbe31930ab4d678754daaeec0715117a3dsewardj/*
759570ffbe31930ab4d678754daaeec0715117a3dsewardj   This file is part of Valgrind, a dynamic binary instrumentation
859570ffbe31930ab4d678754daaeec0715117a3dsewardj   framework.
959570ffbe31930ab4d678754daaeec0715117a3dsewardj
10b3a1e4bffbdbbf38304f216af405009868f43628sewardj   Copyright (C) 2000-2015 Julian Seward
1159570ffbe31930ab4d678754daaeec0715117a3dsewardj      jseward@acm.org
1259570ffbe31930ab4d678754daaeec0715117a3dsewardj
1359570ffbe31930ab4d678754daaeec0715117a3dsewardj   This program is free software; you can redistribute it and/or
1459570ffbe31930ab4d678754daaeec0715117a3dsewardj   modify it under the terms of the GNU General Public License as
1559570ffbe31930ab4d678754daaeec0715117a3dsewardj   published by the Free Software Foundation; either version 2 of the
1659570ffbe31930ab4d678754daaeec0715117a3dsewardj   License, or (at your option) any later version.
1759570ffbe31930ab4d678754daaeec0715117a3dsewardj
1859570ffbe31930ab4d678754daaeec0715117a3dsewardj   This program is distributed in the hope that it will be useful, but
1959570ffbe31930ab4d678754daaeec0715117a3dsewardj   WITHOUT ANY WARRANTY; without even the implied warranty of
2059570ffbe31930ab4d678754daaeec0715117a3dsewardj   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
2159570ffbe31930ab4d678754daaeec0715117a3dsewardj   General Public License for more details.
2259570ffbe31930ab4d678754daaeec0715117a3dsewardj
2359570ffbe31930ab4d678754daaeec0715117a3dsewardj   You should have received a copy of the GNU General Public License
2459570ffbe31930ab4d678754daaeec0715117a3dsewardj   along with this program; if not, write to the Free Software
2559570ffbe31930ab4d678754daaeec0715117a3dsewardj   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
2659570ffbe31930ab4d678754daaeec0715117a3dsewardj   02111-1307, USA.
2759570ffbe31930ab4d678754daaeec0715117a3dsewardj
2859570ffbe31930ab4d678754daaeec0715117a3dsewardj   The GNU General Public License is contained in the file COPYING.
2959570ffbe31930ab4d678754daaeec0715117a3dsewardj*/
3059570ffbe31930ab4d678754daaeec0715117a3dsewardj
3159570ffbe31930ab4d678754daaeec0715117a3dsewardj#ifndef __VKI_ARM_LINUX_H
3259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define __VKI_ARM_LINUX_H
3359570ffbe31930ab4d678754daaeec0715117a3dsewardj
3459570ffbe31930ab4d678754daaeec0715117a3dsewardj// arm is little-endian.
3559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_LITTLE_ENDIAN  1
3659570ffbe31930ab4d678754daaeec0715117a3dsewardj
37e61a62846b628d1df4211eadd14eff64cca9645bsewardj// The various comments below indicating i386-ness should be regarded
38e61a62846b628d1df4211eadd14eff64cca9645bsewardj// with great skepticism -- they are quite possibly wrong.  But see
39e61a62846b628d1df4211eadd14eff64cca9645bsewardj// also bug 269079 comment 0.
40e61a62846b628d1df4211eadd14eff64cca9645bsewardj
4159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
4259570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/types.h
4359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
4459570ffbe31930ab4d678754daaeec0715117a3dsewardj
4559570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned char __vki_u8;
4659570ffbe31930ab4d678754daaeec0715117a3dsewardj
4759570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef __signed__ short __vki_s16;
4859570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned short __vki_u16;
4959570ffbe31930ab4d678754daaeec0715117a3dsewardj
5059570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef __signed__ int __vki_s32;
5159570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned int __vki_u32;
5259570ffbe31930ab4d678754daaeec0715117a3dsewardj
5359570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef __signed__ long long __vki_s64;
5459570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned long long __vki_u64;
5559570ffbe31930ab4d678754daaeec0715117a3dsewardj
5659570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned short vki_u16;
5759570ffbe31930ab4d678754daaeec0715117a3dsewardj
5859570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned int vki_u32;
5959570ffbe31930ab4d678754daaeec0715117a3dsewardj
6059570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
6159570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/page.h
6259570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
6359570ffbe31930ab4d678754daaeec0715117a3dsewardj
6459570ffbe31930ab4d678754daaeec0715117a3dsewardj/* PAGE_SHIFT determines the page size */
6559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PAGE_SHIFT	12
6659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PAGE_SIZE	(1UL << VKI_PAGE_SHIFT)
6759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MAX_PAGE_SHIFT	VKI_PAGE_SHIFT
6859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MAX_PAGE_SIZE	VKI_PAGE_SIZE
6959570ffbe31930ab4d678754daaeec0715117a3dsewardj
7059570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
71a69c2def56fbfa9212f804b265ec2650b6e97c23sewardj// From linux-2.6.35.4/arch/arm/include/asm/shmparam.h
72a69c2def56fbfa9212f804b265ec2650b6e97c23sewardj//----------------------------------------------------------------------
73a69c2def56fbfa9212f804b265ec2650b6e97c23sewardj
74a69c2def56fbfa9212f804b265ec2650b6e97c23sewardj#define VKI_SHMLBA  (4 * VKI_PAGE_SIZE)
75a69c2def56fbfa9212f804b265ec2650b6e97c23sewardj
76a69c2def56fbfa9212f804b265ec2650b6e97c23sewardj//----------------------------------------------------------------------
7759570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/signal.h
7859570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
7959570ffbe31930ab4d678754daaeec0715117a3dsewardj
8059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MINSIGSTKSZ	2048
8159570ffbe31930ab4d678754daaeec0715117a3dsewardj
8259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIG_BLOCK          0	/* for blocking signals */
8359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIG_UNBLOCK        1	/* for unblocking signals */
8459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIG_SETMASK        2	/* for setting the signal mask */
8559570ffbe31930ab4d678754daaeec0715117a3dsewardj
8659570ffbe31930ab4d678754daaeec0715117a3dsewardj/* Type of a signal handler.  */
8759570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef void __vki_signalfn_t(int);
8859570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef __vki_signalfn_t __user *__vki_sighandler_t;
8959570ffbe31930ab4d678754daaeec0715117a3dsewardj
9059570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef void __vki_restorefn_t(void);
9159570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef __vki_restorefn_t __user *__vki_sigrestore_t;
9259570ffbe31930ab4d678754daaeec0715117a3dsewardj
9359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIG_DFL	((__vki_sighandler_t)0)	/* default signal handling */
9459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIG_IGN	((__vki_sighandler_t)1)	/* ignore signal */
9559570ffbe31930ab4d678754daaeec0715117a3dsewardj
9659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_NSIG	64
9759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_NSIG_BPW	32
9859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_NSIG_WORDS	(_VKI_NSIG / _VKI_NSIG_BPW)
9959570ffbe31930ab4d678754daaeec0715117a3dsewardj
10059570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned long vki_old_sigset_t;		/* at least 32 bits */
10159570ffbe31930ab4d678754daaeec0715117a3dsewardj
10259570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef struct {
10359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long sig[_VKI_NSIG_WORDS];
10459570ffbe31930ab4d678754daaeec0715117a3dsewardj} vki_sigset_t;
10559570ffbe31930ab4d678754daaeec0715117a3dsewardj
10659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGHUP		 1
10759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGINT		 2
10859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGQUIT		 3
10959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGILL		 4
11059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGTRAP		 5
11159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGABRT		 6
11259570ffbe31930ab4d678754daaeec0715117a3dsewardj//#define VKI_SIGIOT		 6
11359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGBUS		 7
11459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGFPE		 8
11559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGKILL		 9
11659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGUSR1		10
11759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGSEGV		11
11859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGUSR2		12
11959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGPIPE		13
12059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGALRM		14
12159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGTERM		15
12259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGSTKFLT		16
12359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGCHLD		17
12459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGCONT		18
12559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGSTOP		19
12659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGTSTP		20
12759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGTTIN		21
12859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGTTOU		22
12959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGURG		23
13059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGXCPU		24
13159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGXFSZ		25
13259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGVTALRM		26
13359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGPROF		27
13459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGWINCH		28
13559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGIO		29
13659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGPWR		30
13759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGSYS		31
13859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define	VKI_SIGUNUSED		31
13959570ffbe31930ab4d678754daaeec0715117a3dsewardj
14059570ffbe31930ab4d678754daaeec0715117a3dsewardj/* These should not be considered constants from userland.  */
14159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGRTMIN	32
14259570ffbe31930ab4d678754daaeec0715117a3dsewardj// [[This was (_NSIG-1) in 2.4.X... not sure if it matters.]]
14359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIGRTMAX	_VKI_NSIG
14459570ffbe31930ab4d678754daaeec0715117a3dsewardj
14559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_NOCLDSTOP	0x00000001u
14659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_NOCLDWAIT	0x00000002u
14759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_SIGINFO		0x00000004u
14859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_ONSTACK		0x08000000u
14959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_RESTART		0x10000000u
15059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_NODEFER		0x40000000u
15159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_RESETHAND	0x80000000u
15259570ffbe31930ab4d678754daaeec0715117a3dsewardj
15359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_NOMASK		VKI_SA_NODEFER
15459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_ONESHOT		VKI_SA_RESETHAND
15559570ffbe31930ab4d678754daaeec0715117a3dsewardj//#define VKI_SA_INTERRUPT	0x20000000 /* dummy -- ignored */
15659570ffbe31930ab4d678754daaeec0715117a3dsewardj
15759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SA_RESTORER		0x04000000
15859570ffbe31930ab4d678754daaeec0715117a3dsewardj
15959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SS_ONSTACK	1
16059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SS_DISABLE	2
16159570ffbe31930ab4d678754daaeec0715117a3dsewardj
16259570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_old_sigaction {
16359570ffbe31930ab4d678754daaeec0715117a3dsewardj        // [[Nb: a 'k' prefix is added to "sa_handler" because
16459570ffbe31930ab4d678754daaeec0715117a3dsewardj        // bits/sigaction.h (which gets dragged in somehow via signal.h)
16559570ffbe31930ab4d678754daaeec0715117a3dsewardj        // #defines it as something else.  Since that is done for glibc's
16659570ffbe31930ab4d678754daaeec0715117a3dsewardj        // purposes, which we don't care about here, we use our own name.]]
16759570ffbe31930ab4d678754daaeec0715117a3dsewardj        __vki_sighandler_t ksa_handler;
16859570ffbe31930ab4d678754daaeec0715117a3dsewardj        vki_old_sigset_t sa_mask;
16959570ffbe31930ab4d678754daaeec0715117a3dsewardj        unsigned long sa_flags;
17059570ffbe31930ab4d678754daaeec0715117a3dsewardj        __vki_sigrestore_t sa_restorer;
17159570ffbe31930ab4d678754daaeec0715117a3dsewardj};
17259570ffbe31930ab4d678754daaeec0715117a3dsewardj
17359570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_sigaction_base {
17459570ffbe31930ab4d678754daaeec0715117a3dsewardj        // [[See comment about extra 'k' above]]
17559570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_sighandler_t ksa_handler;
17659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long sa_flags;
17759570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_sigrestore_t sa_restorer;
17859570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_sigset_t sa_mask;		/* mask last for extensibility */
17959570ffbe31930ab4d678754daaeec0715117a3dsewardj};
18059570ffbe31930ab4d678754daaeec0715117a3dsewardj
18159570ffbe31930ab4d678754daaeec0715117a3dsewardj/* On Linux we use the same type for passing sigactions to
18259570ffbe31930ab4d678754daaeec0715117a3dsewardj   and from the kernel.  Hence: */
18359570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef  struct vki_sigaction_base  vki_sigaction_toK_t;
18459570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef  struct vki_sigaction_base  vki_sigaction_fromK_t;
18559570ffbe31930ab4d678754daaeec0715117a3dsewardj
18659570ffbe31930ab4d678754daaeec0715117a3dsewardj
18759570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef struct vki_sigaltstack {
18859570ffbe31930ab4d678754daaeec0715117a3dsewardj	void __user *ss_sp;
18959570ffbe31930ab4d678754daaeec0715117a3dsewardj	int ss_flags;
19059570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_size_t ss_size;
19159570ffbe31930ab4d678754daaeec0715117a3dsewardj} vki_stack_t;
19259570ffbe31930ab4d678754daaeec0715117a3dsewardj
19359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
19459570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/sigcontext.h
19559570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
19659570ffbe31930ab4d678754daaeec0715117a3dsewardj
19759570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_sigcontext {
19859570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long trap_no;
19959570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long error_code;
20059570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long oldmask;
20159570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r0;
20259570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r1;
20359570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r2;
20459570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r3;
20559570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r4;
20659570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r5;
20759570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r6;
20859570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r7;
20959570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r8;
21059570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r9;
21159570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_r10;
21259570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_fp;
21359570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_ip;
21459570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_sp;
21559570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_lr;
21659570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_pc;
21759570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long arm_cpsr;
21859570ffbe31930ab4d678754daaeec0715117a3dsewardj		unsigned long fault_address;
21959570ffbe31930ab4d678754daaeec0715117a3dsewardj};
22059570ffbe31930ab4d678754daaeec0715117a3dsewardj
22159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
22259570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/mman.h
22359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
22459570ffbe31930ab4d678754daaeec0715117a3dsewardj
22559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PROT_NONE	0x0		/* No page permissions */
22659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PROT_READ	0x1		/* page can be read */
22759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PROT_WRITE	0x2		/* page can be written */
22859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PROT_EXEC	0x4		/* page can be executed */
22959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PROT_GROWSDOWN	0x01000000	/* mprotect flag: extend change to start of growsdown vma */
23059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PROT_GROWSUP	0x02000000	/* mprotect flag: extend change to end of growsup vma */
23159570ffbe31930ab4d678754daaeec0715117a3dsewardj
23259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MAP_SHARED	0x01		/* Share changes */
23359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MAP_PRIVATE	0x02		/* Changes are private */
23459570ffbe31930ab4d678754daaeec0715117a3dsewardj//#define VKI_MAP_TYPE	0x0f		/* Mask for type of mapping */
23559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MAP_FIXED	0x10		/* Interpret addr exactly */
23659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MAP_ANONYMOUS	0x20	/* don't use a file */
23759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MAP_NORESERVE	0x4000		/* don't check for reservations */
23859570ffbe31930ab4d678754daaeec0715117a3dsewardj
23959570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
24059570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/fcntl.h
24159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
24259570ffbe31930ab4d678754daaeec0715117a3dsewardj
24391a16b78d3de85e68c5c5e2c13d2bf52d4676f5etom#define VKI_O_ACCMODE	     03
24459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_RDONLY	     00
24559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_WRONLY	     01
24659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_RDWR	     02
24759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_CREAT	   0100	/* not fcntl */
24859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_EXCL	   0200	/* not fcntl */
24959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_TRUNC	  01000	/* not fcntl */
25059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_APPEND	  02000
25159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_NONBLOCK	  04000
25259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_O_LARGEFILE	0100000
25359570ffbe31930ab4d678754daaeec0715117a3dsewardj
25459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_AT_FDCWD            -100
25559570ffbe31930ab4d678754daaeec0715117a3dsewardj
25659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_DUPFD		0	/* dup */
25759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_GETFD		1	/* get close_on_exec */
25859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETFD		2	/* set/clear close_on_exec */
25959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_GETFL		3	/* get file->f_flags */
26059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETFL		4	/* set file->f_flags */
26159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_GETLK		5
26259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETLK		6
26359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETLKW		7
26459570ffbe31930ab4d678754daaeec0715117a3dsewardj
26559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETOWN		8	/*  for sockets. */
26659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_GETOWN		9	/*  for sockets. */
26759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETSIG		10	/*  for sockets. */
26859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_GETSIG		11	/*  for sockets. */
26959570ffbe31930ab4d678754daaeec0715117a3dsewardj
27059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_GETLK64		12	/*  using 'struct flock64' */
27159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETLK64		13
27259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_SETLKW64		14
27359570ffbe31930ab4d678754daaeec0715117a3dsewardj
274835a714e35b6ce920b1abbd338547fa0b4a7601etom#define VKI_F_SETOWN_EX		15
275835a714e35b6ce920b1abbd338547fa0b4a7601etom#define VKI_F_GETOWN_EX		16
276835a714e35b6ce920b1abbd338547fa0b4a7601etom
277f77df946e65783c2bc727807e508fa1af04f0da8tom#define VKI_F_OFD_GETLK		36
278f77df946e65783c2bc727807e508fa1af04f0da8tom#define VKI_F_OFD_SETLK		37
279f77df946e65783c2bc727807e508fa1af04f0da8tom#define VKI_F_OFD_SETLKW	38
280f77df946e65783c2bc727807e508fa1af04f0da8tom
281835a714e35b6ce920b1abbd338547fa0b4a7601etom#define VKI_F_OWNER_TID		0
282835a714e35b6ce920b1abbd338547fa0b4a7601etom#define VKI_F_OWNER_PID		1
283835a714e35b6ce920b1abbd338547fa0b4a7601etom#define VKI_F_OWNER_PGRP	2
284835a714e35b6ce920b1abbd338547fa0b4a7601etom
285835a714e35b6ce920b1abbd338547fa0b4a7601etomstruct vki_f_owner_ex {
286835a714e35b6ce920b1abbd338547fa0b4a7601etom	int	type;
287835a714e35b6ce920b1abbd338547fa0b4a7601etom	__vki_kernel_pid_t	pid;
288835a714e35b6ce920b1abbd338547fa0b4a7601etom};
289835a714e35b6ce920b1abbd338547fa0b4a7601etom
29059570ffbe31930ab4d678754daaeec0715117a3dsewardj/* for F_[GET|SET]FL */
29159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_FD_CLOEXEC	1	/* actually anything with low bit set goes */
29259570ffbe31930ab4d678754daaeec0715117a3dsewardj
29359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_F_LINUX_SPECIFIC_BASE	1024
29459570ffbe31930ab4d678754daaeec0715117a3dsewardj
29559570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
29659570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/resource.h
29759570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
29859570ffbe31930ab4d678754daaeec0715117a3dsewardj
29959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_RLIMIT_DATA		2	/* max data size */
30059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_RLIMIT_STACK	3	/* max stack size */
30159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_RLIMIT_CORE		4	/* max core file size */
30259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_RLIMIT_NOFILE	7	/* max number of open files */
30359570ffbe31930ab4d678754daaeec0715117a3dsewardj
30459570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
30559570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/socket.h
30659570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
30759570ffbe31930ab4d678754daaeec0715117a3dsewardj
30859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SOL_SOCKET	1
30959570ffbe31930ab4d678754daaeec0715117a3dsewardj
31059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SO_TYPE	3
31159570ffbe31930ab4d678754daaeec0715117a3dsewardj
3128f420f1a5d392c461def7e5578d84fc39029dbc6tom#define VKI_SO_ATTACH_FILTER	26
3138f420f1a5d392c461def7e5578d84fc39029dbc6tom
31459570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
31559570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/sockios.h
31659570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
31759570ffbe31930ab4d678754daaeec0715117a3dsewardj
31859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIOCSPGRP           0x8902
31959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIOCGPGRP           0x8904
3204f17e600c7f0a697a964eb7083627b6d759401b6tom#define VKI_SIOCATMARK          0x8905
32159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIOCGSTAMP          0x8906      /* Get stamp (timeval) */
32259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SIOCGSTAMPNS        0x8907      /* Get stamp (timespec) */
32359570ffbe31930ab4d678754daaeec0715117a3dsewardj
32459570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
32559570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/stat.h
32659570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
32759570ffbe31930ab4d678754daaeec0715117a3dsewardj
32859570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_stat {
32959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_dev;
33059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_ino;
33159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short st_mode;
33259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short st_nlink;
33359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short st_uid;
33459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short st_gid;
33559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_rdev;
33659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_size;
33759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_blksize;
33859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_blocks;
33959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_atime;
34059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_atime_nsec;
34159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_mtime;
34259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_mtime_nsec;
34359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_ctime;
34459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  st_ctime_nsec;
34559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  __unused4;
34659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  __unused5;
34759570ffbe31930ab4d678754daaeec0715117a3dsewardj};
34859570ffbe31930ab4d678754daaeec0715117a3dsewardj
34959570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_stat64 {
35059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long long	st_dev;
35159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned char	__pad0[4];
35259570ffbe31930ab4d678754daaeec0715117a3dsewardj
35359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define STAT64_HAS_BROKEN_ST_INO	1
35459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__st_ino;
35559570ffbe31930ab4d678754daaeec0715117a3dsewardj
35659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int	st_mode;
35759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int	st_nlink;
35859570ffbe31930ab4d678754daaeec0715117a3dsewardj
35959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_uid;
36059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_gid;
36159570ffbe31930ab4d678754daaeec0715117a3dsewardj
36259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long long	st_rdev;
36359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned char	__pad3[4];
36459570ffbe31930ab4d678754daaeec0715117a3dsewardj
36559570ffbe31930ab4d678754daaeec0715117a3dsewardj	long long	st_size;
36659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_blksize;
36759570ffbe31930ab4d678754daaeec0715117a3dsewardj
36859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */
36959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__pad4;		/* future possible st_blocks high bits */
37059570ffbe31930ab4d678754daaeec0715117a3dsewardj
37159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_atime;
37259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_atime_nsec;
37359570ffbe31930ab4d678754daaeec0715117a3dsewardj
37459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_mtime;
37559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int	st_mtime_nsec;
37659570ffbe31930ab4d678754daaeec0715117a3dsewardj
37759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_ctime;
37859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	st_ctime_nsec;
37959570ffbe31930ab4d678754daaeec0715117a3dsewardj
38059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long long	st_ino;
38159570ffbe31930ab4d678754daaeec0715117a3dsewardj};
38259570ffbe31930ab4d678754daaeec0715117a3dsewardj
38359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
38459570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/statfs.h
38559570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
38659570ffbe31930ab4d678754daaeec0715117a3dsewardj
38759570ffbe31930ab4d678754daaeec0715117a3dsewardj// [[Nb: asm-i386/statfs.h just #include asm-generic/statfs.h directly]]
38859570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_statfs {
38959570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_type;
39059570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_bsize;
39159570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_blocks;
39259570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_bfree;
39359570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_bavail;
39459570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_files;
39559570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_ffree;
39659570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_fsid_t f_fsid;
39759570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_namelen;
39859570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_frsize;
39959570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_u32 f_spare[5];
40059570ffbe31930ab4d678754daaeec0715117a3dsewardj};
40159570ffbe31930ab4d678754daaeec0715117a3dsewardj
40259570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
40359570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/termios.h
40459570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
40559570ffbe31930ab4d678754daaeec0715117a3dsewardj
40659570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_winsize {
40759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short ws_row;
40859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short ws_col;
40959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short ws_xpixel;
41059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short ws_ypixel;
41159570ffbe31930ab4d678754daaeec0715117a3dsewardj};
41259570ffbe31930ab4d678754daaeec0715117a3dsewardj
41359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_NCC 8
41459570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_termio {
41559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short c_iflag;		/* input mode flags */
41659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short c_oflag;		/* output mode flags */
41759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short c_cflag;		/* control mode flags */
41859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short c_lflag;		/* local mode flags */
41959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned char c_line;		/* line discipline */
42059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned char c_cc[VKI_NCC];	/* control characters */
42159570ffbe31930ab4d678754daaeec0715117a3dsewardj};
42259570ffbe31930ab4d678754daaeec0715117a3dsewardj
42359570ffbe31930ab4d678754daaeec0715117a3dsewardj
42459570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
42559570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/termbits.h
42659570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
42759570ffbe31930ab4d678754daaeec0715117a3dsewardj
42859570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned char   vki_cc_t;
42959570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned int    vki_tcflag_t;
43059570ffbe31930ab4d678754daaeec0715117a3dsewardj
43159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_NCCS 19
43259570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_termios {
43359570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_tcflag_t c_iflag;		/* input mode flags */
43459570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_tcflag_t c_oflag;		/* output mode flags */
43559570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_tcflag_t c_cflag;		/* control mode flags */
43659570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_tcflag_t c_lflag;		/* local mode flags */
43759570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_cc_t c_line;		/* line discipline */
43859570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_cc_t c_cc[VKI_NCCS];	/* control characters */
43959570ffbe31930ab4d678754daaeec0715117a3dsewardj};
44059570ffbe31930ab4d678754daaeec0715117a3dsewardj
44159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
44259570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/ioctl.h
44359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
44459570ffbe31930ab4d678754daaeec0715117a3dsewardj
44559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_NRBITS		8
44659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_TYPEBITS	8
44759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_SIZEBITS	14
44859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_DIRBITS	2
44959570ffbe31930ab4d678754daaeec0715117a3dsewardj
45059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_NRMASK		((1 << _VKI_IOC_NRBITS)-1)
45159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_TYPEMASK	((1 << _VKI_IOC_TYPEBITS)-1)
45259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_SIZEMASK	((1 << _VKI_IOC_SIZEBITS)-1)
45359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_DIRMASK	((1 << _VKI_IOC_DIRBITS)-1)
45459570ffbe31930ab4d678754daaeec0715117a3dsewardj
45559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_NRSHIFT	0
45659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_TYPESHIFT	(_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS)
45759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_SIZESHIFT	(_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS)
45859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_DIRSHIFT	(_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS)
45959570ffbe31930ab4d678754daaeec0715117a3dsewardj
46059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_NONE	0U
46159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_WRITE	1U
46259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_READ	2U
46359570ffbe31930ab4d678754daaeec0715117a3dsewardj
46459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC(dir,type,nr,size) \
46559570ffbe31930ab4d678754daaeec0715117a3dsewardj	(((dir)  << _VKI_IOC_DIRSHIFT) | \
46659570ffbe31930ab4d678754daaeec0715117a3dsewardj	 ((type) << _VKI_IOC_TYPESHIFT) | \
46759570ffbe31930ab4d678754daaeec0715117a3dsewardj	 ((nr)   << _VKI_IOC_NRSHIFT) | \
46859570ffbe31930ab4d678754daaeec0715117a3dsewardj	 ((size) << _VKI_IOC_SIZESHIFT))
46959570ffbe31930ab4d678754daaeec0715117a3dsewardj
47059570ffbe31930ab4d678754daaeec0715117a3dsewardj/* used to create numbers */
47159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IO(type,nr)	_VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
47259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOR(type,nr,size)	_VKI_IOC(_VKI_IOC_READ,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
47359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOW(type,nr,size)	_VKI_IOC(_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
47459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOWR(type,nr,size)	_VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
47559570ffbe31930ab4d678754daaeec0715117a3dsewardj
47659570ffbe31930ab4d678754daaeec0715117a3dsewardj/* used to decode ioctl numbers.. */
47759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_DIR(nr)	(((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK)
47859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_TYPE(nr)	(((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK)
47959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_NR(nr)		(((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK)
48059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define _VKI_IOC_SIZE(nr)	(((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK)
48159570ffbe31930ab4d678754daaeec0715117a3dsewardj
48259570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
48359570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/ioctls.h
48459570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
48559570ffbe31930ab4d678754daaeec0715117a3dsewardj
48659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCGETS	0x5401
48759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSETS	0x5402 /* Clashes with SNDCTL_TMR_START sound ioctl */
48859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSETSW	0x5403
48959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSETSF	0x5404
49059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCGETA	0x5405
49159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSETA	0x5406
49259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSETAW	0x5407
49359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSETAF	0x5408
49459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSBRK	0x5409
49559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCXONC	0x540A
49659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCFLSH	0x540B
49759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCSCTTY	0x540E
49859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCGPGRP	0x540F
49959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCSPGRP	0x5410
50059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCOUTQ	0x5411
50159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCGWINSZ	0x5413
50259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCSWINSZ	0x5414
50359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCMGET	0x5415
50459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCMBIS	0x5416
50559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCMBIC	0x5417
50659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCMSET	0x5418
50759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_FIONREAD	0x541B
50859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCLINUX	0x541C
50959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_FIONBIO	0x5421
5104efdae1b2143692687d1e062ac336255898e7359tom#define VKI_TIOCNOTTY	0x5422
51159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TCSBRKP	0x5425	/* Needed for POSIX tcsendbreak() */
51259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCGPTN	_VKI_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
51359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCSPTLCK	_VKI_IOW('T',0x31, int)  /* Lock/unlock Pty */
51459570ffbe31930ab4d678754daaeec0715117a3dsewardj
515a52c83526a1bb0a4e3223e56ddb096258fc5e422tom#define VKI_FIONCLEX	0x5450
516a52c83526a1bb0a4e3223e56ddb096258fc5e422tom#define VKI_FIOCLEX	0x5451
51759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_FIOASYNC	0x5452
51859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCSERGETLSR   0x5459 /* Get line status register */
51959570ffbe31930ab4d678754daaeec0715117a3dsewardj
52059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */
52159570ffbe31930ab4d678754daaeec0715117a3dsewardj
52259570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
5236bf71ef1f168feb8e014ce2d7c63594eb4a4bc1btom// From linux-2.6.39-rc2/arch/arm/include/asm/ioctls.h
5246bf71ef1f168feb8e014ce2d7c63594eb4a4bc1btom//----------------------------------------------------------------------
5256bf71ef1f168feb8e014ce2d7c63594eb4a4bc1btom
5266bf71ef1f168feb8e014ce2d7c63594eb4a4bc1btom#define VKI_FIOQSIZE 0x545E
5276bf71ef1f168feb8e014ce2d7c63594eb4a4bc1btom
5286bf71ef1f168feb8e014ce2d7c63594eb4a4bc1btom//----------------------------------------------------------------------
52959570ffbe31930ab4d678754daaeec0715117a3dsewardj// From asm-generic/poll.h
53059570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
53159570ffbe31930ab4d678754daaeec0715117a3dsewardj
53259570ffbe31930ab4d678754daaeec0715117a3dsewardj/* These are specified by iBCS2 */
53359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_POLLIN		0x0001
53459570ffbe31930ab4d678754daaeec0715117a3dsewardj
53559570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_pollfd {
53659570ffbe31930ab4d678754daaeec0715117a3dsewardj	int fd;
53759570ffbe31930ab4d678754daaeec0715117a3dsewardj	short events;
53859570ffbe31930ab4d678754daaeec0715117a3dsewardj	short revents;
53959570ffbe31930ab4d678754daaeec0715117a3dsewardj};
54059570ffbe31930ab4d678754daaeec0715117a3dsewardj
54159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
54259570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/user.h
54359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
54459570ffbe31930ab4d678754daaeec0715117a3dsewardj
545e61a62846b628d1df4211eadd14eff64cca9645bsewardjstruct vki_user_fp {
546e61a62846b628d1df4211eadd14eff64cca9645bsewardj	struct vki_fp_reg {
547e61a62846b628d1df4211eadd14eff64cca9645bsewardj		unsigned int sign1:1;
548e61a62846b628d1df4211eadd14eff64cca9645bsewardj		unsigned int unused:15;
549e61a62846b628d1df4211eadd14eff64cca9645bsewardj		unsigned int sign2:1;
550e61a62846b628d1df4211eadd14eff64cca9645bsewardj		unsigned int exponent:14;
551e61a62846b628d1df4211eadd14eff64cca9645bsewardj		unsigned int j:1;
552e61a62846b628d1df4211eadd14eff64cca9645bsewardj		unsigned int mantissa1:31;
553e61a62846b628d1df4211eadd14eff64cca9645bsewardj		unsigned int mantissa0:32;
554e61a62846b628d1df4211eadd14eff64cca9645bsewardj	} fpregs[8];
555e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned int fpsr:32;
556e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned int fpcr:32;
557e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned char ftype[8];
558e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned int init_flag;
559e61a62846b628d1df4211eadd14eff64cca9645bsewardj};
560e61a62846b628d1df4211eadd14eff64cca9645bsewardj
561e61a62846b628d1df4211eadd14eff64cca9645bsewardjstruct vki_user_vfp {
562e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned long long fpregs[32];
563e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned long fpscr;
56459570ffbe31930ab4d678754daaeec0715117a3dsewardj};
56559570ffbe31930ab4d678754daaeec0715117a3dsewardj
566e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_IWMMXT_SIZE 0x98
567e61a62846b628d1df4211eadd14eff64cca9645bsewardj
568e61a62846b628d1df4211eadd14eff64cca9645bsewardjstruct vki_iwmmxt_struct {
569e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned int save[VKI_IWMMXT_SIZE / sizeof(unsigned int)];
57059570ffbe31930ab4d678754daaeec0715117a3dsewardj};
57159570ffbe31930ab4d678754daaeec0715117a3dsewardj
572e61a62846b628d1df4211eadd14eff64cca9645bsewardjstruct vki_crunch_state {
573e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned int    mvdx[16][2];
574e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned int    mvax[4][3];
575e61a62846b628d1df4211eadd14eff64cca9645bsewardj	unsigned int    dspsc[2];
576e61a62846b628d1df4211eadd14eff64cca9645bsewardj};
577e61a62846b628d1df4211eadd14eff64cca9645bsewardj
578e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_CRUNCH_SIZE sizeof(struct vki_crunch_state)
579e61a62846b628d1df4211eadd14eff64cca9645bsewardj
58059570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_user_regs_struct {
58159570ffbe31930ab4d678754daaeec0715117a3dsewardj    long uregs[18];
58259570ffbe31930ab4d678754daaeec0715117a3dsewardj};
58359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_cpsr	uregs[16]
58459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_pc		uregs[15]
58559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_lr		uregs[14]
58659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_sp		uregs[13]
58759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_ip		uregs[12]
58859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_fp		uregs[11]
58959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r10		uregs[10]
59059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r9		uregs[9]
59159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r8		uregs[8]
59259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r7		uregs[7]
59359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r6		uregs[6]
59459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r5		uregs[5]
59559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r4		uregs[4]
59659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r3		uregs[3]
59759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r2		uregs[2]
59859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r1		uregs[1]
59959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_r0		uregs[0]
60059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define ARM_ORIG_r0	uregs[17]
60159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
60259570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/elf.h
60359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
60459570ffbe31930ab4d678754daaeec0715117a3dsewardj
60559570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef unsigned long vki_elf_greg_t;
60659570ffbe31930ab4d678754daaeec0715117a3dsewardj
60759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_ELF_NGREG (sizeof (struct vki_user_regs_struct) / sizeof(vki_elf_greg_t))
60859570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef vki_elf_greg_t vki_elf_gregset_t[VKI_ELF_NGREG];
60959570ffbe31930ab4d678754daaeec0715117a3dsewardj
610e61a62846b628d1df4211eadd14eff64cca9645bsewardjtypedef struct vki_user_fp vki_elf_fpregset_t;
61159570ffbe31930ab4d678754daaeec0715117a3dsewardj
61259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_AT_SYSINFO		32
61359570ffbe31930ab4d678754daaeec0715117a3dsewardj
61459570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
61559570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/ucontext.h
61659570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
61759570ffbe31930ab4d678754daaeec0715117a3dsewardj
61859570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_ucontext {
61959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		uc_flags;
62059570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_ucontext    *uc_link;
62159570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_stack_t		uc_stack;
62259570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_sigcontext	uc_mcontext;
62359570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_sigset_t		uc_sigmask;	/* mask last for extensibility */
6247b634085c095fbb2c9d2c2470d81aa3bd684a115sewardj	int              __unused0[32 - (sizeof (vki_sigset_t) / sizeof (int))];
62559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long     uc_regspace[128] __attribute__((__aligned__(8)));
62659570ffbe31930ab4d678754daaeec0715117a3dsewardj
62759570ffbe31930ab4d678754daaeec0715117a3dsewardj};
62859570ffbe31930ab4d678754daaeec0715117a3dsewardj
62959570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
63059570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/segment.h
63159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
63259570ffbe31930ab4d678754daaeec0715117a3dsewardj
63359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_GDT_ENTRY_TLS_ENTRIES	3
63459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_GDT_ENTRY_TLS_MIN	6
63559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_GDT_ENTRY_TLS_MAX 	(VKI_GDT_ENTRY_TLS_MIN + VKI_GDT_ENTRY_TLS_ENTRIES - 1)
63659570ffbe31930ab4d678754daaeec0715117a3dsewardj
63759570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
63859570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/ldt.h
63959570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
64059570ffbe31930ab4d678754daaeec0715117a3dsewardj
64159570ffbe31930ab4d678754daaeec0715117a3dsewardj/* [[Nb: This is the structure passed to the modify_ldt syscall.  Just so as
64259570ffbe31930ab4d678754daaeec0715117a3dsewardj   to confuse and annoy everyone, this is _not_ the same as an
64359570ffbe31930ab4d678754daaeec0715117a3dsewardj   VgLdtEntry and has to be translated into such.  The logic for doing
64459570ffbe31930ab4d678754daaeec0715117a3dsewardj   so, in vg_ldt.c, is copied from the kernel sources.]] */
64559570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_user_desc {
64659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  entry_number;
64759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long base_addr;
64859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  limit;
64959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  seg_32bit:1;
65059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  contents:2;
65159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  read_exec_only:1;
65259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  limit_in_pages:1;
65359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  seg_not_present:1;
65459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  useable:1;
65559570ffbe31930ab4d678754daaeec0715117a3dsewardj        // [[Nb: this field is not in the kernel sources, but it has always
65659570ffbe31930ab4d678754daaeec0715117a3dsewardj        // been in the Valgrind sources so I will keep it there in case it's
65759570ffbe31930ab4d678754daaeec0715117a3dsewardj        // important... this is an x86-defined data structure so who
65859570ffbe31930ab4d678754daaeec0715117a3dsewardj        // knows;  maybe it's important to set this field to zero at some
65959570ffbe31930ab4d678754daaeec0715117a3dsewardj        // point.  --njn]]
66059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned int  reserved:25;
66159570ffbe31930ab4d678754daaeec0715117a3dsewardj};
66259570ffbe31930ab4d678754daaeec0715117a3dsewardj
66359570ffbe31930ab4d678754daaeec0715117a3dsewardj// [[Nb: for our convenience within Valgrind, use a more specific name]]
66459570ffbe31930ab4d678754daaeec0715117a3dsewardjtypedef struct vki_user_desc vki_modify_ldt_t;
66559570ffbe31930ab4d678754daaeec0715117a3dsewardj
66659570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
66759570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/ipcbuf.h
66859570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
66959570ffbe31930ab4d678754daaeec0715117a3dsewardj
67059570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_ipc64_perm
67159570ffbe31930ab4d678754daaeec0715117a3dsewardj{
67259570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_key_t	key;
67359570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_uid32_t	uid;
67459570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_gid32_t	gid;
67559570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_uid32_t	cuid;
67659570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_gid32_t	cgid;
67759570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_mode_t	mode;
67859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short		__pad1;
67959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short		seq;
68059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short		__pad2;
68159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		__unused1;
68259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		__unused2;
68359570ffbe31930ab4d678754daaeec0715117a3dsewardj};
68459570ffbe31930ab4d678754daaeec0715117a3dsewardj
68559570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
68659570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/sembuf.h
68759570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
68859570ffbe31930ab4d678754daaeec0715117a3dsewardj
68959570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_semid64_ds {
69059570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_ipc64_perm sem_perm;		/* permissions .. see ipc.h */
69159570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t	sem_otime;		/* last semop time */
69259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused1;
69359570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t	sem_ctime;		/* last change time */
69459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused2;
69559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	sem_nsems;		/* no. of semaphores in array */
69659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused3;
69759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused4;
69859570ffbe31930ab4d678754daaeec0715117a3dsewardj};
69959570ffbe31930ab4d678754daaeec0715117a3dsewardj
70059570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
70159570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/msgbuf.h
70259570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
70359570ffbe31930ab4d678754daaeec0715117a3dsewardj
70459570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_msqid64_ds {
70559570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_ipc64_perm msg_perm;
70659570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t msg_stime;	/* last msgsnd time */
70759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused1;
70859570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t msg_rtime;	/* last msgrcv time */
70959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused2;
71059570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t msg_ctime;	/* last change time */
71159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused3;
71259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  msg_cbytes;	/* current number of bytes on queue */
71359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  msg_qnum;	/* number of messages in queue */
71459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  msg_qbytes;	/* max number of bytes on queue */
71559570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_pid_t msg_lspid;	/* pid of last msgsnd */
71659570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_pid_t msg_lrpid;	/* last receive pid */
71759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  __unused4;
71859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long  __unused5;
71959570ffbe31930ab4d678754daaeec0715117a3dsewardj};
72059570ffbe31930ab4d678754daaeec0715117a3dsewardj
72159570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
72259570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/ipc.h
72359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
72459570ffbe31930ab4d678754daaeec0715117a3dsewardj
72559570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_ipc_kludge {
72659570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_msgbuf __user *msgp;
72759570ffbe31930ab4d678754daaeec0715117a3dsewardj	long msgtyp;
72859570ffbe31930ab4d678754daaeec0715117a3dsewardj};
72959570ffbe31930ab4d678754daaeec0715117a3dsewardj
73059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SEMOP		 1
73159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SEMGET		 2
73259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SEMCTL		 3
73359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SEMTIMEDOP	 	 4
73459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MSGSND		11
73559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MSGRCV		12
73659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MSGGET		13
73759570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_MSGCTL		14
73859570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SHMAT		21
73959570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SHMDT		22
74059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SHMGET		23
74159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_SHMCTL		24
74259570ffbe31930ab4d678754daaeec0715117a3dsewardj
74359570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
74459570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.8.1/include/asm-i386/shmbuf.h
74559570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
74659570ffbe31930ab4d678754daaeec0715117a3dsewardj
74759570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_shmid64_ds {
74859570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_ipc64_perm	shm_perm;	/* operation perms */
74959570ffbe31930ab4d678754daaeec0715117a3dsewardj	vki_size_t		shm_segsz;	/* size of segment (bytes) */
75059570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t	shm_atime;	/* last attach time */
75159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		__unused1;
75259570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t	shm_dtime;	/* last detach time */
75359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		__unused2;
75459570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_time_t	shm_ctime;	/* last change time */
75559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		__unused3;
75659570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_pid_t	shm_cpid;	/* pid of creator */
75759570ffbe31930ab4d678754daaeec0715117a3dsewardj	__vki_kernel_pid_t	shm_lpid;	/* pid of last operator */
75859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		shm_nattch;	/* no. of current attaches */
75959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		__unused4;
76059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long		__unused5;
76159570ffbe31930ab4d678754daaeec0715117a3dsewardj};
76259570ffbe31930ab4d678754daaeec0715117a3dsewardj
76359570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_shminfo64 {
76459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	shmmax;
76559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	shmmin;
76659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	shmmni;
76759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	shmseg;
76859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	shmall;
76959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused1;
77059570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused2;
77159570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused3;
77259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long	__unused4;
77359570ffbe31930ab4d678754daaeec0715117a3dsewardj};
77459570ffbe31930ab4d678754daaeec0715117a3dsewardj
77559570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
77659570ffbe31930ab4d678754daaeec0715117a3dsewardj// DRM ioctls
77759570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
77859570ffbe31930ab4d678754daaeec0715117a3dsewardj
77959570ffbe31930ab4d678754daaeec0715117a3dsewardj// jrs 20050207: where did all this stuff come from?  Is it really
78059570ffbe31930ab4d678754daaeec0715117a3dsewardj// i386 specific, or should it go into the linux-generic category?
78159570ffbe31930ab4d678754daaeec0715117a3dsewardj//struct vki_drm_buf_pub {
78259570ffbe31930ab4d678754daaeec0715117a3dsewardj//	Int		  idx;	       /**< Index into the master buffer list */
78359570ffbe31930ab4d678754daaeec0715117a3dsewardj//	Int		  total;       /**< Buffer size */
78459570ffbe31930ab4d678754daaeec0715117a3dsewardj//	Int		  used;	       /**< Amount of buffer in use (for DMA) */
78559570ffbe31930ab4d678754daaeec0715117a3dsewardj//	void	  __user *address;     /**< Address of buffer */
78659570ffbe31930ab4d678754daaeec0715117a3dsewardj//};
78759570ffbe31930ab4d678754daaeec0715117a3dsewardj//
78859570ffbe31930ab4d678754daaeec0715117a3dsewardj//struct vki_drm_buf_map {
78959570ffbe31930ab4d678754daaeec0715117a3dsewardj//	Int	      count;		/**< Length of the buffer list */
79059570ffbe31930ab4d678754daaeec0715117a3dsewardj//	void	      __user *virtual;	/**< Mmap'd area in user-virtual */
79159570ffbe31930ab4d678754daaeec0715117a3dsewardj//	struct vki_drm_buf_pub __user *list;	/**< Buffer information */
79259570ffbe31930ab4d678754daaeec0715117a3dsewardj//};
79359570ffbe31930ab4d678754daaeec0715117a3dsewardj//
79459570ffbe31930ab4d678754daaeec0715117a3dsewardj///* We need to pay attention to this, because it mmaps memory */
79559570ffbe31930ab4d678754daaeec0715117a3dsewardj//#define VKI_DRM_IOCTL_MAP_BUFS		_VKI_IOWR('d', 0x19, struct vki_drm_buf_map)
79659570ffbe31930ab4d678754daaeec0715117a3dsewardj
79759570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
79859570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.9/include/asm-i386/ptrace.h
79959570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
80059570ffbe31930ab4d678754daaeec0715117a3dsewardj
80159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PTRACE_GETREGS            12
80259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PTRACE_SETREGS            13
80359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PTRACE_GETFPREGS          14
80459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_PTRACE_SETFPREGS          15
805e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_GETWMMXREGS        18
806e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_SETWMMXREGS        19
807e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_GET_THREAD_AREA    22
808e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_SET_SYSCALL        23
809e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_GETCRUNCHREGS      25
810e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_SETCRUNCHREGS      26
811e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_GETVFPREGS         27
812e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_SETVFPREGS         28
813e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_GETHBPREGS         29
814e61a62846b628d1df4211eadd14eff64cca9645bsewardj#define VKI_PTRACE_SETHBPREGS         30
81559570ffbe31930ab4d678754daaeec0715117a3dsewardj
81659570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
81759570ffbe31930ab4d678754daaeec0715117a3dsewardj// From linux-2.6.15.4/include/asm-i386/vm86.h
81859570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
81959570ffbe31930ab4d678754daaeec0715117a3dsewardj
82059570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_VM86_PLUS_INSTALL_CHECK	0
82159570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_VM86_ENTER			1
82259570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_VM86_ENTER_NO_BYPASS	2
82359570ffbe31930ab4d678754daaeec0715117a3dsewardj#define	VKI_VM86_REQUEST_IRQ		3
82459570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_VM86_FREE_IRQ		4
82559570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_VM86_GET_IRQ_BITS		5
82659570ffbe31930ab4d678754daaeec0715117a3dsewardj#define VKI_VM86_GET_AND_RESET_IRQ	6
82759570ffbe31930ab4d678754daaeec0715117a3dsewardj
82859570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_vm86_regs {
82959570ffbe31930ab4d678754daaeec0715117a3dsewardj/*
83059570ffbe31930ab4d678754daaeec0715117a3dsewardj * normal regs, with special meaning for the segment descriptors..
83159570ffbe31930ab4d678754daaeec0715117a3dsewardj */
83259570ffbe31930ab4d678754daaeec0715117a3dsewardj	long ebx;
83359570ffbe31930ab4d678754daaeec0715117a3dsewardj	long ecx;
83459570ffbe31930ab4d678754daaeec0715117a3dsewardj	long edx;
83559570ffbe31930ab4d678754daaeec0715117a3dsewardj	long esi;
83659570ffbe31930ab4d678754daaeec0715117a3dsewardj	long edi;
83759570ffbe31930ab4d678754daaeec0715117a3dsewardj	long ebp;
83859570ffbe31930ab4d678754daaeec0715117a3dsewardj	long eax;
83959570ffbe31930ab4d678754daaeec0715117a3dsewardj	long __null_ds;
84059570ffbe31930ab4d678754daaeec0715117a3dsewardj	long __null_es;
84159570ffbe31930ab4d678754daaeec0715117a3dsewardj	long __null_fs;
84259570ffbe31930ab4d678754daaeec0715117a3dsewardj	long __null_gs;
84359570ffbe31930ab4d678754daaeec0715117a3dsewardj	long orig_eax;
84459570ffbe31930ab4d678754daaeec0715117a3dsewardj	long eip;
84559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short cs, __csh;
84659570ffbe31930ab4d678754daaeec0715117a3dsewardj	long eflags;
84759570ffbe31930ab4d678754daaeec0715117a3dsewardj	long esp;
84859570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short ss, __ssh;
84959570ffbe31930ab4d678754daaeec0715117a3dsewardj/*
85059570ffbe31930ab4d678754daaeec0715117a3dsewardj * these are specific to v86 mode:
85159570ffbe31930ab4d678754daaeec0715117a3dsewardj */
85259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short es, __esh;
85359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short ds, __dsh;
85459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short fs, __fsh;
85559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned short gs, __gsh;
85659570ffbe31930ab4d678754daaeec0715117a3dsewardj};
85759570ffbe31930ab4d678754daaeec0715117a3dsewardj
85859570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_revectored_struct {
85959570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long __map[8];			/* 256 bits */
86059570ffbe31930ab4d678754daaeec0715117a3dsewardj};
86159570ffbe31930ab4d678754daaeec0715117a3dsewardj
86259570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_vm86_struct {
86359570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_vm86_regs regs;
86459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long flags;
86559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long screen_bitmap;
86659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long cpu_type;
86759570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_revectored_struct int_revectored;
86859570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_revectored_struct int21_revectored;
86959570ffbe31930ab4d678754daaeec0715117a3dsewardj};
87059570ffbe31930ab4d678754daaeec0715117a3dsewardj
87159570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_vm86plus_info_struct {
87259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long force_return_for_pic:1;
87359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long vm86dbg_active:1;       /* for debugger */
87459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long vm86dbg_TFpendig:1;     /* for debugger */
87559570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long unused:28;
87659570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long is_vm86pus:1;	      /* for vm86 internal use */
87759570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned char vm86dbg_intxxtab[32];   /* for debugger */
87859570ffbe31930ab4d678754daaeec0715117a3dsewardj};
87959570ffbe31930ab4d678754daaeec0715117a3dsewardj
88059570ffbe31930ab4d678754daaeec0715117a3dsewardjstruct vki_vm86plus_struct {
88159570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_vm86_regs regs;
88259570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long flags;
88359570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long screen_bitmap;
88459570ffbe31930ab4d678754daaeec0715117a3dsewardj	unsigned long cpu_type;
88559570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_revectored_struct int_revectored;
88659570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_revectored_struct int21_revectored;
88759570ffbe31930ab4d678754daaeec0715117a3dsewardj	struct vki_vm86plus_info_struct vm86plus;
88859570ffbe31930ab4d678754daaeec0715117a3dsewardj};
88959570ffbe31930ab4d678754daaeec0715117a3dsewardj
89059570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
891a3551be497f6c4afc5dfbbbcd7c7a955a68fb22bsewardj// From linux-2.6.35.4/arch/arm/include/asm/hwcap.h
892a3551be497f6c4afc5dfbbbcd7c7a955a68fb22bsewardj//----------------------------------------------------------------------
893a3551be497f6c4afc5dfbbbcd7c7a955a68fb22bsewardj
894a3551be497f6c4afc5dfbbbcd7c7a955a68fb22bsewardj#define VKI_HWCAP_NEON      4096
895a3551be497f6c4afc5dfbbbcd7c7a955a68fb22bsewardj
896a3551be497f6c4afc5dfbbbcd7c7a955a68fb22bsewardj//----------------------------------------------------------------------
8970c0793c2f74526a0fd8e25db28149a5eb94fd62adejanj// From linux-2.6.8.1/include/asm-generic/errno.h
8980c0793c2f74526a0fd8e25db28149a5eb94fd62adejanj//----------------------------------------------------------------------
8990c0793c2f74526a0fd8e25db28149a5eb94fd62adejanj
9000c0793c2f74526a0fd8e25db28149a5eb94fd62adejanj#define	VKI_ENOSYS       38  /* Function not implemented */
9010c0793c2f74526a0fd8e25db28149a5eb94fd62adejanj#define	VKI_EOVERFLOW    75  /* Value too large for defined data type */
9020c0793c2f74526a0fd8e25db28149a5eb94fd62adejanj
9030c0793c2f74526a0fd8e25db28149a5eb94fd62adejanj//----------------------------------------------------------------------
90455895379b090d4db5d39013e1a9859714ac3e0d8sewardj// From linux-3.19.0/include/uapi/asm-generic/ioctls.h
90555895379b090d4db5d39013e1a9859714ac3e0d8sewardj//----------------------------------------------------------------------
90655895379b090d4db5d39013e1a9859714ac3e0d8sewardj
90755895379b090d4db5d39013e1a9859714ac3e0d8sewardj#define VKI_TIOCGSERIAL     0x541E
90855895379b090d4db5d39013e1a9859714ac3e0d8sewardj#define VKI_TIOCSSERIAL     0x541F
90955895379b090d4db5d39013e1a9859714ac3e0d8sewardj
91055895379b090d4db5d39013e1a9859714ac3e0d8sewardj//----------------------------------------------------------------------
91159570ffbe31930ab4d678754daaeec0715117a3dsewardj// And that's it!
91259570ffbe31930ab4d678754daaeec0715117a3dsewardj//----------------------------------------------------------------------
91359570ffbe31930ab4d678754daaeec0715117a3dsewardj
91459570ffbe31930ab4d678754daaeec0715117a3dsewardj#endif // __VKI_ARM_LINUX_H
91559570ffbe31930ab4d678754daaeec0715117a3dsewardj
91659570ffbe31930ab4d678754daaeec0715117a3dsewardj/*--------------------------------------------------------------------*/
91759570ffbe31930ab4d678754daaeec0715117a3dsewardj/*--- end                                          vki-arm-linux.h ---*/
91859570ffbe31930ab4d678754daaeec0715117a3dsewardj/*--------------------------------------------------------------------*/
919