mirror of https://gitee.com/openkylin/qemu.git
fuzz: Declare DMA Read callback function
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>
This commit is contained in:
parent
20f5a30293
commit
e7d3222e2e
|
@ -47,6 +47,14 @@ void fuzz_dma_read_cb(size_t addr,
|
||||||
size_t len,
|
size_t len,
|
||||||
MemoryRegion *mr,
|
MemoryRegion *mr,
|
||||||
bool is_write);
|
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
|
#endif
|
||||||
|
|
||||||
extern bool global_dirty_log;
|
extern bool global_dirty_log;
|
||||||
|
|
|
@ -3246,6 +3246,19 @@ void memory_region_init_rom_device(MemoryRegion *mr,
|
||||||
vmstate_register_ram(mr, owner_dev);
|
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 = {
|
static const TypeInfo memory_region_info = {
|
||||||
.parent = TYPE_OBJECT,
|
.parent = TYPE_OBJECT,
|
||||||
.name = TYPE_MEMORY_REGION,
|
.name = TYPE_MEMORY_REGION,
|
||||||
|
|
Loading…
Reference in New Issue