blob: 91d44bd4dde32574bb6365a5526ac33a19992050 [file] [log] [blame]
Arnd Bergmann6103ec52009-05-13 22:56:27 +00001#ifndef __ASM_GENERIC_POSIX_TYPES_H
2#define __ASM_GENERIC_POSIX_TYPES_H
3
4#include <asm/bitsperlong.h>
5/*
6 * This file is generally used by user-level software, so you need to
7 * be a little careful about namespace pollution etc.
8 *
9 * First the types that are often defined in different ways across
10 * architectures, so that you can override them.
11 */
12
H. Peter Anvinafead382012-02-14 13:11:31 -080013#ifndef __kernel_long_t
14typedef long __kernel_long_t;
15typedef unsigned long __kernel_ulong_t;
16#endif
17
Arnd Bergmann6103ec52009-05-13 22:56:27 +000018#ifndef __kernel_ino_t
H. Peter Anvinafead382012-02-14 13:11:31 -080019typedef __kernel_ulong_t __kernel_ino_t;
Arnd Bergmann6103ec52009-05-13 22:56:27 +000020#endif
21
22#ifndef __kernel_mode_t
23typedef unsigned int __kernel_mode_t;
24#endif
25
26#ifndef __kernel_nlink_t
H. Peter Anvinafead382012-02-14 13:11:31 -080027typedef __kernel_ulong_t __kernel_nlink_t;
Arnd Bergmann6103ec52009-05-13 22:56:27 +000028#endif
29
30#ifndef __kernel_pid_t
31typedef int __kernel_pid_t;
32#endif
33
34#ifndef __kernel_ipc_pid_t
35typedef int __kernel_ipc_pid_t;
36#endif
37
38#ifndef __kernel_uid_t
39typedef unsigned int __kernel_uid_t;
40typedef unsigned int __kernel_gid_t;
41#endif
42
43#ifndef __kernel_suseconds_t
H. Peter Anvinafead382012-02-14 13:11:31 -080044typedef __kernel_long_t __kernel_suseconds_t;
Arnd Bergmann6103ec52009-05-13 22:56:27 +000045#endif
46
47#ifndef __kernel_daddr_t
48typedef int __kernel_daddr_t;
49#endif
50
51#ifndef __kernel_uid32_t
H. Peter Anvinb4255ba2012-02-07 21:08:45 -080052typedef unsigned int __kernel_uid32_t;
53typedef unsigned int __kernel_gid32_t;
Arnd Bergmann6103ec52009-05-13 22:56:27 +000054#endif
55
56#ifndef __kernel_old_uid_t
57typedef __kernel_uid_t __kernel_old_uid_t;
58typedef __kernel_gid_t __kernel_old_gid_t;
59#endif
60
61#ifndef __kernel_old_dev_t
62typedef unsigned int __kernel_old_dev_t;
63#endif
64
65/*
66 * Most 32 bit architectures use "unsigned int" size_t,
67 * and all 64 bit architectures use "unsigned long" size_t.
68 */
69#ifndef __kernel_size_t
70#if __BITS_PER_LONG != 64
71typedef unsigned int __kernel_size_t;
72typedef int __kernel_ssize_t;
73typedef int __kernel_ptrdiff_t;
74#else
H. Peter Anvinafead382012-02-14 13:11:31 -080075typedef __kernel_ulong_t __kernel_size_t;
76typedef __kernel_long_t __kernel_ssize_t;
77typedef __kernel_long_t __kernel_ptrdiff_t;
Arnd Bergmann6103ec52009-05-13 22:56:27 +000078#endif
79#endif
80
H. Peter Anvin34e6f9e2012-02-07 21:08:46 -080081#ifndef __kernel_fsid_t
82typedef struct {
83 int val[2];
84} __kernel_fsid_t;
85#endif
86
Arnd Bergmann6103ec52009-05-13 22:56:27 +000087/*
88 * anything below here should be completely generic
89 */
H. Peter Anvinafead382012-02-14 13:11:31 -080090typedef __kernel_long_t __kernel_off_t;
Arnd Bergmann6103ec52009-05-13 22:56:27 +000091typedef long long __kernel_loff_t;
H. Peter Anvinafead382012-02-14 13:11:31 -080092typedef __kernel_long_t __kernel_time_t;
93typedef __kernel_long_t __kernel_clock_t;
Arnd Bergmann6103ec52009-05-13 22:56:27 +000094typedef int __kernel_timer_t;
95typedef int __kernel_clockid_t;
96typedef char * __kernel_caddr_t;
97typedef unsigned short __kernel_uid16_t;
98typedef unsigned short __kernel_gid16_t;
99
Arnd Bergmann6103ec52009-05-13 22:56:27 +0000100#endif /* __ASM_GENERIC_POSIX_TYPES_H */