diff options
Diffstat (limited to 'arch/arm/include/uapi')
| -rw-r--r-- | arch/arm/include/uapi/asm/Kbuild | 19 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/byteorder.h | 25 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/fcntl.h | 11 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/hwcap.h | 40 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/ioctls.h | 8 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/kvm.h | 211 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/kvm_para.h | 1 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/mman.h | 4 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/perf_regs.h | 23 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/posix_types.h | 37 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/ptrace.h | 157 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/setup.h | 187 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/sigcontext.h | 34 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/signal.h | 120 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/stat.h | 87 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/statfs.h | 12 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/swab.h | 53 | ||||
| -rw-r--r-- | arch/arm/include/uapi/asm/unistd.h | 454 | 
18 files changed, 1483 insertions, 0 deletions
diff --git a/arch/arm/include/uapi/asm/Kbuild b/arch/arm/include/uapi/asm/Kbuild new file mode 100644 index 00000000000..70a1c9da30c --- /dev/null +++ b/arch/arm/include/uapi/asm/Kbuild @@ -0,0 +1,19 @@ +# UAPI Header export list +include include/uapi/asm-generic/Kbuild.asm + +header-y += byteorder.h +header-y += fcntl.h +header-y += hwcap.h +header-y += ioctls.h +header-y += kvm_para.h +header-y += mman.h +header-y += perf_regs.h +header-y += posix_types.h +header-y += ptrace.h +header-y += setup.h +header-y += sigcontext.h +header-y += signal.h +header-y += stat.h +header-y += statfs.h +header-y += swab.h +header-y += unistd.h diff --git a/arch/arm/include/uapi/asm/byteorder.h b/arch/arm/include/uapi/asm/byteorder.h new file mode 100644 index 00000000000..77379748b17 --- /dev/null +++ b/arch/arm/include/uapi/asm/byteorder.h @@ -0,0 +1,25 @@ +/* + *  arch/arm/include/asm/byteorder.h + * + * ARM Endian-ness.  In little endian mode, the data bus is connected such + * that byte accesses appear as: + *  0 = d0...d7, 1 = d8...d15, 2 = d16...d23, 3 = d24...d31 + * and word accesses (data or instruction) appear as: + *  d0...d31 + * + * When in big endian mode, byte accesses appear as: + *  0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7 + * and word accesses (data or instruction) appear as: + *  d0...d31 + */ +#ifndef __ASM_ARM_BYTEORDER_H +#define __ASM_ARM_BYTEORDER_H + +#ifdef __ARMEB__ +#include <linux/byteorder/big_endian.h> +#else +#include <linux/byteorder/little_endian.h> +#endif + +#endif + diff --git a/arch/arm/include/uapi/asm/fcntl.h b/arch/arm/include/uapi/asm/fcntl.h new file mode 100644 index 00000000000..a80b6607b2e --- /dev/null +++ b/arch/arm/include/uapi/asm/fcntl.h @@ -0,0 +1,11 @@ +#ifndef _ARM_FCNTL_H +#define _ARM_FCNTL_H + +#define O_DIRECTORY	 040000	/* must be a directory */ +#define O_NOFOLLOW	0100000	/* don't follow links */ +#define O_DIRECT	0200000	/* direct disk access hint - currently ignored */ +#define O_LARGEFILE	0400000 + +#include <asm-generic/fcntl.h> + +#endif diff --git a/arch/arm/include/uapi/asm/hwcap.h b/arch/arm/include/uapi/asm/hwcap.h new file mode 100644 index 00000000000..20d12f230a2 --- /dev/null +++ b/arch/arm/include/uapi/asm/hwcap.h @@ -0,0 +1,40 @@ +#ifndef _UAPI__ASMARM_HWCAP_H +#define _UAPI__ASMARM_HWCAP_H + +/* + * HWCAP flags - for elf_hwcap (in kernel) and AT_HWCAP + */ +#define HWCAP_SWP	(1 << 0) +#define HWCAP_HALF	(1 << 1) +#define HWCAP_THUMB	(1 << 2) +#define HWCAP_26BIT	(1 << 3)	/* Play it safe */ +#define HWCAP_FAST_MULT	(1 << 4) +#define HWCAP_FPA	(1 << 5) +#define HWCAP_VFP	(1 << 6) +#define HWCAP_EDSP	(1 << 7) +#define HWCAP_JAVA	(1 << 8) +#define HWCAP_IWMMXT	(1 << 9) +#define HWCAP_CRUNCH	(1 << 10) +#define HWCAP_THUMBEE	(1 << 11) +#define HWCAP_NEON	(1 << 12) +#define HWCAP_VFPv3	(1 << 13) +#define HWCAP_VFPv3D16	(1 << 14)	/* also set for VFPv4-D16 */ +#define HWCAP_TLS	(1 << 15) +#define HWCAP_VFPv4	(1 << 16) +#define HWCAP_IDIVA	(1 << 17) +#define HWCAP_IDIVT	(1 << 18) +#define HWCAP_VFPD32	(1 << 19)	/* set if VFP has 32 regs (not 16) */ +#define HWCAP_IDIV	(HWCAP_IDIVA | HWCAP_IDIVT) +#define HWCAP_LPAE	(1 << 20) +#define HWCAP_EVTSTRM	(1 << 21) + +/* + * HWCAP2 flags - for elf_hwcap2 (in kernel) and AT_HWCAP2 + */ +#define HWCAP2_AES	(1 << 0) +#define HWCAP2_PMULL	(1 << 1) +#define HWCAP2_SHA1	(1 << 2) +#define HWCAP2_SHA2	(1 << 3) +#define HWCAP2_CRC32	(1 << 4) + +#endif /* _UAPI__ASMARM_HWCAP_H */ diff --git a/arch/arm/include/uapi/asm/ioctls.h b/arch/arm/include/uapi/asm/ioctls.h new file mode 100644 index 00000000000..9c962981612 --- /dev/null +++ b/arch/arm/include/uapi/asm/ioctls.h @@ -0,0 +1,8 @@ +#ifndef __ASM_ARM_IOCTLS_H +#define __ASM_ARM_IOCTLS_H + +#define FIOQSIZE	0x545E + +#include <asm-generic/ioctls.h> + +#endif diff --git a/arch/arm/include/uapi/asm/kvm.h b/arch/arm/include/uapi/asm/kvm.h new file mode 100644 index 00000000000..e6ebdd3471e --- /dev/null +++ b/arch/arm/include/uapi/asm/kvm.h @@ -0,0 +1,211 @@ +/* + * Copyright (C) 2012 - Virtual Open Systems and Columbia University + * Author: Christoffer Dall <c.dall@virtualopensystems.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. + */ + +#ifndef __ARM_KVM_H__ +#define __ARM_KVM_H__ + +#include <linux/types.h> +#include <linux/psci.h> +#include <asm/ptrace.h> + +#define __KVM_HAVE_GUEST_DEBUG +#define __KVM_HAVE_IRQ_LINE + +#define KVM_REG_SIZE(id)						\ +	(1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) + +/* Valid for svc_regs, abt_regs, und_regs, irq_regs in struct kvm_regs */ +#define KVM_ARM_SVC_sp		svc_regs[0] +#define KVM_ARM_SVC_lr		svc_regs[1] +#define KVM_ARM_SVC_spsr	svc_regs[2] +#define KVM_ARM_ABT_sp		abt_regs[0] +#define KVM_ARM_ABT_lr		abt_regs[1] +#define KVM_ARM_ABT_spsr	abt_regs[2] +#define KVM_ARM_UND_sp		und_regs[0] +#define KVM_ARM_UND_lr		und_regs[1] +#define KVM_ARM_UND_spsr	und_regs[2] +#define KVM_ARM_IRQ_sp		irq_regs[0] +#define KVM_ARM_IRQ_lr		irq_regs[1] +#define KVM_ARM_IRQ_spsr	irq_regs[2] + +/* Valid only for fiq_regs in struct kvm_regs */ +#define KVM_ARM_FIQ_r8		fiq_regs[0] +#define KVM_ARM_FIQ_r9		fiq_regs[1] +#define KVM_ARM_FIQ_r10		fiq_regs[2] +#define KVM_ARM_FIQ_fp		fiq_regs[3] +#define KVM_ARM_FIQ_ip		fiq_regs[4] +#define KVM_ARM_FIQ_sp		fiq_regs[5] +#define KVM_ARM_FIQ_lr		fiq_regs[6] +#define KVM_ARM_FIQ_spsr	fiq_regs[7] + +struct kvm_regs { +	struct pt_regs usr_regs;	/* R0_usr - R14_usr, PC, CPSR */ +	unsigned long svc_regs[3];	/* SP_svc, LR_svc, SPSR_svc */ +	unsigned long abt_regs[3];	/* SP_abt, LR_abt, SPSR_abt */ +	unsigned long und_regs[3];	/* SP_und, LR_und, SPSR_und */ +	unsigned long irq_regs[3];	/* SP_irq, LR_irq, SPSR_irq */ +	unsigned long fiq_regs[8];	/* R8_fiq - R14_fiq, SPSR_fiq */ +}; + +/* Supported Processor Types */ +#define KVM_ARM_TARGET_CORTEX_A15	0 +#define KVM_ARM_TARGET_CORTEX_A7	1 +#define KVM_ARM_NUM_TARGETS		2 + +/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */ +#define KVM_ARM_DEVICE_TYPE_SHIFT	0 +#define KVM_ARM_DEVICE_TYPE_MASK	(0xffff << KVM_ARM_DEVICE_TYPE_SHIFT) +#define KVM_ARM_DEVICE_ID_SHIFT		16 +#define KVM_ARM_DEVICE_ID_MASK		(0xffff << KVM_ARM_DEVICE_ID_SHIFT) + +/* Supported device IDs */ +#define KVM_ARM_DEVICE_VGIC_V2		0 + +/* Supported VGIC address types  */ +#define KVM_VGIC_V2_ADDR_TYPE_DIST	0 +#define KVM_VGIC_V2_ADDR_TYPE_CPU	1 + +#define KVM_VGIC_V2_DIST_SIZE		0x1000 +#define KVM_VGIC_V2_CPU_SIZE		0x2000 + +#define KVM_ARM_VCPU_POWER_OFF		0 /* CPU is started in OFF state */ +#define KVM_ARM_VCPU_PSCI_0_2		1 /* CPU uses PSCI v0.2 */ + +struct kvm_vcpu_init { +	__u32 target; +	__u32 features[7]; +}; + +struct kvm_sregs { +}; + +struct kvm_fpu { +}; + +struct kvm_guest_debug_arch { +}; + +struct kvm_debug_exit_arch { +}; + +struct kvm_sync_regs { +}; + +struct kvm_arch_memory_slot { +}; + +/* If you need to interpret the index values, here is the key: */ +#define KVM_REG_ARM_COPROC_MASK		0x000000000FFF0000 +#define KVM_REG_ARM_COPROC_SHIFT	16 +#define KVM_REG_ARM_32_OPC2_MASK	0x0000000000000007 +#define KVM_REG_ARM_32_OPC2_SHIFT	0 +#define KVM_REG_ARM_OPC1_MASK		0x0000000000000078 +#define KVM_REG_ARM_OPC1_SHIFT		3 +#define KVM_REG_ARM_CRM_MASK		0x0000000000000780 +#define KVM_REG_ARM_CRM_SHIFT		7 +#define KVM_REG_ARM_32_CRN_MASK		0x0000000000007800 +#define KVM_REG_ARM_32_CRN_SHIFT	11 + +#define ARM_CP15_REG_SHIFT_MASK(x,n) \ +	(((x) << KVM_REG_ARM_ ## n ## _SHIFT) & KVM_REG_ARM_ ## n ## _MASK) + +#define __ARM_CP15_REG(op1,crn,crm,op2) \ +	(KVM_REG_ARM | (15 << KVM_REG_ARM_COPROC_SHIFT) | \ +	ARM_CP15_REG_SHIFT_MASK(op1, OPC1) | \ +	ARM_CP15_REG_SHIFT_MASK(crn, 32_CRN) | \ +	ARM_CP15_REG_SHIFT_MASK(crm, CRM) | \ +	ARM_CP15_REG_SHIFT_MASK(op2, 32_OPC2)) + +#define ARM_CP15_REG32(...) (__ARM_CP15_REG(__VA_ARGS__) | KVM_REG_SIZE_U32) + +#define __ARM_CP15_REG64(op1,crm) \ +	(__ARM_CP15_REG(op1, 0, crm, 0) | KVM_REG_SIZE_U64) +#define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__) + +#define KVM_REG_ARM_TIMER_CTL		ARM_CP15_REG32(0, 14, 3, 1) +#define KVM_REG_ARM_TIMER_CNT		ARM_CP15_REG64(1, 14)  +#define KVM_REG_ARM_TIMER_CVAL		ARM_CP15_REG64(3, 14)  + +/* Normal registers are mapped as coprocessor 16. */ +#define KVM_REG_ARM_CORE		(0x0010 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_CORE_REG(name)	(offsetof(struct kvm_regs, name) / 4) + +/* Some registers need more space to represent values. */ +#define KVM_REG_ARM_DEMUX		(0x0011 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_DEMUX_ID_MASK	0x000000000000FF00 +#define KVM_REG_ARM_DEMUX_ID_SHIFT	8 +#define KVM_REG_ARM_DEMUX_ID_CCSIDR	(0x00 << KVM_REG_ARM_DEMUX_ID_SHIFT) +#define KVM_REG_ARM_DEMUX_VAL_MASK	0x00000000000000FF +#define KVM_REG_ARM_DEMUX_VAL_SHIFT	0 + +/* VFP registers: we could overload CP10 like ARM does, but that's ugly. */ +#define KVM_REG_ARM_VFP			(0x0012 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_VFP_MASK		0x000000000000FFFF +#define KVM_REG_ARM_VFP_BASE_REG	0x0 +#define KVM_REG_ARM_VFP_FPSID		0x1000 +#define KVM_REG_ARM_VFP_FPSCR		0x1001 +#define KVM_REG_ARM_VFP_MVFR1		0x1006 +#define KVM_REG_ARM_VFP_MVFR0		0x1007 +#define KVM_REG_ARM_VFP_FPEXC		0x1008 +#define KVM_REG_ARM_VFP_FPINST		0x1009 +#define KVM_REG_ARM_VFP_FPINST2		0x100A + +/* Device Control API: ARM VGIC */ +#define KVM_DEV_ARM_VGIC_GRP_ADDR	0 +#define KVM_DEV_ARM_VGIC_GRP_DIST_REGS	1 +#define KVM_DEV_ARM_VGIC_GRP_CPU_REGS	2 +#define   KVM_DEV_ARM_VGIC_CPUID_SHIFT	32 +#define   KVM_DEV_ARM_VGIC_CPUID_MASK	(0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT) +#define   KVM_DEV_ARM_VGIC_OFFSET_SHIFT	0 +#define   KVM_DEV_ARM_VGIC_OFFSET_MASK	(0xffffffffULL << KVM_DEV_ARM_VGIC_OFFSET_SHIFT) + +/* KVM_IRQ_LINE irq field index values */ +#define KVM_ARM_IRQ_TYPE_SHIFT		24 +#define KVM_ARM_IRQ_TYPE_MASK		0xff +#define KVM_ARM_IRQ_VCPU_SHIFT		16 +#define KVM_ARM_IRQ_VCPU_MASK		0xff +#define KVM_ARM_IRQ_NUM_SHIFT		0 +#define KVM_ARM_IRQ_NUM_MASK		0xffff + +/* irq_type field */ +#define KVM_ARM_IRQ_TYPE_CPU		0 +#define KVM_ARM_IRQ_TYPE_SPI		1 +#define KVM_ARM_IRQ_TYPE_PPI		2 + +/* out-of-kernel GIC cpu interrupt injection irq_number field */ +#define KVM_ARM_IRQ_CPU_IRQ		0 +#define KVM_ARM_IRQ_CPU_FIQ		1 + +/* Highest supported SPI, from VGIC_NR_IRQS */ +#define KVM_ARM_IRQ_GIC_MAX		127 + +/* PSCI interface */ +#define KVM_PSCI_FN_BASE		0x95c1ba5e +#define KVM_PSCI_FN(n)			(KVM_PSCI_FN_BASE + (n)) + +#define KVM_PSCI_FN_CPU_SUSPEND		KVM_PSCI_FN(0) +#define KVM_PSCI_FN_CPU_OFF		KVM_PSCI_FN(1) +#define KVM_PSCI_FN_CPU_ON		KVM_PSCI_FN(2) +#define KVM_PSCI_FN_MIGRATE		KVM_PSCI_FN(3) + +#define KVM_PSCI_RET_SUCCESS		PSCI_RET_SUCCESS +#define KVM_PSCI_RET_NI			PSCI_RET_NOT_SUPPORTED +#define KVM_PSCI_RET_INVAL		PSCI_RET_INVALID_PARAMS +#define KVM_PSCI_RET_DENIED		PSCI_RET_DENIED + +#endif /* __ARM_KVM_H__ */ diff --git a/arch/arm/include/uapi/asm/kvm_para.h b/arch/arm/include/uapi/asm/kvm_para.h new file mode 100644 index 00000000000..14fab8f0b95 --- /dev/null +++ b/arch/arm/include/uapi/asm/kvm_para.h @@ -0,0 +1 @@ +#include <asm-generic/kvm_para.h> diff --git a/arch/arm/include/uapi/asm/mman.h b/arch/arm/include/uapi/asm/mman.h new file mode 100644 index 00000000000..41f99c573b9 --- /dev/null +++ b/arch/arm/include/uapi/asm/mman.h @@ -0,0 +1,4 @@ +#include <asm-generic/mman.h> + +#define arch_mmap_check(addr, len, flags) \ +	(((flags) & MAP_FIXED && (addr) < FIRST_USER_ADDRESS) ? -EINVAL : 0) diff --git a/arch/arm/include/uapi/asm/perf_regs.h b/arch/arm/include/uapi/asm/perf_regs.h new file mode 100644 index 00000000000..ce59448458b --- /dev/null +++ b/arch/arm/include/uapi/asm/perf_regs.h @@ -0,0 +1,23 @@ +#ifndef _ASM_ARM_PERF_REGS_H +#define _ASM_ARM_PERF_REGS_H + +enum perf_event_arm_regs { +	PERF_REG_ARM_R0, +	PERF_REG_ARM_R1, +	PERF_REG_ARM_R2, +	PERF_REG_ARM_R3, +	PERF_REG_ARM_R4, +	PERF_REG_ARM_R5, +	PERF_REG_ARM_R6, +	PERF_REG_ARM_R7, +	PERF_REG_ARM_R8, +	PERF_REG_ARM_R9, +	PERF_REG_ARM_R10, +	PERF_REG_ARM_FP, +	PERF_REG_ARM_IP, +	PERF_REG_ARM_SP, +	PERF_REG_ARM_LR, +	PERF_REG_ARM_PC, +	PERF_REG_ARM_MAX, +}; +#endif /* _ASM_ARM_PERF_REGS_H */ diff --git a/arch/arm/include/uapi/asm/posix_types.h b/arch/arm/include/uapi/asm/posix_types.h new file mode 100644 index 00000000000..d2de9cbbcd9 --- /dev/null +++ b/arch/arm/include/uapi/asm/posix_types.h @@ -0,0 +1,37 @@ +/* + *  arch/arm/include/asm/posix_types.h + * + *  Copyright (C) 1996-1998 Russell King. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + *  Changelog: + *   27-06-1996	RMK	Created + */ +#ifndef __ARCH_ARM_POSIX_TYPES_H +#define __ARCH_ARM_POSIX_TYPES_H + +/* + * This file is generally used by user-level software, so you need to + * be a little careful about namespace pollution etc.  Also, we cannot + * assume GCC is being used. + */ + +typedef unsigned short		__kernel_mode_t; +#define __kernel_mode_t __kernel_mode_t + +typedef unsigned short		__kernel_ipc_pid_t; +#define __kernel_ipc_pid_t __kernel_ipc_pid_t + +typedef unsigned short		__kernel_uid_t; +typedef unsigned short		__kernel_gid_t; +#define __kernel_uid_t __kernel_uid_t + +typedef unsigned short		__kernel_old_dev_t; +#define __kernel_old_dev_t __kernel_old_dev_t + +#include <asm-generic/posix_types.h> + +#endif diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm/ptrace.h new file mode 100644 index 00000000000..5af0ed1b825 --- /dev/null +++ b/arch/arm/include/uapi/asm/ptrace.h @@ -0,0 +1,157 @@ +/* + *  arch/arm/include/asm/ptrace.h + * + *  Copyright (C) 1996-2003 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef _UAPI__ASM_ARM_PTRACE_H +#define _UAPI__ASM_ARM_PTRACE_H + +#include <asm/hwcap.h> + +#define PTRACE_GETREGS		12 +#define PTRACE_SETREGS		13 +#define PTRACE_GETFPREGS	14 +#define PTRACE_SETFPREGS	15 +/* PTRACE_ATTACH is 16 */ +/* PTRACE_DETACH is 17 */ +#define PTRACE_GETWMMXREGS	18 +#define PTRACE_SETWMMXREGS	19 +/* 20 is unused */ +#define PTRACE_OLDSETOPTIONS	21 +#define PTRACE_GET_THREAD_AREA	22 +#define PTRACE_SET_SYSCALL	23 +/* PTRACE_SYSCALL is 24 */ +#define PTRACE_GETCRUNCHREGS	25 +#define PTRACE_SETCRUNCHREGS	26 +#define PTRACE_GETVFPREGS	27 +#define PTRACE_SETVFPREGS	28 +#define PTRACE_GETHBPREGS	29 +#define PTRACE_SETHBPREGS	30 + +/* + * PSR bits + * Note on V7M there is no mode contained in the PSR + */ +#define USR26_MODE	0x00000000 +#define FIQ26_MODE	0x00000001 +#define IRQ26_MODE	0x00000002 +#define SVC26_MODE	0x00000003 +#if defined(__KERNEL__) && defined(CONFIG_CPU_V7M) +/* + * Use 0 here to get code right that creates a userspace + * or kernel space thread. + */ +#define USR_MODE	0x00000000 +#define SVC_MODE	0x00000000 +#else +#define USR_MODE	0x00000010 +#define SVC_MODE	0x00000013 +#endif +#define FIQ_MODE	0x00000011 +#define IRQ_MODE	0x00000012 +#define ABT_MODE	0x00000017 +#define HYP_MODE	0x0000001a +#define UND_MODE	0x0000001b +#define SYSTEM_MODE	0x0000001f +#define MODE32_BIT	0x00000010 +#define MODE_MASK	0x0000001f + +#define V4_PSR_T_BIT	0x00000020	/* >= V4T, but not V7M */ +#define V7M_PSR_T_BIT	0x01000000 +#if defined(__KERNEL__) && defined(CONFIG_CPU_V7M) +#define PSR_T_BIT	V7M_PSR_T_BIT +#else +/* for compatibility */ +#define PSR_T_BIT	V4_PSR_T_BIT +#endif + +#define PSR_F_BIT	0x00000040	/* >= V4, but not V7M */ +#define PSR_I_BIT	0x00000080	/* >= V4, but not V7M */ +#define PSR_A_BIT	0x00000100	/* >= V6, but not V7M */ +#define PSR_E_BIT	0x00000200	/* >= V6, but not V7M */ +#define PSR_J_BIT	0x01000000	/* >= V5J, but not V7M */ +#define PSR_Q_BIT	0x08000000	/* >= V5E, including V7M */ +#define PSR_V_BIT	0x10000000 +#define PSR_C_BIT	0x20000000 +#define PSR_Z_BIT	0x40000000 +#define PSR_N_BIT	0x80000000 + +/* + * Groups of PSR bits + */ +#define PSR_f		0xff000000	/* Flags		*/ +#define PSR_s		0x00ff0000	/* Status		*/ +#define PSR_x		0x0000ff00	/* Extension		*/ +#define PSR_c		0x000000ff	/* Control		*/ + +/* + * ARMv7 groups of PSR bits + */ +#define APSR_MASK	0xf80f0000	/* N, Z, C, V, Q and GE flags */ +#define PSR_ISET_MASK	0x01000010	/* ISA state (J, T) mask */ +#define PSR_IT_MASK	0x0600fc00	/* If-Then execution state mask */ +#define PSR_ENDIAN_MASK	0x00000200	/* Endianness state mask */ + +/* + * Default endianness state + */ +#ifdef CONFIG_CPU_ENDIAN_BE8 +#define PSR_ENDSTATE	PSR_E_BIT +#else +#define PSR_ENDSTATE	0 +#endif + +/*  + * These are 'magic' values for PTRACE_PEEKUSR that return info about where a + * process is located in memory. + */ +#define PT_TEXT_ADDR		0x10000 +#define PT_DATA_ADDR		0x10004 +#define PT_TEXT_END_ADDR	0x10008 + +#ifndef __ASSEMBLY__ + +/* + * This struct defines the way the registers are stored on the + * stack during a system call.  Note that sizeof(struct pt_regs) + * has to be a multiple of 8. + */ +#ifndef __KERNEL__ +struct pt_regs { +	long uregs[18]; +}; +#endif /* __KERNEL__ */ + +#define ARM_cpsr	uregs[16] +#define ARM_pc		uregs[15] +#define ARM_lr		uregs[14] +#define ARM_sp		uregs[13] +#define ARM_ip		uregs[12] +#define ARM_fp		uregs[11] +#define ARM_r10		uregs[10] +#define ARM_r9		uregs[9] +#define ARM_r8		uregs[8] +#define ARM_r7		uregs[7] +#define ARM_r6		uregs[6] +#define ARM_r5		uregs[5] +#define ARM_r4		uregs[4] +#define ARM_r3		uregs[3] +#define ARM_r2		uregs[2] +#define ARM_r1		uregs[1] +#define ARM_r0		uregs[0] +#define ARM_ORIG_r0	uregs[17] + +/* + * The size of the user-visible VFP state as seen by PTRACE_GET/SETVFPREGS + * and core dumps. + */ +#define ARM_VFPREGS_SIZE ( 32 * 8 /*fpregs*/ + 4 /*fpscr*/ ) + + +#endif /* __ASSEMBLY__ */ + +#endif /* _UAPI__ASM_ARM_PTRACE_H */ diff --git a/arch/arm/include/uapi/asm/setup.h b/arch/arm/include/uapi/asm/setup.h new file mode 100644 index 00000000000..979ff401640 --- /dev/null +++ b/arch/arm/include/uapi/asm/setup.h @@ -0,0 +1,187 @@ +/* + *  linux/include/asm/setup.h + * + *  Copyright (C) 1997-1999 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + *  Structure passed to kernel to tell it about the + *  hardware it's running on.  See Documentation/arm/Setup + *  for more info. + */ +#ifndef _UAPI__ASMARM_SETUP_H +#define _UAPI__ASMARM_SETUP_H + +#include <linux/types.h> + +#define COMMAND_LINE_SIZE 1024 + +/* The list ends with an ATAG_NONE node. */ +#define ATAG_NONE	0x00000000 + +struct tag_header { +	__u32 size; +	__u32 tag; +}; + +/* The list must start with an ATAG_CORE node */ +#define ATAG_CORE	0x54410001 + +struct tag_core { +	__u32 flags;		/* bit 0 = read-only */ +	__u32 pagesize; +	__u32 rootdev; +}; + +/* it is allowed to have multiple ATAG_MEM nodes */ +#define ATAG_MEM	0x54410002 + +struct tag_mem32 { +	__u32	size; +	__u32	start;	/* physical start address */ +}; + +/* VGA text type displays */ +#define ATAG_VIDEOTEXT	0x54410003 + +struct tag_videotext { +	__u8		x; +	__u8		y; +	__u16		video_page; +	__u8		video_mode; +	__u8		video_cols; +	__u16		video_ega_bx; +	__u8		video_lines; +	__u8		video_isvga; +	__u16		video_points; +}; + +/* describes how the ramdisk will be used in kernel */ +#define ATAG_RAMDISK	0x54410004 + +struct tag_ramdisk { +	__u32 flags;	/* bit 0 = load, bit 1 = prompt */ +	__u32 size;	/* decompressed ramdisk size in _kilo_ bytes */ +	__u32 start;	/* starting block of floppy-based RAM disk image */ +}; + +/* describes where the compressed ramdisk image lives (virtual address) */ +/* + * this one accidentally used virtual addresses - as such, + * it's deprecated. + */ +#define ATAG_INITRD	0x54410005 + +/* describes where the compressed ramdisk image lives (physical address) */ +#define ATAG_INITRD2	0x54420005 + +struct tag_initrd { +	__u32 start;	/* physical start address */ +	__u32 size;	/* size of compressed ramdisk image in bytes */ +}; + +/* board serial number. "64 bits should be enough for everybody" */ +#define ATAG_SERIAL	0x54410006 + +struct tag_serialnr { +	__u32 low; +	__u32 high; +}; + +/* board revision */ +#define ATAG_REVISION	0x54410007 + +struct tag_revision { +	__u32 rev; +}; + +/* initial values for vesafb-type framebuffers. see struct screen_info + * in include/linux/tty.h + */ +#define ATAG_VIDEOLFB	0x54410008 + +struct tag_videolfb { +	__u16		lfb_width; +	__u16		lfb_height; +	__u16		lfb_depth; +	__u16		lfb_linelength; +	__u32		lfb_base; +	__u32		lfb_size; +	__u8		red_size; +	__u8		red_pos; +	__u8		green_size; +	__u8		green_pos; +	__u8		blue_size; +	__u8		blue_pos; +	__u8		rsvd_size; +	__u8		rsvd_pos; +}; + +/* command line: \0 terminated string */ +#define ATAG_CMDLINE	0x54410009 + +struct tag_cmdline { +	char	cmdline[1];	/* this is the minimum size */ +}; + +/* acorn RiscPC specific information */ +#define ATAG_ACORN	0x41000101 + +struct tag_acorn { +	__u32 memc_control_reg; +	__u32 vram_pages; +	__u8 sounddefault; +	__u8 adfsdrives; +}; + +/* footbridge memory clock, see arch/arm/mach-footbridge/arch.c */ +#define ATAG_MEMCLK	0x41000402 + +struct tag_memclk { +	__u32 fmemclk; +}; + +struct tag { +	struct tag_header hdr; +	union { +		struct tag_core		core; +		struct tag_mem32	mem; +		struct tag_videotext	videotext; +		struct tag_ramdisk	ramdisk; +		struct tag_initrd	initrd; +		struct tag_serialnr	serialnr; +		struct tag_revision	revision; +		struct tag_videolfb	videolfb; +		struct tag_cmdline	cmdline; + +		/* +		 * Acorn specific +		 */ +		struct tag_acorn	acorn; + +		/* +		 * DC21285 specific +		 */ +		struct tag_memclk	memclk; +	} u; +}; + +struct tagtable { +	__u32 tag; +	int (*parse)(const struct tag *); +}; + +#define tag_member_present(tag,member)				\ +	((unsigned long)(&((struct tag *)0L)->member + 1)	\ +		<= (tag)->hdr.size * 4) + +#define tag_next(t)	((struct tag *)((__u32 *)(t) + (t)->hdr.size)) +#define tag_size(type)	((sizeof(struct tag_header) + sizeof(struct type)) >> 2) + +#define for_each_tag(t,base)		\ +	for (t = base; t->hdr.size; t = tag_next(t)) + + +#endif /* _UAPI__ASMARM_SETUP_H */ diff --git a/arch/arm/include/uapi/asm/sigcontext.h b/arch/arm/include/uapi/asm/sigcontext.h new file mode 100644 index 00000000000..fc0b80b6a6f --- /dev/null +++ b/arch/arm/include/uapi/asm/sigcontext.h @@ -0,0 +1,34 @@ +#ifndef _ASMARM_SIGCONTEXT_H +#define _ASMARM_SIGCONTEXT_H + +/* + * Signal context structure - contains all info to do with the state + * before the signal handler was invoked.  Note: only add new entries + * to the end of the structure. + */ +struct sigcontext { +	unsigned long trap_no; +	unsigned long error_code; +	unsigned long oldmask; +	unsigned long arm_r0; +	unsigned long arm_r1; +	unsigned long arm_r2; +	unsigned long arm_r3; +	unsigned long arm_r4; +	unsigned long arm_r5; +	unsigned long arm_r6; +	unsigned long arm_r7; +	unsigned long arm_r8; +	unsigned long arm_r9; +	unsigned long arm_r10; +	unsigned long arm_fp; +	unsigned long arm_ip; +	unsigned long arm_sp; +	unsigned long arm_lr; +	unsigned long arm_pc; +	unsigned long arm_cpsr; +	unsigned long fault_address; +}; + + +#endif diff --git a/arch/arm/include/uapi/asm/signal.h b/arch/arm/include/uapi/asm/signal.h new file mode 100644 index 00000000000..33073bdcf09 --- /dev/null +++ b/arch/arm/include/uapi/asm/signal.h @@ -0,0 +1,120 @@ +#ifndef _UAPI_ASMARM_SIGNAL_H +#define _UAPI_ASMARM_SIGNAL_H + +#include <linux/types.h> + +/* Avoid too many header ordering problems.  */ +struct siginfo; + +#ifndef __KERNEL__ +/* Here we must cater to libcs that poke about in kernel headers.  */ + +#define NSIG		32 +typedef unsigned long sigset_t; + +#endif /* __KERNEL__ */ + +#define SIGHUP		 1 +#define SIGINT		 2 +#define SIGQUIT		 3 +#define SIGILL		 4 +#define SIGTRAP		 5 +#define SIGABRT		 6 +#define SIGIOT		 6 +#define SIGBUS		 7 +#define SIGFPE		 8 +#define SIGKILL		 9 +#define SIGUSR1		10 +#define SIGSEGV		11 +#define SIGUSR2		12 +#define SIGPIPE		13 +#define SIGALRM		14 +#define SIGTERM		15 +#define SIGSTKFLT	16 +#define SIGCHLD		17 +#define SIGCONT		18 +#define SIGSTOP		19 +#define SIGTSTP		20 +#define SIGTTIN		21 +#define SIGTTOU		22 +#define SIGURG		23 +#define SIGXCPU		24 +#define SIGXFSZ		25 +#define SIGVTALRM	26 +#define SIGPROF		27 +#define SIGWINCH	28 +#define SIGIO		29 +#define SIGPOLL		SIGIO +/* +#define SIGLOST		29 +*/ +#define SIGPWR		30 +#define SIGSYS		31 +#define	SIGUNUSED	31 + +/* These should not be considered constants from userland.  */ +#define SIGRTMIN	32 +#define SIGRTMAX	_NSIG + +#define SIGSWI		32 + +/* + * SA_FLAGS values: + * + * SA_NOCLDSTOP		flag to turn off SIGCHLD when children stop. + * SA_NOCLDWAIT		flag on SIGCHLD to inhibit zombies. + * SA_SIGINFO		deliver the signal with SIGINFO structs + * SA_THIRTYTWO		delivers the signal in 32-bit mode, even if the task  + *			is running in 26-bit. + * SA_ONSTACK		allows alternate signal stacks (see sigaltstack(2)). + * SA_RESTART		flag to get restarting signals (which were the default long ago) + * SA_NODEFER		prevents the current signal from being masked in the handler. + * SA_RESETHAND		clears the handler when the signal is delivered. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ +#define SA_NOCLDSTOP	0x00000001 +#define SA_NOCLDWAIT	0x00000002 +#define SA_SIGINFO	0x00000004 +#define SA_THIRTYTWO	0x02000000 +#define SA_RESTORER	0x04000000 +#define SA_ONSTACK	0x08000000 +#define SA_RESTART	0x10000000 +#define SA_NODEFER	0x40000000 +#define SA_RESETHAND	0x80000000 + +#define SA_NOMASK	SA_NODEFER +#define SA_ONESHOT	SA_RESETHAND + +#define MINSIGSTKSZ	2048 +#define SIGSTKSZ	8192 + +#include <asm-generic/signal-defs.h> + +#ifndef __KERNEL__ +/* Here we must cater to libcs that poke about in kernel headers.  */ + +struct sigaction { +	union { +	  __sighandler_t _sa_handler; +	  void (*_sa_sigaction)(int, struct siginfo *, void *); +	} _u; +	sigset_t sa_mask; +	unsigned long sa_flags; +	void (*sa_restorer)(void); +}; + +#define sa_handler	_u._sa_handler +#define sa_sigaction	_u._sa_sigaction + +#endif /* __KERNEL__ */ + +typedef struct sigaltstack { +	void __user *ss_sp; +	int ss_flags; +	size_t ss_size; +} stack_t; + + +#endif /* _UAPI_ASMARM_SIGNAL_H */ diff --git a/arch/arm/include/uapi/asm/stat.h b/arch/arm/include/uapi/asm/stat.h new file mode 100644 index 00000000000..42c0c13999d --- /dev/null +++ b/arch/arm/include/uapi/asm/stat.h @@ -0,0 +1,87 @@ +#ifndef _ASMARM_STAT_H +#define _ASMARM_STAT_H + +struct __old_kernel_stat { +	unsigned short st_dev; +	unsigned short st_ino; +	unsigned short st_mode; +	unsigned short st_nlink; +	unsigned short st_uid; +	unsigned short st_gid; +	unsigned short st_rdev; +	unsigned long  st_size; +	unsigned long  st_atime; +	unsigned long  st_mtime; +	unsigned long  st_ctime; +}; + +#define STAT_HAVE_NSEC  + +struct stat { +#if defined(__ARMEB__) +	unsigned short st_dev; +	unsigned short __pad1; +#else +	unsigned long  st_dev; +#endif +	unsigned long  st_ino; +	unsigned short st_mode; +	unsigned short st_nlink; +	unsigned short st_uid; +	unsigned short st_gid; +#if defined(__ARMEB__) +	unsigned short st_rdev; +	unsigned short __pad2; +#else +	unsigned long  st_rdev; +#endif +	unsigned long  st_size; +	unsigned long  st_blksize; +	unsigned long  st_blocks; +	unsigned long  st_atime; +	unsigned long  st_atime_nsec; +	unsigned long  st_mtime; +	unsigned long  st_mtime_nsec; +	unsigned long  st_ctime; +	unsigned long  st_ctime_nsec; +	unsigned long  __unused4; +	unsigned long  __unused5; +}; + +/* This matches struct stat64 in glibc2.1, hence the absolutely + * insane amounts of padding around dev_t's. + * Note: The kernel zero's the padded region because glibc might read them + * in the hope that the kernel has stretched to using larger sizes. + */ +struct stat64 { +	unsigned long long	st_dev; +	unsigned char   __pad0[4]; + +#define STAT64_HAS_BROKEN_ST_INO	1 +	unsigned long	__st_ino; +	unsigned int	st_mode; +	unsigned int	st_nlink; + +	unsigned long	st_uid; +	unsigned long	st_gid; + +	unsigned long long	st_rdev; +	unsigned char   __pad3[4]; + +	long long	st_size; +	unsigned long	st_blksize; +	unsigned long long st_blocks;	/* Number 512-byte blocks allocated. */ + +	unsigned long	st_atime; +	unsigned long	st_atime_nsec; + +	unsigned long	st_mtime; +	unsigned long	st_mtime_nsec; + +	unsigned long	st_ctime; +	unsigned long	st_ctime_nsec; + +	unsigned long long	st_ino; +}; + +#endif diff --git a/arch/arm/include/uapi/asm/statfs.h b/arch/arm/include/uapi/asm/statfs.h new file mode 100644 index 00000000000..079447c05ba --- /dev/null +++ b/arch/arm/include/uapi/asm/statfs.h @@ -0,0 +1,12 @@ +#ifndef _ASMARM_STATFS_H +#define _ASMARM_STATFS_H + +/* + * With EABI there is 4 bytes of padding added to this structure. + * Let's pack it so the padding goes away to simplify dual ABI support. + * Note that user space does NOT have to pack this structure. + */ +#define ARCH_PACK_STATFS64 __attribute__((packed,aligned(4))) + +#include <asm-generic/statfs.h> +#endif diff --git a/arch/arm/include/uapi/asm/swab.h b/arch/arm/include/uapi/asm/swab.h new file mode 100644 index 00000000000..6fcb32a5c45 --- /dev/null +++ b/arch/arm/include/uapi/asm/swab.h @@ -0,0 +1,53 @@ +/* + *  arch/arm/include/asm/byteorder.h + * + * ARM Endian-ness.  In little endian mode, the data bus is connected such + * that byte accesses appear as: + *  0 = d0...d7, 1 = d8...d15, 2 = d16...d23, 3 = d24...d31 + * and word accesses (data or instruction) appear as: + *  d0...d31 + * + * When in big endian mode, byte accesses appear as: + *  0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7 + * and word accesses (data or instruction) appear as: + *  d0...d31 + */ +#ifndef _UAPI__ASM_ARM_SWAB_H +#define _UAPI__ASM_ARM_SWAB_H + +#include <linux/compiler.h> +#include <linux/types.h> + +#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) +#  define __SWAB_64_THRU_32__ +#endif + + +#if !defined(__KERNEL__) || __LINUX_ARM_ARCH__ < 6 +static inline __attribute_const__ __u32 __arch_swab32(__u32 x) +{ +	__u32 t; + +#ifndef __thumb__ +	if (!__builtin_constant_p(x)) { +		/* +		 * The compiler needs a bit of a hint here to always do the +		 * right thing and not screw it up to different degrees +		 * depending on the gcc version. +		 */ +		asm ("eor\t%0, %1, %1, ror #16" : "=r" (t) : "r" (x)); +	} else +#endif +		t = x ^ ((x << 16) | (x >> 16)); /* eor r1,r0,r0,ror #16 */ + +	x = (x << 24) | (x >> 8);		/* mov r0,r0,ror #8      */ +	t &= ~0x00FF0000;			/* bic r1,r1,#0x00FF0000 */ +	x ^= (t >> 8);				/* eor r0,r0,r1,lsr #8   */ + +	return x; +} +#define __arch_swab32 __arch_swab32 + +#endif + +#endif /* _UAPI__ASM_ARM_SWAB_H */ diff --git a/arch/arm/include/uapi/asm/unistd.h b/arch/arm/include/uapi/asm/unistd.h new file mode 100644 index 00000000000..ba94446c72d --- /dev/null +++ b/arch/arm/include/uapi/asm/unistd.h @@ -0,0 +1,454 @@ +/* + *  arch/arm/include/asm/unistd.h + * + *  Copyright (C) 2001-2005 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Please forward _all_ changes to this file to rmk@arm.linux.org.uk, + * no matter what the change is.  Thanks! + */ +#ifndef _UAPI__ASM_ARM_UNISTD_H +#define _UAPI__ASM_ARM_UNISTD_H + +#define __NR_OABI_SYSCALL_BASE	0x900000 + +#if defined(__thumb__) || defined(__ARM_EABI__) +#define __NR_SYSCALL_BASE	0 +#else +#define __NR_SYSCALL_BASE	__NR_OABI_SYSCALL_BASE +#endif + +/* + * This file contains the system call numbers. + */ + +#define __NR_restart_syscall		(__NR_SYSCALL_BASE+  0) +#define __NR_exit			(__NR_SYSCALL_BASE+  1) +#define __NR_fork			(__NR_SYSCALL_BASE+  2) +#define __NR_read			(__NR_SYSCALL_BASE+  3) +#define __NR_write			(__NR_SYSCALL_BASE+  4) +#define __NR_open			(__NR_SYSCALL_BASE+  5) +#define __NR_close			(__NR_SYSCALL_BASE+  6) +					/* 7 was sys_waitpid */ +#define __NR_creat			(__NR_SYSCALL_BASE+  8) +#define __NR_link			(__NR_SYSCALL_BASE+  9) +#define __NR_unlink			(__NR_SYSCALL_BASE+ 10) +#define __NR_execve			(__NR_SYSCALL_BASE+ 11) +#define __NR_chdir			(__NR_SYSCALL_BASE+ 12) +#define __NR_time			(__NR_SYSCALL_BASE+ 13) +#define __NR_mknod			(__NR_SYSCALL_BASE+ 14) +#define __NR_chmod			(__NR_SYSCALL_BASE+ 15) +#define __NR_lchown			(__NR_SYSCALL_BASE+ 16) +					/* 17 was sys_break */ +					/* 18 was sys_stat */ +#define __NR_lseek			(__NR_SYSCALL_BASE+ 19) +#define __NR_getpid			(__NR_SYSCALL_BASE+ 20) +#define __NR_mount			(__NR_SYSCALL_BASE+ 21) +#define __NR_umount			(__NR_SYSCALL_BASE+ 22) +#define __NR_setuid			(__NR_SYSCALL_BASE+ 23) +#define __NR_getuid			(__NR_SYSCALL_BASE+ 24) +#define __NR_stime			(__NR_SYSCALL_BASE+ 25) +#define __NR_ptrace			(__NR_SYSCALL_BASE+ 26) +#define __NR_alarm			(__NR_SYSCALL_BASE+ 27) +					/* 28 was sys_fstat */ +#define __NR_pause			(__NR_SYSCALL_BASE+ 29) +#define __NR_utime			(__NR_SYSCALL_BASE+ 30) +					/* 31 was sys_stty */ +					/* 32 was sys_gtty */ +#define __NR_access			(__NR_SYSCALL_BASE+ 33) +#define __NR_nice			(__NR_SYSCALL_BASE+ 34) +					/* 35 was sys_ftime */ +#define __NR_sync			(__NR_SYSCALL_BASE+ 36) +#define __NR_kill			(__NR_SYSCALL_BASE+ 37) +#define __NR_rename			(__NR_SYSCALL_BASE+ 38) +#define __NR_mkdir			(__NR_SYSCALL_BASE+ 39) +#define __NR_rmdir			(__NR_SYSCALL_BASE+ 40) +#define __NR_dup			(__NR_SYSCALL_BASE+ 41) +#define __NR_pipe			(__NR_SYSCALL_BASE+ 42) +#define __NR_times			(__NR_SYSCALL_BASE+ 43) +					/* 44 was sys_prof */ +#define __NR_brk			(__NR_SYSCALL_BASE+ 45) +#define __NR_setgid			(__NR_SYSCALL_BASE+ 46) +#define __NR_getgid			(__NR_SYSCALL_BASE+ 47) +					/* 48 was sys_signal */ +#define __NR_geteuid			(__NR_SYSCALL_BASE+ 49) +#define __NR_getegid			(__NR_SYSCALL_BASE+ 50) +#define __NR_acct			(__NR_SYSCALL_BASE+ 51) +#define __NR_umount2			(__NR_SYSCALL_BASE+ 52) +					/* 53 was sys_lock */ +#define __NR_ioctl			(__NR_SYSCALL_BASE+ 54) +#define __NR_fcntl			(__NR_SYSCALL_BASE+ 55) +					/* 56 was sys_mpx */ +#define __NR_setpgid			(__NR_SYSCALL_BASE+ 57) +					/* 58 was sys_ulimit */ +					/* 59 was sys_olduname */ +#define __NR_umask			(__NR_SYSCALL_BASE+ 60) +#define __NR_chroot			(__NR_SYSCALL_BASE+ 61) +#define __NR_ustat			(__NR_SYSCALL_BASE+ 62) +#define __NR_dup2			(__NR_SYSCALL_BASE+ 63) +#define __NR_getppid			(__NR_SYSCALL_BASE+ 64) +#define __NR_getpgrp			(__NR_SYSCALL_BASE+ 65) +#define __NR_setsid			(__NR_SYSCALL_BASE+ 66) +#define __NR_sigaction			(__NR_SYSCALL_BASE+ 67) +					/* 68 was sys_sgetmask */ +					/* 69 was sys_ssetmask */ +#define __NR_setreuid			(__NR_SYSCALL_BASE+ 70) +#define __NR_setregid			(__NR_SYSCALL_BASE+ 71) +#define __NR_sigsuspend			(__NR_SYSCALL_BASE+ 72) +#define __NR_sigpending			(__NR_SYSCALL_BASE+ 73) +#define __NR_sethostname		(__NR_SYSCALL_BASE+ 74) +#define __NR_setrlimit			(__NR_SYSCALL_BASE+ 75) +#define __NR_getrlimit			(__NR_SYSCALL_BASE+ 76)	/* Back compat 2GB limited rlimit */ +#define __NR_getrusage			(__NR_SYSCALL_BASE+ 77) +#define __NR_gettimeofday		(__NR_SYSCALL_BASE+ 78) +#define __NR_settimeofday		(__NR_SYSCALL_BASE+ 79) +#define __NR_getgroups			(__NR_SYSCALL_BASE+ 80) +#define __NR_setgroups			(__NR_SYSCALL_BASE+ 81) +#define __NR_select			(__NR_SYSCALL_BASE+ 82) +#define __NR_symlink			(__NR_SYSCALL_BASE+ 83) +					/* 84 was sys_lstat */ +#define __NR_readlink			(__NR_SYSCALL_BASE+ 85) +#define __NR_uselib			(__NR_SYSCALL_BASE+ 86) +#define __NR_swapon			(__NR_SYSCALL_BASE+ 87) +#define __NR_reboot			(__NR_SYSCALL_BASE+ 88) +#define __NR_readdir			(__NR_SYSCALL_BASE+ 89) +#define __NR_mmap			(__NR_SYSCALL_BASE+ 90) +#define __NR_munmap			(__NR_SYSCALL_BASE+ 91) +#define __NR_truncate			(__NR_SYSCALL_BASE+ 92) +#define __NR_ftruncate			(__NR_SYSCALL_BASE+ 93) +#define __NR_fchmod			(__NR_SYSCALL_BASE+ 94) +#define __NR_fchown			(__NR_SYSCALL_BASE+ 95) +#define __NR_getpriority		(__NR_SYSCALL_BASE+ 96) +#define __NR_setpriority		(__NR_SYSCALL_BASE+ 97) +					/* 98 was sys_profil */ +#define __NR_statfs			(__NR_SYSCALL_BASE+ 99) +#define __NR_fstatfs			(__NR_SYSCALL_BASE+100) +					/* 101 was sys_ioperm */ +#define __NR_socketcall			(__NR_SYSCALL_BASE+102) +#define __NR_syslog			(__NR_SYSCALL_BASE+103) +#define __NR_setitimer			(__NR_SYSCALL_BASE+104) +#define __NR_getitimer			(__NR_SYSCALL_BASE+105) +#define __NR_stat			(__NR_SYSCALL_BASE+106) +#define __NR_lstat			(__NR_SYSCALL_BASE+107) +#define __NR_fstat			(__NR_SYSCALL_BASE+108) +					/* 109 was sys_uname */ +					/* 110 was sys_iopl */ +#define __NR_vhangup			(__NR_SYSCALL_BASE+111) +					/* 112 was sys_idle */ +#define __NR_syscall			(__NR_SYSCALL_BASE+113) /* syscall to call a syscall! */ +#define __NR_wait4			(__NR_SYSCALL_BASE+114) +#define __NR_swapoff			(__NR_SYSCALL_BASE+115) +#define __NR_sysinfo			(__NR_SYSCALL_BASE+116) +#define __NR_ipc			(__NR_SYSCALL_BASE+117) +#define __NR_fsync			(__NR_SYSCALL_BASE+118) +#define __NR_sigreturn			(__NR_SYSCALL_BASE+119) +#define __NR_clone			(__NR_SYSCALL_BASE+120) +#define __NR_setdomainname		(__NR_SYSCALL_BASE+121) +#define __NR_uname			(__NR_SYSCALL_BASE+122) +					/* 123 was sys_modify_ldt */ +#define __NR_adjtimex			(__NR_SYSCALL_BASE+124) +#define __NR_mprotect			(__NR_SYSCALL_BASE+125) +#define __NR_sigprocmask		(__NR_SYSCALL_BASE+126) +					/* 127 was sys_create_module */ +#define __NR_init_module		(__NR_SYSCALL_BASE+128) +#define __NR_delete_module		(__NR_SYSCALL_BASE+129) +					/* 130 was sys_get_kernel_syms */ +#define __NR_quotactl			(__NR_SYSCALL_BASE+131) +#define __NR_getpgid			(__NR_SYSCALL_BASE+132) +#define __NR_fchdir			(__NR_SYSCALL_BASE+133) +#define __NR_bdflush			(__NR_SYSCALL_BASE+134) +#define __NR_sysfs			(__NR_SYSCALL_BASE+135) +#define __NR_personality		(__NR_SYSCALL_BASE+136) +					/* 137 was sys_afs_syscall */ +#define __NR_setfsuid			(__NR_SYSCALL_BASE+138) +#define __NR_setfsgid			(__NR_SYSCALL_BASE+139) +#define __NR__llseek			(__NR_SYSCALL_BASE+140) +#define __NR_getdents			(__NR_SYSCALL_BASE+141) +#define __NR__newselect			(__NR_SYSCALL_BASE+142) +#define __NR_flock			(__NR_SYSCALL_BASE+143) +#define __NR_msync			(__NR_SYSCALL_BASE+144) +#define __NR_readv			(__NR_SYSCALL_BASE+145) +#define __NR_writev			(__NR_SYSCALL_BASE+146) +#define __NR_getsid			(__NR_SYSCALL_BASE+147) +#define __NR_fdatasync			(__NR_SYSCALL_BASE+148) +#define __NR__sysctl			(__NR_SYSCALL_BASE+149) +#define __NR_mlock			(__NR_SYSCALL_BASE+150) +#define __NR_munlock			(__NR_SYSCALL_BASE+151) +#define __NR_mlockall			(__NR_SYSCALL_BASE+152) +#define __NR_munlockall			(__NR_SYSCALL_BASE+153) +#define __NR_sched_setparam		(__NR_SYSCALL_BASE+154) +#define __NR_sched_getparam		(__NR_SYSCALL_BASE+155) +#define __NR_sched_setscheduler		(__NR_SYSCALL_BASE+156) +#define __NR_sched_getscheduler		(__NR_SYSCALL_BASE+157) +#define __NR_sched_yield		(__NR_SYSCALL_BASE+158) +#define __NR_sched_get_priority_max	(__NR_SYSCALL_BASE+159) +#define __NR_sched_get_priority_min	(__NR_SYSCALL_BASE+160) +#define __NR_sched_rr_get_interval	(__NR_SYSCALL_BASE+161) +#define __NR_nanosleep			(__NR_SYSCALL_BASE+162) +#define __NR_mremap			(__NR_SYSCALL_BASE+163) +#define __NR_setresuid			(__NR_SYSCALL_BASE+164) +#define __NR_getresuid			(__NR_SYSCALL_BASE+165) +					/* 166 was sys_vm86 */ +					/* 167 was sys_query_module */ +#define __NR_poll			(__NR_SYSCALL_BASE+168) +#define __NR_nfsservctl			(__NR_SYSCALL_BASE+169) +#define __NR_setresgid			(__NR_SYSCALL_BASE+170) +#define __NR_getresgid			(__NR_SYSCALL_BASE+171) +#define __NR_prctl			(__NR_SYSCALL_BASE+172) +#define __NR_rt_sigreturn		(__NR_SYSCALL_BASE+173) +#define __NR_rt_sigaction		(__NR_SYSCALL_BASE+174) +#define __NR_rt_sigprocmask		(__NR_SYSCALL_BASE+175) +#define __NR_rt_sigpending		(__NR_SYSCALL_BASE+176) +#define __NR_rt_sigtimedwait		(__NR_SYSCALL_BASE+177) +#define __NR_rt_sigqueueinfo		(__NR_SYSCALL_BASE+178) +#define __NR_rt_sigsuspend		(__NR_SYSCALL_BASE+179) +#define __NR_pread64			(__NR_SYSCALL_BASE+180) +#define __NR_pwrite64			(__NR_SYSCALL_BASE+181) +#define __NR_chown			(__NR_SYSCALL_BASE+182) +#define __NR_getcwd			(__NR_SYSCALL_BASE+183) +#define __NR_capget			(__NR_SYSCALL_BASE+184) +#define __NR_capset			(__NR_SYSCALL_BASE+185) +#define __NR_sigaltstack		(__NR_SYSCALL_BASE+186) +#define __NR_sendfile			(__NR_SYSCALL_BASE+187) +					/* 188 reserved */ +					/* 189 reserved */ +#define __NR_vfork			(__NR_SYSCALL_BASE+190) +#define __NR_ugetrlimit			(__NR_SYSCALL_BASE+191)	/* SuS compliant getrlimit */ +#define __NR_mmap2			(__NR_SYSCALL_BASE+192) +#define __NR_truncate64			(__NR_SYSCALL_BASE+193) +#define __NR_ftruncate64		(__NR_SYSCALL_BASE+194) +#define __NR_stat64			(__NR_SYSCALL_BASE+195) +#define __NR_lstat64			(__NR_SYSCALL_BASE+196) +#define __NR_fstat64			(__NR_SYSCALL_BASE+197) +#define __NR_lchown32			(__NR_SYSCALL_BASE+198) +#define __NR_getuid32			(__NR_SYSCALL_BASE+199) +#define __NR_getgid32			(__NR_SYSCALL_BASE+200) +#define __NR_geteuid32			(__NR_SYSCALL_BASE+201) +#define __NR_getegid32			(__NR_SYSCALL_BASE+202) +#define __NR_setreuid32			(__NR_SYSCALL_BASE+203) +#define __NR_setregid32			(__NR_SYSCALL_BASE+204) +#define __NR_getgroups32		(__NR_SYSCALL_BASE+205) +#define __NR_setgroups32		(__NR_SYSCALL_BASE+206) +#define __NR_fchown32			(__NR_SYSCALL_BASE+207) +#define __NR_setresuid32		(__NR_SYSCALL_BASE+208) +#define __NR_getresuid32		(__NR_SYSCALL_BASE+209) +#define __NR_setresgid32		(__NR_SYSCALL_BASE+210) +#define __NR_getresgid32		(__NR_SYSCALL_BASE+211) +#define __NR_chown32			(__NR_SYSCALL_BASE+212) +#define __NR_setuid32			(__NR_SYSCALL_BASE+213) +#define __NR_setgid32			(__NR_SYSCALL_BASE+214) +#define __NR_setfsuid32			(__NR_SYSCALL_BASE+215) +#define __NR_setfsgid32			(__NR_SYSCALL_BASE+216) +#define __NR_getdents64			(__NR_SYSCALL_BASE+217) +#define __NR_pivot_root			(__NR_SYSCALL_BASE+218) +#define __NR_mincore			(__NR_SYSCALL_BASE+219) +#define __NR_madvise			(__NR_SYSCALL_BASE+220) +#define __NR_fcntl64			(__NR_SYSCALL_BASE+221) +					/* 222 for tux */ +					/* 223 is unused */ +#define __NR_gettid			(__NR_SYSCALL_BASE+224) +#define __NR_readahead			(__NR_SYSCALL_BASE+225) +#define __NR_setxattr			(__NR_SYSCALL_BASE+226) +#define __NR_lsetxattr			(__NR_SYSCALL_BASE+227) +#define __NR_fsetxattr			(__NR_SYSCALL_BASE+228) +#define __NR_getxattr			(__NR_SYSCALL_BASE+229) +#define __NR_lgetxattr			(__NR_SYSCALL_BASE+230) +#define __NR_fgetxattr			(__NR_SYSCALL_BASE+231) +#define __NR_listxattr			(__NR_SYSCALL_BASE+232) +#define __NR_llistxattr			(__NR_SYSCALL_BASE+233) +#define __NR_flistxattr			(__NR_SYSCALL_BASE+234) +#define __NR_removexattr		(__NR_SYSCALL_BASE+235) +#define __NR_lremovexattr		(__NR_SYSCALL_BASE+236) +#define __NR_fremovexattr		(__NR_SYSCALL_BASE+237) +#define __NR_tkill			(__NR_SYSCALL_BASE+238) +#define __NR_sendfile64			(__NR_SYSCALL_BASE+239) +#define __NR_futex			(__NR_SYSCALL_BASE+240) +#define __NR_sched_setaffinity		(__NR_SYSCALL_BASE+241) +#define __NR_sched_getaffinity		(__NR_SYSCALL_BASE+242) +#define __NR_io_setup			(__NR_SYSCALL_BASE+243) +#define __NR_io_destroy			(__NR_SYSCALL_BASE+244) +#define __NR_io_getevents		(__NR_SYSCALL_BASE+245) +#define __NR_io_submit			(__NR_SYSCALL_BASE+246) +#define __NR_io_cancel			(__NR_SYSCALL_BASE+247) +#define __NR_exit_group			(__NR_SYSCALL_BASE+248) +#define __NR_lookup_dcookie		(__NR_SYSCALL_BASE+249) +#define __NR_epoll_create		(__NR_SYSCALL_BASE+250) +#define __NR_epoll_ctl			(__NR_SYSCALL_BASE+251) +#define __NR_epoll_wait			(__NR_SYSCALL_BASE+252) +#define __NR_remap_file_pages		(__NR_SYSCALL_BASE+253) +					/* 254 for set_thread_area */ +					/* 255 for get_thread_area */ +#define __NR_set_tid_address		(__NR_SYSCALL_BASE+256) +#define __NR_timer_create		(__NR_SYSCALL_BASE+257) +#define __NR_timer_settime		(__NR_SYSCALL_BASE+258) +#define __NR_timer_gettime		(__NR_SYSCALL_BASE+259) +#define __NR_timer_getoverrun		(__NR_SYSCALL_BASE+260) +#define __NR_timer_delete		(__NR_SYSCALL_BASE+261) +#define __NR_clock_settime		(__NR_SYSCALL_BASE+262) +#define __NR_clock_gettime		(__NR_SYSCALL_BASE+263) +#define __NR_clock_getres		(__NR_SYSCALL_BASE+264) +#define __NR_clock_nanosleep		(__NR_SYSCALL_BASE+265) +#define __NR_statfs64			(__NR_SYSCALL_BASE+266) +#define __NR_fstatfs64			(__NR_SYSCALL_BASE+267) +#define __NR_tgkill			(__NR_SYSCALL_BASE+268) +#define __NR_utimes			(__NR_SYSCALL_BASE+269) +#define __NR_arm_fadvise64_64		(__NR_SYSCALL_BASE+270) +#define __NR_pciconfig_iobase		(__NR_SYSCALL_BASE+271) +#define __NR_pciconfig_read		(__NR_SYSCALL_BASE+272) +#define __NR_pciconfig_write		(__NR_SYSCALL_BASE+273) +#define __NR_mq_open			(__NR_SYSCALL_BASE+274) +#define __NR_mq_unlink			(__NR_SYSCALL_BASE+275) +#define __NR_mq_timedsend		(__NR_SYSCALL_BASE+276) +#define __NR_mq_timedreceive		(__NR_SYSCALL_BASE+277) +#define __NR_mq_notify			(__NR_SYSCALL_BASE+278) +#define __NR_mq_getsetattr		(__NR_SYSCALL_BASE+279) +#define __NR_waitid			(__NR_SYSCALL_BASE+280) +#define __NR_socket			(__NR_SYSCALL_BASE+281) +#define __NR_bind			(__NR_SYSCALL_BASE+282) +#define __NR_connect			(__NR_SYSCALL_BASE+283) +#define __NR_listen			(__NR_SYSCALL_BASE+284) +#define __NR_accept			(__NR_SYSCALL_BASE+285) +#define __NR_getsockname		(__NR_SYSCALL_BASE+286) +#define __NR_getpeername		(__NR_SYSCALL_BASE+287) +#define __NR_socketpair			(__NR_SYSCALL_BASE+288) +#define __NR_send			(__NR_SYSCALL_BASE+289) +#define __NR_sendto			(__NR_SYSCALL_BASE+290) +#define __NR_recv			(__NR_SYSCALL_BASE+291) +#define __NR_recvfrom			(__NR_SYSCALL_BASE+292) +#define __NR_shutdown			(__NR_SYSCALL_BASE+293) +#define __NR_setsockopt			(__NR_SYSCALL_BASE+294) +#define __NR_getsockopt			(__NR_SYSCALL_BASE+295) +#define __NR_sendmsg			(__NR_SYSCALL_BASE+296) +#define __NR_recvmsg			(__NR_SYSCALL_BASE+297) +#define __NR_semop			(__NR_SYSCALL_BASE+298) +#define __NR_semget			(__NR_SYSCALL_BASE+299) +#define __NR_semctl			(__NR_SYSCALL_BASE+300) +#define __NR_msgsnd			(__NR_SYSCALL_BASE+301) +#define __NR_msgrcv			(__NR_SYSCALL_BASE+302) +#define __NR_msgget			(__NR_SYSCALL_BASE+303) +#define __NR_msgctl			(__NR_SYSCALL_BASE+304) +#define __NR_shmat			(__NR_SYSCALL_BASE+305) +#define __NR_shmdt			(__NR_SYSCALL_BASE+306) +#define __NR_shmget			(__NR_SYSCALL_BASE+307) +#define __NR_shmctl			(__NR_SYSCALL_BASE+308) +#define __NR_add_key			(__NR_SYSCALL_BASE+309) +#define __NR_request_key		(__NR_SYSCALL_BASE+310) +#define __NR_keyctl			(__NR_SYSCALL_BASE+311) +#define __NR_semtimedop			(__NR_SYSCALL_BASE+312) +#define __NR_vserver			(__NR_SYSCALL_BASE+313) +#define __NR_ioprio_set			(__NR_SYSCALL_BASE+314) +#define __NR_ioprio_get			(__NR_SYSCALL_BASE+315) +#define __NR_inotify_init		(__NR_SYSCALL_BASE+316) +#define __NR_inotify_add_watch		(__NR_SYSCALL_BASE+317) +#define __NR_inotify_rm_watch		(__NR_SYSCALL_BASE+318) +#define __NR_mbind			(__NR_SYSCALL_BASE+319) +#define __NR_get_mempolicy		(__NR_SYSCALL_BASE+320) +#define __NR_set_mempolicy		(__NR_SYSCALL_BASE+321) +#define __NR_openat			(__NR_SYSCALL_BASE+322) +#define __NR_mkdirat			(__NR_SYSCALL_BASE+323) +#define __NR_mknodat			(__NR_SYSCALL_BASE+324) +#define __NR_fchownat			(__NR_SYSCALL_BASE+325) +#define __NR_futimesat			(__NR_SYSCALL_BASE+326) +#define __NR_fstatat64			(__NR_SYSCALL_BASE+327) +#define __NR_unlinkat			(__NR_SYSCALL_BASE+328) +#define __NR_renameat			(__NR_SYSCALL_BASE+329) +#define __NR_linkat			(__NR_SYSCALL_BASE+330) +#define __NR_symlinkat			(__NR_SYSCALL_BASE+331) +#define __NR_readlinkat			(__NR_SYSCALL_BASE+332) +#define __NR_fchmodat			(__NR_SYSCALL_BASE+333) +#define __NR_faccessat			(__NR_SYSCALL_BASE+334) +#define __NR_pselect6			(__NR_SYSCALL_BASE+335) +#define __NR_ppoll			(__NR_SYSCALL_BASE+336) +#define __NR_unshare			(__NR_SYSCALL_BASE+337) +#define __NR_set_robust_list		(__NR_SYSCALL_BASE+338) +#define __NR_get_robust_list		(__NR_SYSCALL_BASE+339) +#define __NR_splice			(__NR_SYSCALL_BASE+340) +#define __NR_arm_sync_file_range	(__NR_SYSCALL_BASE+341) +#define __NR_sync_file_range2		__NR_arm_sync_file_range +#define __NR_tee			(__NR_SYSCALL_BASE+342) +#define __NR_vmsplice			(__NR_SYSCALL_BASE+343) +#define __NR_move_pages			(__NR_SYSCALL_BASE+344) +#define __NR_getcpu			(__NR_SYSCALL_BASE+345) +#define __NR_epoll_pwait		(__NR_SYSCALL_BASE+346) +#define __NR_kexec_load			(__NR_SYSCALL_BASE+347) +#define __NR_utimensat			(__NR_SYSCALL_BASE+348) +#define __NR_signalfd			(__NR_SYSCALL_BASE+349) +#define __NR_timerfd_create		(__NR_SYSCALL_BASE+350) +#define __NR_eventfd			(__NR_SYSCALL_BASE+351) +#define __NR_fallocate			(__NR_SYSCALL_BASE+352) +#define __NR_timerfd_settime		(__NR_SYSCALL_BASE+353) +#define __NR_timerfd_gettime		(__NR_SYSCALL_BASE+354) +#define __NR_signalfd4			(__NR_SYSCALL_BASE+355) +#define __NR_eventfd2			(__NR_SYSCALL_BASE+356) +#define __NR_epoll_create1		(__NR_SYSCALL_BASE+357) +#define __NR_dup3			(__NR_SYSCALL_BASE+358) +#define __NR_pipe2			(__NR_SYSCALL_BASE+359) +#define __NR_inotify_init1		(__NR_SYSCALL_BASE+360) +#define __NR_preadv			(__NR_SYSCALL_BASE+361) +#define __NR_pwritev			(__NR_SYSCALL_BASE+362) +#define __NR_rt_tgsigqueueinfo		(__NR_SYSCALL_BASE+363) +#define __NR_perf_event_open		(__NR_SYSCALL_BASE+364) +#define __NR_recvmmsg			(__NR_SYSCALL_BASE+365) +#define __NR_accept4			(__NR_SYSCALL_BASE+366) +#define __NR_fanotify_init		(__NR_SYSCALL_BASE+367) +#define __NR_fanotify_mark		(__NR_SYSCALL_BASE+368) +#define __NR_prlimit64			(__NR_SYSCALL_BASE+369) +#define __NR_name_to_handle_at		(__NR_SYSCALL_BASE+370) +#define __NR_open_by_handle_at		(__NR_SYSCALL_BASE+371) +#define __NR_clock_adjtime		(__NR_SYSCALL_BASE+372) +#define __NR_syncfs			(__NR_SYSCALL_BASE+373) +#define __NR_sendmmsg			(__NR_SYSCALL_BASE+374) +#define __NR_setns			(__NR_SYSCALL_BASE+375) +#define __NR_process_vm_readv		(__NR_SYSCALL_BASE+376) +#define __NR_process_vm_writev		(__NR_SYSCALL_BASE+377) +#define __NR_kcmp			(__NR_SYSCALL_BASE+378) +#define __NR_finit_module		(__NR_SYSCALL_BASE+379) +#define __NR_sched_setattr		(__NR_SYSCALL_BASE+380) +#define __NR_sched_getattr		(__NR_SYSCALL_BASE+381) +#define __NR_renameat2			(__NR_SYSCALL_BASE+382) + +/* + * This may need to be greater than __NR_last_syscall+1 in order to + * account for the padding in the syscall table + */ + +/* + * The following SWIs are ARM private. + */ +#define __ARM_NR_BASE			(__NR_SYSCALL_BASE+0x0f0000) +#define __ARM_NR_breakpoint		(__ARM_NR_BASE+1) +#define __ARM_NR_cacheflush		(__ARM_NR_BASE+2) +#define __ARM_NR_usr26			(__ARM_NR_BASE+3) +#define __ARM_NR_usr32			(__ARM_NR_BASE+4) +#define __ARM_NR_set_tls		(__ARM_NR_BASE+5) + +/* + * *NOTE*: This is a ghost syscall private to the kernel.  Only the + * __kuser_cmpxchg code in entry-armv.S should be aware of its + * existence.  Don't ever use this from user code. + */ + +/* + * The following syscalls are obsolete and no longer available for EABI. + */ +#if !defined(__KERNEL__) +#if defined(__ARM_EABI__) +#undef __NR_time +#undef __NR_umount +#undef __NR_stime +#undef __NR_alarm +#undef __NR_utime +#undef __NR_getrlimit +#undef __NR_select +#undef __NR_readdir +#undef __NR_mmap +#undef __NR_socketcall +#undef __NR_syscall +#undef __NR_ipc +#endif +#endif + +#endif /* _UAPI__ASM_ARM_UNISTD_H */  | 
