xref: /OK3568_Linux_fs/kernel/Documentation/arm64/kasan-offsets.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun# Print out the KASAN_SHADOW_OFFSETS required to place the KASAN SHADOW
4*4882a593Smuzhiyun# start address at the mid-point of the kernel VA space
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunprint_kasan_offset () {
7*4882a593Smuzhiyun	printf "%02d\t" $1
8*4882a593Smuzhiyun	printf "0x%08x00000000\n" $(( (0xffffffff & (-1 << ($1 - 1 - 32))) \
9*4882a593Smuzhiyun			+ (1 << ($1 - 32 - $2)) \
10*4882a593Smuzhiyun			- (1 << (64 - 32 - $2)) ))
11*4882a593Smuzhiyun}
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunecho KASAN_SHADOW_SCALE_SHIFT = 3
14*4882a593Smuzhiyunprintf "VABITS\tKASAN_SHADOW_OFFSET\n"
15*4882a593Smuzhiyunprint_kasan_offset 48 3
16*4882a593Smuzhiyunprint_kasan_offset 47 3
17*4882a593Smuzhiyunprint_kasan_offset 42 3
18*4882a593Smuzhiyunprint_kasan_offset 39 3
19*4882a593Smuzhiyunprint_kasan_offset 36 3
20*4882a593Smuzhiyunecho
21*4882a593Smuzhiyunecho KASAN_SHADOW_SCALE_SHIFT = 4
22*4882a593Smuzhiyunprintf "VABITS\tKASAN_SHADOW_OFFSET\n"
23*4882a593Smuzhiyunprint_kasan_offset 48 4
24*4882a593Smuzhiyunprint_kasan_offset 47 4
25*4882a593Smuzhiyunprint_kasan_offset 42 4
26*4882a593Smuzhiyunprint_kasan_offset 39 4
27*4882a593Smuzhiyunprint_kasan_offset 36 4
28