[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 19/55] qtest: Adding qtest_memset and qmemset.
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 19/55] qtest: Adding qtest_memset and qmemset. |
Date: |
Fri, 15 Aug 2014 18:06:26 +0100 |
From: John Snow <address@hidden>
Currently, libqtest allows for memread and memwrite, but
does not offer a simple way to zero out regions of memory.
This patch adds a simple function to do so.
Signed-off-by: John Snow <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
tests/libqtest.c | 12 ++++++++++++
tests/libqtest.h | 24 ++++++++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/tests/libqtest.c b/tests/libqtest.c
index 4a75cd3..e525e6f 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -659,6 +659,18 @@ void qtest_memwrite(QTestState *s, uint64_t addr, const
void *data, size_t size)
qtest_rsp(s, 0);
}
+void qtest_memset(QTestState *s, uint64_t addr, uint8_t pattern, size_t size)
+{
+ size_t i;
+
+ qtest_sendf(s, "write 0x%" PRIx64 " 0x%zx 0x", addr, size);
+ for (i = 0; i < size; i++) {
+ qtest_sendf(s, "%02x", pattern);
+ }
+ qtest_sendf(s, "\n");
+ qtest_rsp(s, 0);
+}
+
QDict *qmp(const char *fmt, ...)
{
va_list ap;
diff --git a/tests/libqtest.h b/tests/libqtest.h
index 8f323c7..1be0934 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -283,6 +283,17 @@ void qtest_memread(QTestState *s, uint64_t addr, void
*data, size_t size);
void qtest_memwrite(QTestState *s, uint64_t addr, const void *data, size_t
size);
/**
+ * qtest_memset:
+ * @s: #QTestState instance to operate on.
+ * @addr: Guest address to write to.
+ * @patt: Byte pattern to fill the guest memory region with.
+ * @size: Number of bytes to write.
+ *
+ * Write a pattern to guest memory.
+ */
+void qtest_memset(QTestState *s, uint64_t addr, uint8_t patt, size_t size);
+
+/**
* qtest_clock_step_next:
* @s: #QTestState instance to operate on.
*
@@ -621,6 +632,19 @@ static inline void memwrite(uint64_t addr, const void
*data, size_t size)
}
/**
+ * qmemset:
+ * @addr: Guest address to write to.
+ * @patt: Byte pattern to fill the guest memory region with.
+ * @size: Number of bytes to write.
+ *
+ * Write a pattern to guest memory.
+ */
+static inline void qmemset(uint64_t addr, uint8_t patt, size_t size)
+{
+ qtest_memset(global_qtest, addr, patt, size);
+}
+
+/**
* clock_step_next:
*
* Advance the QEMU_CLOCK_VIRTUAL to the next deadline.
--
1.9.3
- [Qemu-devel] [PULL 09/55] ide: wrap start_dma callback, (continued)
- [Qemu-devel] [PULL 09/55] ide: wrap start_dma callback, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 11/55] ide: fold add_status callback into set_inactive, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 10/55] ide: remove wrong setting of BM_STATUS_INT, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 12/55] ide: move BM_STATUS bits to pci.[ch], Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 13/55] ide: move retry constants out of BM_STATUS_* namespace, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 14/55] ahci: remove duplicate PORT_IRQ_* constants, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 16/55] ide: make all commands go through cmd_done, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 17/55] ahci: construct PIO Setup FIS for PIO commands, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 15/55] ide: stop PIO transfer on errors, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 18/55] q35: Enable the ioapic device to be seen by qtest., Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 19/55] qtest: Adding qtest_memset and qmemset.,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL 20/55] libqos: Correct memory leak, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 21/55] libqtest: Correct small memory leak., Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 22/55] libqos: Fixes a small memory leak., Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 23/55] libqos: allow qpci_iomap to return BAR mapping size, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 24/55] qtest/ide: Fix small memory leak, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 26/55] cmd646: synchronise DMA interrupt status with UDMA interrupt status, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 25/55] cmd646: add constants for CNTRL register access, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 28/55] cmd646: allow MRDMODE interrupt status bits clearing from PCI config space, Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 31/55] channel-posix: using qemu_set_nonblock() instead of fcntl(O_NONBLOCK), Stefan Hajnoczi, 2014/08/15
- [Qemu-devel] [PULL 32/55] dataplane: print why starting failed, Stefan Hajnoczi, 2014/08/15