kasan: provide bus peek/poke definitions

Reviewed by:	andrew, markj
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D36700
This commit is contained in:
Mitchell Horne 2022-09-26 14:24:21 -05:00 committed by Kyle Evans
parent f8e38b421b
commit 818cae0ff7

View File

@ -44,6 +44,7 @@ __KERNEL_RCSID(0, "$NetBSD: subr_asan.c,v 1.26 2020/09/10 14:10:46 maxv Exp $");
#include <sys/sysctl.h>
#include <machine/asan.h>
#include <machine/bus.h>
/* ASAN constants. Part of the compiler ABI. */
#define KASAN_SHADOW_MASK (KASAN_SHADOW_SCALE - 1)
@ -1017,6 +1018,32 @@ ASAN_BUS_SET_FUNC(region, 4, uint32_t)
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);