2026-01-29 22:25:33 +08:00

62 lines
1.5 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* arch/arm64/include/asm/seccomp.h
*
* Copyright (C) 2014 Linaro Limited
* Author: AKASHI Takahiro <takahiro.akashi@linaro.org>
*/
#ifndef _ASM_SECCOMP_H
#define _ASM_SECCOMP_H
#include <asm/unistd.h>
#ifdef CONFIG_AARCH32_EL0
#define __NR_seccomp_read_32 __NR_compat_read
#define __NR_seccomp_write_32 __NR_compat_write
#define __NR_seccomp_exit_32 __NR_compat_exit
#define __NR_seccomp_sigreturn_32 __NR_compat_rt_sigreturn
#endif /* CONFIG_COMPAT */
#ifdef CONFIG_COMPAT
#ifndef __COMPAT_SYSCALL_NR
static inline const int *get_compat_mode1_syscalls(void)
{
#ifdef CONFIG_AARCH32_EL0
static const int mode1_syscalls_a32[] = {
__NR_compat_read, __NR_compat_write,
__NR_compat_exit, __NR_compat_sigreturn,
0, /* null terminated */
};
#endif
static const int mode1_syscalls_ilp32[] = {
__NR_read, __NR_write,
__NR_exit, __NR_rt_sigreturn,
0, /* null terminated */
};
#ifdef CONFIG_AARCH32_EL0
if (is_a32_compat_task())
return mode1_syscalls_a32;
#endif
return mode1_syscalls_ilp32;
}
#define get_compat_mode1_syscalls get_compat_mode1_syscalls
#endif
#endif
#include <asm-generic/seccomp.h>
#define SECCOMP_ARCH_NATIVE AUDIT_ARCH_AARCH64
#define SECCOMP_ARCH_NATIVE_NR NR_syscalls
#define SECCOMP_ARCH_NATIVE_NAME "aarch64"
#ifdef CONFIG_AARCH32_EL0
# define SECCOMP_ARCH_COMPAT AUDIT_ARCH_ARM
# define SECCOMP_ARCH_COMPAT_NR __NR_compat_syscalls
# define SECCOMP_ARCH_COMPAT_NAME "arm"
#endif /* CONFIG_AARCH32_EL0 */
#endif /* _ASM_SECCOMP_H */