aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mn10300
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/mn10300
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/mn10300')
-rw-r--r--arch/mn10300/include/asm/posix_types.h111
1 files changed, 11 insertions, 100 deletions
diff --git a/arch/mn10300/include/asm/posix_types.h b/arch/mn10300/include/asm/posix_types.h
index 56ffbc158798..ab506181ec31 100644
--- a/arch/mn10300/include/asm/posix_types.h
+++ b/arch/mn10300/include/asm/posix_types.h
@@ -17,14 +17,19 @@
17 * assume GCC is being used. 17 * assume GCC is being used.
18 */ 18 */
19 19
20typedef unsigned long __kernel_ino_t;
21typedef unsigned short __kernel_mode_t; 20typedef unsigned short __kernel_mode_t;
21#define __kernel_mode_t __kernel_mode_t
22
22typedef unsigned short __kernel_nlink_t; 23typedef unsigned short __kernel_nlink_t;
23typedef long __kernel_off_t; 24#define __kernel_nlink_t __kernel_nlink_t
24typedef int __kernel_pid_t; 25
25typedef unsigned short __kernel_ipc_pid_t; 26typedef unsigned short __kernel_ipc_pid_t;
27#define __kernel_ipc_pid_t __kernel_ipc_pid_t
28
26typedef unsigned short __kernel_uid_t; 29typedef unsigned short __kernel_uid_t;
27typedef unsigned short __kernel_gid_t; 30typedef unsigned short __kernel_gid_t;
31#define __kernel_uid_t __kernel_uid_t
32
28#if __GNUC__ == 4 33#if __GNUC__ == 4
29typedef unsigned int __kernel_size_t; 34typedef unsigned int __kernel_size_t;
30typedef signed int __kernel_ssize_t; 35typedef signed int __kernel_ssize_t;
@@ -33,105 +38,11 @@ typedef unsigned long __kernel_size_t;
33typedef signed long __kernel_ssize_t; 38typedef signed long __kernel_ssize_t;
34#endif 39#endif
35typedef int __kernel_ptrdiff_t; 40typedef int __kernel_ptrdiff_t;
36typedef long __kernel_time_t; 41#define __kernel_size_t __kernel_size_t
37typedef long __kernel_suseconds_t;
38typedef long __kernel_clock_t;
39typedef int __kernel_timer_t;
40typedef int __kernel_clockid_t;
41typedef int __kernel_daddr_t;
42typedef char * __kernel_caddr_t;
43typedef unsigned short __kernel_uid16_t;
44typedef unsigned short __kernel_gid16_t;
45typedef unsigned int __kernel_uid32_t;
46typedef unsigned int __kernel_gid32_t;
47 42
48typedef unsigned short __kernel_old_uid_t;
49typedef unsigned short __kernel_old_gid_t;
50typedef unsigned short __kernel_old_dev_t; 43typedef unsigned short __kernel_old_dev_t;
44#define __kernel_old_dev_t __kernel_old_dev_t
51 45
52#ifdef __GNUC__ 46#include <asm-generic/posix_types.h>
53typedef long long __kernel_loff_t;
54#endif
55
56typedef struct {
57#if defined(__KERNEL__) || defined(__USE_ALL)
58 int val[2];
59#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
60 int __val[2];
61#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
62} __kernel_fsid_t;
63
64#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
65
66#undef __FD_SET
67static inline void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
68{
69 unsigned long __tmp = __fd / __NFDBITS;
70 unsigned long __rem = __fd % __NFDBITS;
71 __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
72}
73
74#undef __FD_CLR
75static inline void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
76{
77 unsigned long __tmp = __fd / __NFDBITS;
78 unsigned long __rem = __fd % __NFDBITS;
79 __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
80}
81
82
83#undef __FD_ISSET
84static inline int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
85{
86 unsigned long __tmp = __fd / __NFDBITS;
87 unsigned long __rem = __fd % __NFDBITS;
88 return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
89}
90
91/*
92 * This will unroll the loop for the normal constant case (8 ints,
93 * for a 256-bit fd_set)
94 */
95#undef __FD_ZERO
96static inline void __FD_ZERO(__kernel_fd_set *__p)
97{
98 unsigned long *__tmp = __p->fds_bits;
99 int __i;
100
101 if (__builtin_constant_p(__FDSET_LONGS)) {
102 switch (__FDSET_LONGS) {
103 case 16:
104 __tmp[ 0] = 0; __tmp[ 1] = 0;
105 __tmp[ 2] = 0; __tmp[ 3] = 0;
106 __tmp[ 4] = 0; __tmp[ 5] = 0;
107 __tmp[ 6] = 0; __tmp[ 7] = 0;
108 __tmp[ 8] = 0; __tmp[ 9] = 0;
109 __tmp[10] = 0; __tmp[11] = 0;
110 __tmp[12] = 0; __tmp[13] = 0;
111 __tmp[14] = 0; __tmp[15] = 0;
112 return;
113
114 case 8:
115 __tmp[ 0] = 0; __tmp[ 1] = 0;
116 __tmp[ 2] = 0; __tmp[ 3] = 0;
117 __tmp[ 4] = 0; __tmp[ 5] = 0;
118 __tmp[ 6] = 0; __tmp[ 7] = 0;
119 return;
120
121 case 4:
122 __tmp[ 0] = 0; __tmp[ 1] = 0;
123 __tmp[ 2] = 0; __tmp[ 3] = 0;
124 return;
125 }
126 }
127 __i = __FDSET_LONGS;
128 while (__i) {
129 __i--;
130 *__tmp = 0;
131 __tmp++;
132 }
133}
134
135#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
136 47
137#endif /* _ASM_POSIX_TYPES_H */ 48#endif /* _ASM_POSIX_TYPES_H */