Files
Alexander Winkowski fa0cd620e3 ANDROID: Update CFI patchset from android11-5.4
Change-Id: Iff956ce7c2b89d3a442b0b81deba0da323f5d18b
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
2025-03-31 10:08:57 -04:00

45 lines
1.1 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Clang Control Flow Integrity (CFI) support.
*
* Copyright (C) 2019 Google LLC
*/
#ifndef _LINUX_CFI_H
#define _LINUX_CFI_H
#include <linux/stringify.h>
#ifdef CONFIG_CFI_CLANG
#ifdef CONFIG_MODULES
typedef void (*cfi_check_fn)(uint64_t id, void *ptr, void *diag);
/* Compiler-generated function in each module, and the kernel */
#define CFI_CHECK_FN __cfi_check
#define CFI_CHECK_FN_NAME __stringify(CFI_CHECK_FN)
extern void CFI_CHECK_FN(uint64_t id, void *ptr, void *diag);
#ifdef CONFIG_CFI_CLANG_SHADOW
extern void cfi_module_add(struct module *mod, unsigned long min_addr,
unsigned long max_addr);
extern void cfi_module_remove(struct module *mod, unsigned long min_addr,
unsigned long max_addr);
#else
static inline void cfi_module_add(struct module *mod, unsigned long min_addr,
unsigned long max_addr)
{
}
static inline void cfi_module_remove(struct module *mod, unsigned long min_addr,
unsigned long max_addr)
{
}
#endif /* CONFIG_CFI_CLANG_SHADOW */
#endif /* CONFIG_MODULES */
#endif /* CONFIG_CFI_CLANG */
#endif /* _LINUX_CFI_H */