linux/arch/x86/include/asm/compat.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_X86_COMPAT_H
#define _ASM_X86_COMPAT_H

/*
 * Architecture specific compatibility types
 */
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/sched/task_stack.h>
#include <asm/processor.h>
#include <asm/user32.h>
#include <asm/unistd.h>

#define compat_mode_t
compat_mode_t;

#define __compat_uid_t
__compat_uid_t;
__compat_gid_t;

#define compat_dev_t
compat_dev_t;

#define compat_ipc_pid_t
compat_ipc_pid_t;

#define compat_statfs

#include <asm-generic/compat.h>

#define COMPAT_UTS_MACHINE

compat_nlink_t;

struct compat_stat {};

/*
 * IA32 uses 4 byte alignment for 64 bit quantities, so we need to pack the
 * compat flock64 structure.
 */
#define __ARCH_NEED_COMPAT_FLOCK64_PACKED

struct compat_statfs {};

#ifdef CONFIG_X86_X32_ABI
#define COMPAT_USE_64BIT_TIME
#endif

static inline bool in_x32_syscall(void)
{}

static inline bool in_32bit_syscall(void)
{}

#ifdef CONFIG_COMPAT
static inline bool in_compat_syscall(void)
{}
#define in_compat_syscall
#define compat_need_64bit_alignment_fixup
#endif

struct compat_siginfo;

#ifdef CONFIG_X86_X32_ABI
int copy_siginfo_to_user32(struct compat_siginfo __user *to,
		const kernel_siginfo_t *from);
#define copy_siginfo_to_user32
#endif /* CONFIG_X86_X32_ABI */

#endif /* _ASM_X86_COMPAT_H */