git: 818cae0ff752 - main - kasan: provide bus peek/poke definitions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 26 Sep 2022 19:26:02 UTC
The branch main has been updated by kevans:
URL: https://cgit.FreeBSD.org/src/commit/?id=818cae0ff7527f39ef5efe1180de3e6461fff93c
commit 818cae0ff7527f39ef5efe1180de3e6461fff93c
Author: Mitchell Horne <mhorne@FreeBSD.org>
AuthorDate: 2022-09-26 19:24:21 +0000
Commit: Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2022-09-26 19:25:05 +0000
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
---
sys/kern/subr_asan.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/sys/kern/subr_asan.c b/sys/kern/subr_asan.c
index 11f7996cfe73..d82b25e33257 100644
--- a/sys/kern/subr_asan.c
+++ b/sys/kern/subr_asan.c
@@ -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);