Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/um/include/asm/kasan.h
29271 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
#ifndef __ASM_UM_KASAN_H
3
#define __ASM_UM_KASAN_H
4
5
#include <linux/init.h>
6
#include <linux/const.h>
7
8
#define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL)
9
10
/* used in kasan_mem_to_shadow to divide by 8 */
11
#define KASAN_SHADOW_SCALE_SHIFT 3
12
13
#ifdef CONFIG_X86_64
14
#define KASAN_HOST_USER_SPACE_END_ADDR 0x00007fffffffffffUL
15
/* KASAN_SHADOW_SIZE is the size of total address space divided by 8 */
16
#define KASAN_SHADOW_SIZE ((KASAN_HOST_USER_SPACE_END_ADDR + 1) >> \
17
KASAN_SHADOW_SCALE_SHIFT)
18
#else
19
#error "KASAN_SHADOW_SIZE is not defined for this sub-architecture"
20
#endif /* CONFIG_X86_64 */
21
22
#define KASAN_SHADOW_START (KASAN_SHADOW_OFFSET)
23
#define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE)
24
25
#ifdef CONFIG_KASAN
26
void kasan_init(void);
27
28
#if defined(CONFIG_STATIC_LINK) && defined(CONFIG_KASAN_INLINE)
29
#error UML does not work in KASAN_INLINE mode with STATIC_LINK enabled!
30
#endif
31
#else
32
static inline void kasan_init(void) { }
33
#endif /* CONFIG_KASAN */
34
35
#endif /* __ASM_UM_KASAN_H */
36
37