^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) #!/bin/sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # Print out the KASAN_SHADOW_OFFSETS required to place the KASAN SHADOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) # start address at the mid-point of the kernel VA space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) print_kasan_offset () {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) printf "%02d\t" $1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) printf "0x%08x00000000\n" $(( (0xffffffff & (-1 << ($1 - 1 - 32))) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) + (1 << ($1 - 32 - $2)) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - (1 << (64 - 32 - $2)) ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) echo KASAN_SHADOW_SCALE_SHIFT = 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) printf "VABITS\tKASAN_SHADOW_OFFSET\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) print_kasan_offset 48 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) print_kasan_offset 47 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) print_kasan_offset 42 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) print_kasan_offset 39 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) print_kasan_offset 36 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) echo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) echo KASAN_SHADOW_SCALE_SHIFT = 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) printf "VABITS\tKASAN_SHADOW_OFFSET\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) print_kasan_offset 48 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) print_kasan_offset 47 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) print_kasan_offset 42 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) print_kasan_offset 39 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) print_kasan_offset 36 4