[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 13/31] fuzz: Declare DMA Read callback function
From: |
Thomas Huth |
Subject: |
[PULL 13/31] fuzz: Declare DMA Read callback function |
Date: |
Mon, 26 Oct 2020 11:06:14 +0100 |
From: Alexander Bulekov <alxndr@bu.edu>
This patch declares the fuzz_dma_read_cb function and uses the
preprocessor and linker(weak symbols) to handle these cases:
When we build softmmu/all with --enable-fuzzing, there should be no
strong symbol defined for fuzz_dma_read_cb, and we link against a weak
stub function.
When we build softmmu/fuzz with --enable-fuzzing, we link against the
strong symbol in generic_fuzz.c
When we build softmmu/all without --enable-fuzzing, fuzz_dma_read_cb is
an empty, inlined function. As long as we don't call any other functions
when building the arguments, there should be no overhead.
Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Message-Id: <20201023150746.107063-6-alxndr@bu.edu>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/exec/memory.h | 8 ++++++++
softmmu/memory.c | 13 +++++++++++++
2 files changed, 21 insertions(+)
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 93d27bff26..4aaf578ce6 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -47,6 +47,14 @@ void fuzz_dma_read_cb(size_t addr,
size_t len,
MemoryRegion *mr,
bool is_write);
+#else
+static inline void fuzz_dma_read_cb(size_t addr,
+ size_t len,
+ MemoryRegion *mr,
+ bool is_write)
+{
+ /* Do Nothing */
+}
#endif
extern bool global_dirty_log;
diff --git a/softmmu/memory.c b/softmmu/memory.c
index a5d1641820..cec0e0f743 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -3246,6 +3246,19 @@ void memory_region_init_rom_device(MemoryRegion *mr,
vmstate_register_ram(mr, owner_dev);
}
+/*
+ * Support softmmu builds with CONFIG_FUZZ using a weak symbol and a stub for
+ * the fuzz_dma_read_cb callback
+ */
+#ifdef CONFIG_FUZZ
+void __attribute__((weak)) fuzz_dma_read_cb(size_t addr,
+ size_t len,
+ MemoryRegion *mr,
+ bool is_write)
+{
+}
+#endif
+
static const TypeInfo memory_region_info = {
.parent = TYPE_OBJECT,
.name = TYPE_MEMORY_REGION,
--
2.18.2
- [PULL 15/31] fuzz: Add support for custom crossover functions, (continued)
- [PULL 15/31] fuzz: Add support for custom crossover functions, Thomas Huth, 2020/10/26
- [PULL 14/31] fuzz: Add fuzzer callbacks to DMA-read functions, Thomas Huth, 2020/10/26
- [PULL 19/31] scripts/oss-fuzz: Add crash trace minimization script, Thomas Huth, 2020/10/26
- [PULL 16/31] fuzz: add a DISABLE_PCI op to generic-fuzzer, Thomas Huth, 2020/10/26
- [PULL 20/31] fuzz: Add instructions for using generic-fuzz, Thomas Huth, 2020/10/26
- [PULL 21/31] fuzz: add an "opaque" to the FuzzTarget struct, Thomas Huth, 2020/10/26
- [PULL 17/31] fuzz: add a crossover function to generic-fuzzer, Thomas Huth, 2020/10/26
- [PULL 18/31] scripts/oss-fuzz: Add script to reorder a generic-fuzzer trace, Thomas Huth, 2020/10/26
- [PULL 22/31] fuzz: add generic-fuzz configs for oss-fuzz, Thomas Huth, 2020/10/26
- [PULL 24/31] scripts/oss-fuzz: use hardlinks instead of copying, Thomas Huth, 2020/10/26
- [PULL 13/31] fuzz: Declare DMA Read callback function,
Thomas Huth <=
- [PULL 23/31] fuzz: register predefined generic-fuzz configs, Thomas Huth, 2020/10/26
- [PULL 25/31] scripts/oss-fuzz: ignore the generic-fuzz target, Thomas Huth, 2020/10/26
- [PULL 27/31] test/acceptance: Remove the CONTINUOUS_INTEGRATION tags, Thomas Huth, 2020/10/26
- [PULL 26/31] tests/acceptance/ppc_prep_40p: Fix the URL to the NetBSD-4.0 archive, Thomas Huth, 2020/10/26
- [PULL 28/31] tests/acceptance: Enable AVOCADO_ALLOW_UNTRUSTED_CODE in the gitlab-CI, Thomas Huth, 2020/10/26
- [PULL 29/31] test/docker/dockerfiles: Add missing packages for acceptance tests, Thomas Huth, 2020/10/26
- [PULL 30/31] tests/acceptance: Remove unused import, Thomas Huth, 2020/10/26
- [PULL 31/31] tests/acceptance: Use .ppm extention for Portable PixMap files, Thomas Huth, 2020/10/26
- Re: [PULL 00/31] qtests and gitlab-CI/acceptance patches, Peter Maydell, 2020/10/26