2011-09-03 01:34:48 +08:00
|
|
|
/*
|
|
|
|
* QEMU Management Protocol
|
|
|
|
*
|
|
|
|
* Copyright IBM, Corp. 2011
|
|
|
|
*
|
|
|
|
* Authors:
|
|
|
|
* Anthony Liguori <aliguori@us.ibm.com>
|
|
|
|
*
|
|
|
|
* This work is licensed under the terms of the GNU GPL, version 2. See
|
|
|
|
* the COPYING file in the top-level directory.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "qemu-common.h"
|
|
|
|
#include "sysemu.h"
|
|
|
|
#include "qmp-commands.h"
|
2011-09-13 02:10:53 +08:00
|
|
|
#include "kvm.h"
|
|
|
|
#include "arch_init.h"
|
2011-09-03 01:34:48 +08:00
|
|
|
|
|
|
|
NameInfo *qmp_query_name(Error **errp)
|
|
|
|
{
|
|
|
|
NameInfo *info = g_malloc0(sizeof(*info));
|
|
|
|
|
|
|
|
if (qemu_name) {
|
|
|
|
info->has_name = true;
|
|
|
|
info->name = g_strdup(qemu_name);
|
|
|
|
}
|
|
|
|
|
|
|
|
return info;
|
|
|
|
}
|
2011-08-27 04:38:13 +08:00
|
|
|
|
|
|
|
VersionInfo *qmp_query_version(Error **err)
|
|
|
|
{
|
|
|
|
VersionInfo *info = g_malloc0(sizeof(*info));
|
|
|
|
const char *version = QEMU_VERSION;
|
|
|
|
char *tmp;
|
|
|
|
|
|
|
|
info->qemu.major = strtol(version, &tmp, 10);
|
|
|
|
tmp++;
|
|
|
|
info->qemu.minor = strtol(tmp, &tmp, 10);
|
|
|
|
tmp++;
|
|
|
|
info->qemu.micro = strtol(tmp, &tmp, 10);
|
|
|
|
info->package = g_strdup(QEMU_PKGVERSION);
|
|
|
|
|
|
|
|
return info;
|
|
|
|
}
|
2011-09-13 02:10:53 +08:00
|
|
|
|
|
|
|
KvmInfo *qmp_query_kvm(Error **errp)
|
|
|
|
{
|
|
|
|
KvmInfo *info = g_malloc0(sizeof(*info));
|
|
|
|
|
|
|
|
info->enabled = kvm_enabled();
|
|
|
|
info->present = kvm_available();
|
|
|
|
|
|
|
|
return info;
|
|
|
|
}
|
|
|
|
|
2011-09-14 04:16:25 +08:00
|
|
|
UuidInfo *qmp_query_uuid(Error **errp)
|
|
|
|
{
|
|
|
|
UuidInfo *info = g_malloc0(sizeof(*info));
|
|
|
|
char uuid[64];
|
|
|
|
|
|
|
|
snprintf(uuid, sizeof(uuid), UUID_FMT, qemu_uuid[0], qemu_uuid[1],
|
|
|
|
qemu_uuid[2], qemu_uuid[3], qemu_uuid[4], qemu_uuid[5],
|
|
|
|
qemu_uuid[6], qemu_uuid[7], qemu_uuid[8], qemu_uuid[9],
|
|
|
|
qemu_uuid[10], qemu_uuid[11], qemu_uuid[12], qemu_uuid[13],
|
|
|
|
qemu_uuid[14], qemu_uuid[15]);
|
|
|
|
|
|
|
|
info->UUID = g_strdup(uuid);
|
|
|
|
return info;
|
|
|
|
}
|
|
|
|
|
2011-09-16 01:20:28 +08:00
|
|
|
void qmp_quit(Error **err)
|
|
|
|
{
|
|
|
|
no_shutdown = 0;
|
|
|
|
qemu_system_shutdown_request();
|
|
|
|
}
|
|
|
|
|
2011-09-16 01:34:39 +08:00
|
|
|
void qmp_stop(Error **errp)
|
|
|
|
{
|
|
|
|
vm_stop(RUN_STATE_PAUSED);
|
|
|
|
}
|
|
|
|
|
2011-09-16 01:41:46 +08:00
|
|
|
void qmp_system_reset(Error **errp)
|
|
|
|
{
|
|
|
|
qemu_system_reset_request();
|
|
|
|
}
|