/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_RISCV_CFI_H #define _ASM_RISCV_CFI_H /* * Clang Control Flow Integrity (CFI) support. * * Copyright (C) 2023 Google LLC */ #include struct pt_regs; #ifdef CONFIG_CFI_CLANG enum bug_trap_type handle_cfi_failure(struct pt_regs *regs); #define __bpfcall static inline int cfi_get_offset(void) { return 4; } #define cfi_get_offset cfi_get_offset extern u32 cfi_bpf_hash; extern u32 cfi_bpf_subprog_hash; extern u32 cfi_get_func_hash(void *func); #else static inline enum bug_trap_type handle_cfi_failure(struct pt_regs *regs) { return BUG_TRAP_TYPE_NONE; } #define cfi_bpf_hash 0U #define cfi_bpf_subprog_hash 0U static inline u32 cfi_get_func_hash(void *func) { return 0; } #endif /* CONFIG_CFI_CLANG */ #endif /* _ASM_RISCV_CFI_H */