1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_RISCV_CFI_H 3#define _ASM_RISCV_CFI_H 4 5/* 6 * Clang Control Flow Integrity (CFI) support. 7 * 8 * Copyright (C) 2023 Google LLC 9 */ 10#include <linux/bug.h> 11 12struct pt_regs; 13 14#ifdef CONFIG_CFI_CLANG 15enum bug_trap_type handle_cfi_failure(struct pt_regs *regs); 16#define __bpfcall 17static inline int cfi_get_offset(void) 18{ 19 return 4; 20} 21 22#define cfi_get_offset cfi_get_offset 23extern u32 cfi_bpf_hash; 24extern u32 cfi_bpf_subprog_hash; 25extern u32 cfi_get_func_hash(void *func); 26#else 27static inline enum bug_trap_type handle_cfi_failure(struct pt_regs *regs) 28{ 29 return BUG_TRAP_TYPE_NONE; 30} 31 32#define cfi_bpf_hash 0U 33#define cfi_bpf_subprog_hash 0U 34static inline u32 cfi_get_func_hash(void *func) 35{ 36 return 0; 37} 38#endif /* CONFIG_CFI_CLANG */ 39 40#endif /* _ASM_RISCV_CFI_H */ 41