mirror of https://github.com/xqemu/xqemu.git
qmp: add command "x-oob-test"
This command is only used to test OOB functionality. It should not be used for any other purposes. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20180309090006.10018-22-peterx@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> [eblake: grammar tweak] Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
3fd2457d18
commit
469638f9cb
|
@ -3427,3 +3427,21 @@
|
||||||
##
|
##
|
||||||
{ 'event': 'COMMAND_DROPPED' ,
|
{ 'event': 'COMMAND_DROPPED' ,
|
||||||
'data': { 'id': 'any', 'reason': 'CommandDropReason' } }
|
'data': { 'id': 'any', 'reason': 'CommandDropReason' } }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @x-oob-test:
|
||||||
|
#
|
||||||
|
# Test OOB functionality. When sending this command with lock=true,
|
||||||
|
# it'll try to hang the dispatcher. When sending it with lock=false,
|
||||||
|
# it'll try to notify the locked thread to continue. Note: it should
|
||||||
|
# only be used by QMP test program rather than anything else.
|
||||||
|
#
|
||||||
|
# Since: 2.12
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# { "execute": "x-oob-test",
|
||||||
|
# "arguments": { "lock": true } }
|
||||||
|
##
|
||||||
|
{ 'command': 'x-oob-test', 'data' : { 'lock': 'bool' },
|
||||||
|
'allow-oob': true }
|
||||||
|
|
16
qmp.c
16
qmp.c
|
@ -770,3 +770,19 @@ MemoryInfo *qmp_query_memory_size_summary(Error **errp)
|
||||||
|
|
||||||
return mem_info;
|
return mem_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static QemuSemaphore x_oob_test_sem;
|
||||||
|
|
||||||
|
static void __attribute__((constructor)) x_oob_test_init(void)
|
||||||
|
{
|
||||||
|
qemu_sem_init(&x_oob_test_sem, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void qmp_x_oob_test(bool lock, Error **errp)
|
||||||
|
{
|
||||||
|
if (lock) {
|
||||||
|
qemu_sem_wait(&x_oob_test_sem);
|
||||||
|
} else {
|
||||||
|
qemu_sem_post(&x_oob_test_sem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue