aboutsummaryrefslogtreecommitdiff
path: root/qemu-ga.c
diff options
context:
space:
mode:
authorMichael Roth <mdroth@linux.vnet.ibm.com>2011-07-19 15:41:55 -0500
committerLuiz Capitulino <lcapitulino@gmail.com>2011-07-21 16:48:15 -0300
commite3d4d25206a13ca48936e4357a53591997ce6d57 (patch)
tree1239b54af27fe1171fec77bc9c3ecc10436a0f4f /qemu-ga.c
parent48ff7a625b3611d075d8798585df86455bb2d1fd (diff)
downloadqemu-e3d4d25206a13ca48936e4357a53591997ce6d57.zip
qemu-e3d4d25206a13ca48936e4357a53591997ce6d57.tar.gz
qemu-e3d4d25206a13ca48936e4357a53591997ce6d57.tar.bz2
guest agent: add guest agent RPCs/commands
This adds the initial set of QMP/QAPI commands provided by the guest agent: guest-sync guest-ping guest-info guest-shutdown guest-file-open guest-file-read guest-file-write guest-file-seek guest-file-flush guest-file-close guest-fsfreeze-freeze guest-fsfreeze-thaw guest-fsfreeze-status The input/output specification for these commands are documented in the schema. Example usage: host: qemu -device virtio-serial \ -chardev socket,path=/tmp/vs0.sock,server,nowait,id=qga0 \ -device virtserialport,chardev=qga0,name=org.qemu.quest_agent.0 ... echo "{'execute':'guest-info'}" | socat stdio unix-connect:/tmp/qga0.sock guest: qemu-ga -m virtio-serial -p /dev/virtio-ports/org.qemu.guest_agent.0 \ -p /var/run/qemu-guest-agent.pid -d Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
Diffstat (limited to 'qemu-ga.c')
-rw-r--r--qemu-ga.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/qemu-ga.c b/qemu-ga.c
index 1f3585c..6e2f61f 100644
--- a/qemu-ga.c
+++ b/qemu-ga.c
@@ -636,6 +636,9 @@ int main(int argc, char **argv)
g_log_set_default_handler(ga_log, s);
g_log_set_fatal_mask(NULL, G_LOG_LEVEL_ERROR);
s->logging_enabled = true;
+ s->command_state = ga_command_state_new();
+ ga_command_state_init(s, s->command_state);
+ ga_command_state_init_all(s->command_state);
ga_state = s;
module_call_init(MODULE_INIT_QAPI);
@@ -644,6 +647,7 @@ int main(int argc, char **argv)
g_main_loop_run(ga_state->main_loop);
+ ga_command_state_cleanup_all(ga_state->command_state);
unlink(pidfile);
return 0;