1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __ASM_KASAN_H 3 #define __ASM_KASAN_H 4 5 #ifndef __ASSEMBLY__ 6 7 #ifdef CONFIG_KASAN 8 9 #include <linux/kernel.h> 10 #include <linux/sizes.h> 11 #include <asm/kmem_layout.h> 12 13 #define KASAN_SHADOW_SCALE_SHIFT 3 14 15 /* Start of area covered by KASAN */ 16 #define KASAN_START_VADDR __XTENSA_UL_CONST(0x90000000) 17 /* Start of the shadow map */ 18 #define KASAN_SHADOW_START (XCHAL_PAGE_TABLE_VADDR + XCHAL_PAGE_TABLE_SIZE) 19 /* Size of the shadow map */ 20 #define KASAN_SHADOW_SIZE (-KASAN_START_VADDR >> KASAN_SHADOW_SCALE_SHIFT) 21 /* Offset for mem to shadow address transformation */ 22 #define KASAN_SHADOW_OFFSET __XTENSA_UL_CONST(CONFIG_KASAN_SHADOW_OFFSET) 23 24 void __init kasan_early_init(void); 25 void __init kasan_init(void); 26 27 #else 28 29 static inline void kasan_early_init(void) 30 { 31 } 32 33 static inline void kasan_init(void) 34 { 35 } 36 37 #endif 38 #endif 39 #endif 40