diff --git a/sys/kern/subr_asan.c b/sys/kern/subr_asan.c --- a/sys/kern/subr_asan.c +++ b/sys/kern/subr_asan.c @@ -44,6 +44,7 @@ #include #include +#include /* ASAN constants. Part of the compiler ABI. */ #define KASAN_SHADOW_MASK (KASAN_SHADOW_SCALE - 1) @@ -1017,6 +1018,32 @@ ASAN_BUS_SET_FUNC(multi_stream, 4, uint32_t) ASAN_BUS_SET_FUNC(region_stream, 4, uint32_t) +#define ASAN_BUS_PEEK_FUNC(width, type) \ + int kasan_bus_space_peek_##width(bus_space_tag_t tag, \ + bus_space_handle_t hnd, bus_size_t offset, type *valuep) \ + { \ + return (bus_space_peek_##width(tag, hnd, offset, \ + valuep)); \ + } + +ASAN_BUS_PEEK_FUNC(1, uint8_t) +ASAN_BUS_PEEK_FUNC(2, uint16_t) +ASAN_BUS_PEEK_FUNC(4, uint32_t) +ASAN_BUS_PEEK_FUNC(8, uint64_t) + +#define ASAN_BUS_POKE_FUNC(width, type) \ + int kasan_bus_space_poke_##width(bus_space_tag_t tag, \ + bus_space_handle_t hnd, bus_size_t offset, type value) \ + { \ + return (bus_space_poke_##width(tag, hnd, offset, \ + value)); \ + } + +ASAN_BUS_POKE_FUNC(1, uint8_t) +ASAN_BUS_POKE_FUNC(2, uint16_t) +ASAN_BUS_POKE_FUNC(4, uint32_t) +ASAN_BUS_POKE_FUNC(8, uint64_t) + /* -------------------------------------------------------------------------- */ void __asan_register_globals(struct __asan_global *, size_t);