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