169 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __ASM_GENERIC_COMPAT_H3#define __ASM_GENERIC_COMPAT_H4 5#ifndef COMPAT_USER_HZ6#define COMPAT_USER_HZ 1007#endif8 9#ifndef COMPAT_RLIM_INFINITY10#define COMPAT_RLIM_INFINITY 0xffffffff11#endif12 13#ifndef COMPAT_OFF_T_MAX14#define COMPAT_OFF_T_MAX 0x7fffffff15#endif16 17#ifndef compat_arg_u6418#ifndef CONFIG_CPU_BIG_ENDIAN19#define compat_arg_u64(name) u32 name##_lo, u32 name##_hi20#define compat_arg_u64_dual(name) u32, name##_lo, u32, name##_hi21#else22#define compat_arg_u64(name) u32 name##_hi, u32 name##_lo23#define compat_arg_u64_dual(name) u32, name##_hi, u32, name##_lo24#endif25#define compat_arg_u64_glue(name) (((u64)name##_lo & 0xffffffffUL) | \26 ((u64)name##_hi << 32))27#endif /* compat_arg_u64 */28 29/* These types are common across all compat ABIs */30typedef u32 compat_size_t;31typedef s32 compat_ssize_t;32typedef s32 compat_clock_t;33typedef s32 compat_pid_t;34typedef u32 compat_ino_t;35typedef s32 compat_off_t;36typedef s64 compat_loff_t;37typedef s32 compat_daddr_t;38typedef s32 compat_timer_t;39typedef s32 compat_key_t;40typedef s16 compat_short_t;41typedef s32 compat_int_t;42typedef s32 compat_long_t;43typedef u16 compat_ushort_t;44typedef u32 compat_uint_t;45typedef u32 compat_ulong_t;46typedef u32 compat_uptr_t;47typedef u32 compat_caddr_t;48typedef u32 compat_aio_context_t;49typedef u32 compat_old_sigset_t;50 51#ifndef __compat_uid_t52typedef u32 __compat_uid_t;53typedef u32 __compat_gid_t;54#endif55 56#ifndef __compat_uid32_t57typedef u32 __compat_uid32_t;58typedef u32 __compat_gid32_t;59#endif60 61#ifndef compat_mode_t62typedef u32 compat_mode_t;63#endif64 65#ifdef CONFIG_COMPAT_FOR_U64_ALIGNMENT66typedef s64 __attribute__((aligned(4))) compat_s64;67typedef u64 __attribute__((aligned(4))) compat_u64;68#else69typedef s64 compat_s64;70typedef u64 compat_u64;71#endif72 73#ifndef _COMPAT_NSIG74typedef u32 compat_sigset_word;75#define _COMPAT_NSIG _NSIG76#define _COMPAT_NSIG_BPW 3277#endif78 79#ifndef compat_dev_t80typedef u32 compat_dev_t;81#endif82 83#ifndef compat_ipc_pid_t84typedef s32 compat_ipc_pid_t;85#endif86 87#ifndef compat_fsid_t88typedef __kernel_fsid_t compat_fsid_t;89#endif90 91#ifndef compat_statfs92struct compat_statfs {93 compat_int_t f_type;94 compat_int_t f_bsize;95 compat_int_t f_blocks;96 compat_int_t f_bfree;97 compat_int_t f_bavail;98 compat_int_t f_files;99 compat_int_t f_ffree;100 compat_fsid_t f_fsid;101 compat_int_t f_namelen;102 compat_int_t f_frsize;103 compat_int_t f_flags;104 compat_int_t f_spare[4];105};106#endif107 108#ifndef compat_ipc64_perm109struct compat_ipc64_perm {110 compat_key_t key;111 __compat_uid32_t uid;112 __compat_gid32_t gid;113 __compat_uid32_t cuid;114 __compat_gid32_t cgid;115 compat_mode_t mode;116 unsigned char __pad1[4 - sizeof(compat_mode_t)];117 compat_ushort_t seq;118 compat_ushort_t __pad2;119 compat_ulong_t unused1;120 compat_ulong_t unused2;121};122 123struct compat_semid64_ds {124 struct compat_ipc64_perm sem_perm;125 compat_ulong_t sem_otime;126 compat_ulong_t sem_otime_high;127 compat_ulong_t sem_ctime;128 compat_ulong_t sem_ctime_high;129 compat_ulong_t sem_nsems;130 compat_ulong_t __unused3;131 compat_ulong_t __unused4;132};133 134struct compat_msqid64_ds {135 struct compat_ipc64_perm msg_perm;136 compat_ulong_t msg_stime;137 compat_ulong_t msg_stime_high;138 compat_ulong_t msg_rtime;139 compat_ulong_t msg_rtime_high;140 compat_ulong_t msg_ctime;141 compat_ulong_t msg_ctime_high;142 compat_ulong_t msg_cbytes;143 compat_ulong_t msg_qnum;144 compat_ulong_t msg_qbytes;145 compat_pid_t msg_lspid;146 compat_pid_t msg_lrpid;147 compat_ulong_t __unused4;148 compat_ulong_t __unused5;149};150 151struct compat_shmid64_ds {152 struct compat_ipc64_perm shm_perm;153 compat_size_t shm_segsz;154 compat_ulong_t shm_atime;155 compat_ulong_t shm_atime_high;156 compat_ulong_t shm_dtime;157 compat_ulong_t shm_dtime_high;158 compat_ulong_t shm_ctime;159 compat_ulong_t shm_ctime_high;160 compat_pid_t shm_cpid;161 compat_pid_t shm_lpid;162 compat_ulong_t shm_nattch;163 compat_ulong_t __unused4;164 compat_ulong_t __unused5;165};166#endif167 168#endif169