[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] QMP command implementation help
From: |
Shraddha Kamat |
Subject: |
[Qemu-devel] QMP command implementation help |
Date: |
Mon, 17 Dec 2012 11:21:10 +0530 |
I am implementing couple of QMP commands to Qemu - so trying a
hello-world command first as shown here
https://github.com/qemu/qemu/blob/master/docs/writing-qmp-commands.txt
Step 1 :
========
Added to qapi-schema.json file this :
{ 'command': 'hello-world' }
Step 2:
=======
Added to qmp.c :
void qmp_hello_world(Error **errp)
{
printf("Hello, world!\n");
}
Step 3 :
========
Added to qmp-commands.hx :
{
.name = "hello-world",
.args_type = "",
.mhandler.cmd_new = qmp_marshal_input_hello_world,
},
and build upstream Qemu-kvm :
Then tried to test the command hello-world :
# telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{
"QMP": {
"version": {
"qemu": {
"micro": 50,
"minor": 2,
"major": 1
},
"package": " (qemu-kvm-devel)"
},
"capabilities": [
]
}
}
{ "execute": "qmp_capabilities" }
{
"return": {
}
}
{ "execute": "hello-world" }
{
"error": {
"class": "CommandNotFound",
"desc": "The command hello-world has not been found"
}
}
------------------------------------------------------
I debugged a bit -
qemu-kvm/x86_64-softmmu/qmp-commands-old.h
has this entry :
{
.name = "hello-world",
.args_type = "",
.mhandler.cmd_new = qmp_marshal_input_hello_world,
},
but in monitor.c/qmp_find_cmd() - qmp_cmds doesn't have
this entry and hence the error !!
Note that qemu_cmds is defined as
static const mon_cmd_t qmp_cmds[] = {
#include "qmp-commands-old.h"
{ /* NULL */ },
};
in monitor.c.
What might be causing qmp-commands-old.h not to load qmp_cmds[] with
hello-world command entry ? Please help.
-- Shraddha
- [Qemu-devel] QMP command implementation help,
Shraddha Kamat <=