16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
28a1ab315SDavid Howells #ifndef __ASM_GENERIC_POSIX_TYPES_H
38a1ab315SDavid Howells #define __ASM_GENERIC_POSIX_TYPES_H
48a1ab315SDavid Howells 
58a1ab315SDavid Howells #include <asm/bitsperlong.h>
68a1ab315SDavid Howells /*
78a1ab315SDavid Howells  * This file is generally used by user-level software, so you need to
88a1ab315SDavid Howells  * be a little careful about namespace pollution etc.
98a1ab315SDavid Howells  *
108a1ab315SDavid Howells  * First the types that are often defined in different ways across
118a1ab315SDavid Howells  * architectures, so that you can override them.
128a1ab315SDavid Howells  */
138a1ab315SDavid Howells 
148a1ab315SDavid Howells #ifndef __kernel_long_t
158a1ab315SDavid Howells typedef long		__kernel_long_t;
168a1ab315SDavid Howells typedef unsigned long	__kernel_ulong_t;
178a1ab315SDavid Howells #endif
188a1ab315SDavid Howells 
198a1ab315SDavid Howells #ifndef __kernel_ino_t
208a1ab315SDavid Howells typedef __kernel_ulong_t __kernel_ino_t;
218a1ab315SDavid Howells #endif
228a1ab315SDavid Howells 
238a1ab315SDavid Howells #ifndef __kernel_mode_t
248a1ab315SDavid Howells typedef unsigned int	__kernel_mode_t;
258a1ab315SDavid Howells #endif
268a1ab315SDavid Howells 
278a1ab315SDavid Howells #ifndef __kernel_pid_t
288a1ab315SDavid Howells typedef int		__kernel_pid_t;
298a1ab315SDavid Howells #endif
308a1ab315SDavid Howells 
318a1ab315SDavid Howells #ifndef __kernel_ipc_pid_t
328a1ab315SDavid Howells typedef int		__kernel_ipc_pid_t;
338a1ab315SDavid Howells #endif
348a1ab315SDavid Howells 
358a1ab315SDavid Howells #ifndef __kernel_uid_t
368a1ab315SDavid Howells typedef unsigned int	__kernel_uid_t;
378a1ab315SDavid Howells typedef unsigned int	__kernel_gid_t;
388a1ab315SDavid Howells #endif
398a1ab315SDavid Howells 
408a1ab315SDavid Howells #ifndef __kernel_suseconds_t
418a1ab315SDavid Howells typedef __kernel_long_t		__kernel_suseconds_t;
428a1ab315SDavid Howells #endif
438a1ab315SDavid Howells 
448a1ab315SDavid Howells #ifndef __kernel_daddr_t
458a1ab315SDavid Howells typedef int		__kernel_daddr_t;
468a1ab315SDavid Howells #endif
478a1ab315SDavid Howells 
488a1ab315SDavid Howells #ifndef __kernel_uid32_t
498a1ab315SDavid Howells typedef unsigned int	__kernel_uid32_t;
508a1ab315SDavid Howells typedef unsigned int	__kernel_gid32_t;
518a1ab315SDavid Howells #endif
528a1ab315SDavid Howells 
538a1ab315SDavid Howells #ifndef __kernel_old_uid_t
548a1ab315SDavid Howells typedef __kernel_uid_t	__kernel_old_uid_t;
558a1ab315SDavid Howells typedef __kernel_gid_t	__kernel_old_gid_t;
568a1ab315SDavid Howells #endif
578a1ab315SDavid Howells 
588a1ab315SDavid Howells #ifndef __kernel_old_dev_t
598a1ab315SDavid Howells typedef unsigned int	__kernel_old_dev_t;
608a1ab315SDavid Howells #endif
618a1ab315SDavid Howells 
628a1ab315SDavid Howells /*
638a1ab315SDavid Howells  * Most 32 bit architectures use "unsigned int" size_t,
648a1ab315SDavid Howells  * and all 64 bit architectures use "unsigned long" size_t.
658a1ab315SDavid Howells  */
668a1ab315SDavid Howells #ifndef __kernel_size_t
678a1ab315SDavid Howells #if __BITS_PER_LONG != 64
688a1ab315SDavid Howells typedef unsigned int	__kernel_size_t;
698a1ab315SDavid Howells typedef int		__kernel_ssize_t;
708a1ab315SDavid Howells typedef int		__kernel_ptrdiff_t;
718a1ab315SDavid Howells #else
728a1ab315SDavid Howells typedef __kernel_ulong_t __kernel_size_t;
738a1ab315SDavid Howells typedef __kernel_long_t	__kernel_ssize_t;
748a1ab315SDavid Howells typedef __kernel_long_t	__kernel_ptrdiff_t;
758a1ab315SDavid Howells #endif
768a1ab315SDavid Howells #endif
778a1ab315SDavid Howells 
788a1ab315SDavid Howells #ifndef __kernel_fsid_t
798a1ab315SDavid Howells typedef struct {
808a1ab315SDavid Howells 	int	val[2];
818a1ab315SDavid Howells } __kernel_fsid_t;
828a1ab315SDavid Howells #endif
838a1ab315SDavid Howells 
848a1ab315SDavid Howells /*
858a1ab315SDavid Howells  * anything below here should be completely generic
868a1ab315SDavid Howells  */
878a1ab315SDavid Howells typedef __kernel_long_t	__kernel_off_t;
888a1ab315SDavid Howells typedef long long	__kernel_loff_t;
8994c467ddSArnd Bergmann typedef __kernel_long_t	__kernel_old_time_t;
90c766d147SArnd Bergmann #ifndef __KERNEL__
918a1ab315SDavid Howells typedef __kernel_long_t	__kernel_time_t;
92c766d147SArnd Bergmann #endif
93acf8870aSDeepa Dinamani typedef long long __kernel_time64_t;
948a1ab315SDavid Howells typedef __kernel_long_t	__kernel_clock_t;
958a1ab315SDavid Howells typedef int		__kernel_timer_t;
968a1ab315SDavid Howells typedef int		__kernel_clockid_t;
978a1ab315SDavid Howells typedef char *		__kernel_caddr_t;
988a1ab315SDavid Howells typedef unsigned short	__kernel_uid16_t;
998a1ab315SDavid Howells typedef unsigned short	__kernel_gid16_t;
1008a1ab315SDavid Howells 
1018a1ab315SDavid Howells #endif /* __ASM_GENERIC_POSIX_TYPES_H */
102