aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-29 21:12:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-29 21:12:23 -0400
commita591afc01d9e48affbacb365558a31e53c85af45 (patch)
tree9bb91f4eb94ec69fc4706c4944788ec5f3586063 /arch/s390/include
parent820d41cf0cd0e94a5661e093821e2e5c6b36a9d8 (diff)
parent31796ac4e8f0e88f5c10f1ad6dab8f19bebe44a4 (diff)
Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x32 support for x86-64 from Ingo Molnar: "This tree introduces the X32 binary format and execution mode for x86: 32-bit data space binaries using 64-bit instructions and 64-bit kernel syscalls. This allows applications whose working set fits into a 32 bits address space to make use of 64-bit instructions while using a 32-bit address space with shorter pointers, more compressed data structures, etc." Fix up trivial context conflicts in arch/x86/{Kconfig,vdso/vma.c} * 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits) x32: Fix alignment fail in struct compat_siginfo x32: Fix stupid ia32/x32 inversion in the siginfo format x32: Add ptrace for x32 x32: Switch to a 64-bit clock_t x32: Provide separate is_ia32_task() and is_x32_task() predicates x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls x86/x32: Fix the binutils auto-detect x32: Warn and disable rather than error if binutils too old x32: Only clear TIF_X32 flag once x32: Make sure TS_COMPAT is cleared for x32 tasks fs: Remove missed ->fds_bits from cessation use of fd_set structs internally fs: Fix close_on_exec pointer in alloc_fdtable x32: Drop non-__vdso weak symbols from the x32 VDSO x32: Fix coding style violations in the x32 VDSO code x32: Add x32 VDSO support x32: Allow x32 to be configured x32: If configured, add x32 system calls to system call tables x32: Handle process creation x32: Signal-related system calls x86: Add #ifdef CONFIG_COMPAT to <asm/sys_ia32.h> ...
Diffstat (limited to 'arch/s390/include')
-rw-r--r--arch/s390/include/asm/posix_types.h70
1 files changed, 10 insertions, 60 deletions
diff --git a/arch/s390/include/asm/posix_types.h b/arch/s390/include/asm/posix_types.h
index 8cc113f92523..edf8527ff08d 100644
--- a/arch/s390/include/asm/posix_types.h
+++ b/arch/s390/include/asm/posix_types.h
@@ -3,7 +3,6 @@
3 * 3 *
4 * S390 version 4 * S390 version
5 * 5 *
6 * Derived from "include/asm-i386/posix_types.h"
7 */ 6 */
8 7
9#ifndef __ARCH_S390_POSIX_TYPES_H 8#ifndef __ARCH_S390_POSIX_TYPES_H
@@ -15,22 +14,11 @@
15 * assume GCC is being used. 14 * assume GCC is being used.
16 */ 15 */
17 16
18typedef long __kernel_off_t;
19typedef int __kernel_pid_t;
20typedef unsigned long __kernel_size_t; 17typedef unsigned long __kernel_size_t;
21typedef long __kernel_time_t; 18#define __kernel_size_t __kernel_size_t
22typedef long __kernel_suseconds_t;
23typedef long __kernel_clock_t;
24typedef int __kernel_timer_t;
25typedef int __kernel_clockid_t;
26typedef int __kernel_daddr_t;
27typedef char * __kernel_caddr_t;
28typedef unsigned short __kernel_uid16_t;
29typedef unsigned short __kernel_gid16_t;
30 19
31#ifdef __GNUC__ 20typedef unsigned short __kernel_old_dev_t;
32typedef long long __kernel_loff_t; 21#define __kernel_old_dev_t __kernel_old_dev_t
33#endif
34 22
35#ifndef __s390x__ 23#ifndef __s390x__
36 24
@@ -42,11 +30,6 @@ typedef unsigned short __kernel_uid_t;
42typedef unsigned short __kernel_gid_t; 30typedef unsigned short __kernel_gid_t;
43typedef int __kernel_ssize_t; 31typedef int __kernel_ssize_t;
44typedef int __kernel_ptrdiff_t; 32typedef int __kernel_ptrdiff_t;
45typedef unsigned int __kernel_uid32_t;
46typedef unsigned int __kernel_gid32_t;
47typedef unsigned short __kernel_old_uid_t;
48typedef unsigned short __kernel_old_gid_t;
49typedef unsigned short __kernel_old_dev_t;
50 33
51#else /* __s390x__ */ 34#else /* __s390x__ */
52 35
@@ -59,49 +42,16 @@ typedef unsigned int __kernel_gid_t;
59typedef long __kernel_ssize_t; 42typedef long __kernel_ssize_t;
60typedef long __kernel_ptrdiff_t; 43typedef long __kernel_ptrdiff_t;
61typedef unsigned long __kernel_sigset_t; /* at least 32 bits */ 44typedef unsigned long __kernel_sigset_t; /* at least 32 bits */
62typedef __kernel_uid_t __kernel_old_uid_t;
63typedef __kernel_gid_t __kernel_old_gid_t;
64typedef __kernel_uid_t __kernel_uid32_t;
65typedef __kernel_gid_t __kernel_gid32_t;
66typedef unsigned short __kernel_old_dev_t;
67 45
68#endif /* __s390x__ */ 46#endif /* __s390x__ */
69 47
70typedef struct { 48#define __kernel_ino_t __kernel_ino_t
71 int val[2]; 49#define __kernel_mode_t __kernel_mode_t
72} __kernel_fsid_t; 50#define __kernel_nlink_t __kernel_nlink_t
73 51#define __kernel_ipc_pid_t __kernel_ipc_pid_t
74 52#define __kernel_uid_t __kernel_uid_t
75#ifdef __KERNEL__ 53#define __kernel_gid_t __kernel_gid_t
76
77#undef __FD_SET
78static inline void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
79{
80 unsigned long _tmp = fd / __NFDBITS;
81 unsigned long _rem = fd % __NFDBITS;
82 fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
83}
84
85#undef __FD_CLR
86static inline void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
87{
88 unsigned long _tmp = fd / __NFDBITS;
89 unsigned long _rem = fd % __NFDBITS;
90 fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
91}
92
93#undef __FD_ISSET
94static inline int __FD_ISSET(unsigned long fd, const __kernel_fd_set *fdsetp)
95{
96 unsigned long _tmp = fd / __NFDBITS;
97 unsigned long _rem = fd % __NFDBITS;
98 return (fdsetp->fds_bits[_tmp] & (1UL<<_rem)) != 0;
99}
100
101#undef __FD_ZERO
102#define __FD_ZERO(fdsetp) \
103 ((void) memset ((void *) (fdsetp), 0, sizeof (__kernel_fd_set)))
104 54
105#endif /* __KERNEL__ */ 55#include <asm-generic/posix_types.h>
106 56
107#endif 57#endif