aboutsummaryrefslogtreecommitdiff
path: root/include/hw
diff options
context:
space:
mode:
authorAlexander Bulekov <alxndr@bu.edu>2021-03-15 10:05:10 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2021-03-16 14:30:30 -0400
commit230376d285b38f5b83882ebdd2e0d0570431dd09 (patch)
treeab179fb04da2c021b4e140879185a612c772db56 /include/hw
parentd7da0e560128e56f55a2f1f27fa66dd8c5db446c (diff)
downloadqemu-230376d285b38f5b83882ebdd2e0d0570431dd09.zip
qemu-230376d285b38f5b83882ebdd2e0d0570431dd09.tar.gz
qemu-230376d285b38f5b83882ebdd2e0d0570431dd09.tar.bz2
memory: add a sparse memory device for fuzzing
For testing, it can be useful to simulate an enormous amount of memory (e.g. 2^64 RAM). This adds an MMIO device that acts as sparse memory. When something writes a nonzero value to a sparse-mem address, we allocate a block of memory. For now, since the only user of this device is the fuzzer, we do not track and free zeroed blocks. The device has a very low priority (so it can be mapped beneath actual RAM, and virtual device MMIO regions). Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Reviewed-by: Darren Kenny <darren.kenny@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/hw')
-rw-r--r--include/hw/mem/sparse-mem.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/hw/mem/sparse-mem.h b/include/hw/mem/sparse-mem.h
new file mode 100644
index 0000000..f9863b1
--- /dev/null
+++ b/include/hw/mem/sparse-mem.h
@@ -0,0 +1,19 @@
+/*
+ * A sparse memory device. Useful for fuzzing
+ *
+ * Copyright Red Hat Inc., 2021
+ *
+ * Authors:
+ * Alexander Bulekov <alxndr@bu.edu>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+#ifndef SPARSE_MEM_H
+#define SPARSE_MEM_H
+#define TYPE_SPARSE_MEM "sparse-mem"
+
+MemoryRegion *sparse_mem_init(uint64_t addr, uint64_t length);
+
+#endif