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 /* End of the shadow map */ 22 #define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE) 23 /* Offset for mem to shadow address transformation */ 24 #define KASAN_SHADOW_OFFSET __XTENSA_UL_CONST(CONFIG_KASAN_SHADOW_OFFSET) 25 26 void __init kasan_early_init(void); 27 void __init kasan_init(void); 28 29 #else 30 31 static inline void kasan_early_init(void) 32 { 33 } 34 35 static inline void kasan_init(void) 36 { 37 } 38 39 #endif 40 #endif 41 #endif 42