mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 03:59:52 +00:00
qtest: Adding qtest_memset and qmemset.
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 <jsnow@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
552b48f44d
commit
86298845e1
@ -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;
|
||||
|
@ -282,6 +282,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.
|
||||
@ -620,6 +631,19 @@ static inline void memwrite(uint64_t addr, const void *data, size_t size)
|
||||
qtest_memwrite(global_qtest, addr, data, 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:
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user