1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * This file is generally used by user-level software, so you need to
4 * be a little careful about namespace pollution etc.  Also, we cannot
5 * assume GCC is being used.
6 */
7
8#ifndef __SPARC_POSIX_TYPES_H
9#define __SPARC_POSIX_TYPES_H
10
11#if defined(__sparc__) && defined(__arch64__)
12/* sparc 64 bit */
13
14typedef unsigned short 	       __kernel_old_uid_t;
15typedef unsigned short         __kernel_old_gid_t;
16#define __kernel_old_uid_t __kernel_old_uid_t
17
18/* Note this piece of asymmetry from the v9 ABI.  */
19typedef int		       __kernel_suseconds_t;
20#define __kernel_suseconds_t __kernel_suseconds_t
21
22typedef long		__kernel_long_t;
23typedef unsigned long	__kernel_ulong_t;
24#define __kernel_long_t __kernel_long_t
25
26struct __kernel_old_timeval {
27	__kernel_long_t tv_sec;
28	__kernel_suseconds_t tv_usec;
29};
30#define __kernel_old_timeval __kernel_old_timeval
31
32#else
33/* sparc 32 bit */
34
35typedef unsigned int           __kernel_size_t;
36typedef int                    __kernel_ssize_t;
37typedef long int               __kernel_ptrdiff_t;
38#define __kernel_size_t __kernel_size_t
39
40typedef unsigned short         __kernel_ipc_pid_t;
41#define __kernel_ipc_pid_t __kernel_ipc_pid_t
42
43typedef unsigned short         __kernel_uid_t;
44typedef unsigned short         __kernel_gid_t;
45#define __kernel_uid_t __kernel_uid_t
46
47typedef unsigned short         __kernel_mode_t;
48#define __kernel_mode_t __kernel_mode_t
49
50typedef long                   __kernel_daddr_t;
51#define __kernel_daddr_t __kernel_daddr_t
52
53typedef unsigned short	       __kernel_old_dev_t;
54#define __kernel_old_dev_t __kernel_old_dev_t
55
56#endif /* defined(__sparc__) && defined(__arch64__) */
57
58#include <asm-generic/posix_types.h>
59
60#endif /* __SPARC_POSIX_TYPES_H */
61