/* * Human Monitor Interface * * Copyright IBM, Corp. 2011 * * Authors: * Anthony Liguori * * This work is licensed under the terms of the GNU GPL, version 2. See * the COPYING file in the top-level directory. * */ #include "hmp.h" #include "qmp-commands.h" void hmp_info_name(Monitor *mon) { NameInfo *info; info = qmp_query_name(NULL); if (info->has_name) { monitor_printf(mon, "%s\n", info->name); } qapi_free_NameInfo(info); } void hmp_info_version(Monitor *mon) { VersionInfo *info; info = qmp_query_version(NULL); monitor_printf(mon, "%" PRId64 ".%" PRId64 ".%" PRId64 "%s\n", info->qemu.major, info->qemu.minor, info->qemu.micro, info->package); qapi_free_VersionInfo(info); } void hmp_info_kvm(Monitor *mon) { KvmInfo *info; info = qmp_query_kvm(NULL); monitor_printf(mon, "kvm support: "); if (info->present) { monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled"); } else { monitor_printf(mon, "not compiled\n"); } qapi_free_KvmInfo(info); } void hmp_info_status(Monitor *mon) { StatusInfo *info; info = qmp_query_status(NULL); monitor_printf(mon, "VM status: %s%s", info->running ? "running" : "paused", info->singlestep ? " (single step mode)" : ""); if (!info->running && info->status != RUN_STATE_PAUSED) { monitor_printf(mon, " (%s)", RunState_lookup[info->status]); } monitor_printf(mon, "\n"); qapi_free_StatusInfo(info); } void hmp_info_uuid(Monitor *mon) { UuidInfo *info; info = qmp_query_uuid(NULL); monitor_printf(mon, "%s\n", info->UUID); qapi_free_UuidInfo(info); } void hmp_info_chardev(Monitor *mon) { ChardevInfoList *char_info, *info; char_info = qmp_query_chardev(NULL); for (info = char_info; info; info = info->next) { monitor_printf(mon, "%s: filename=%s\n", info->value->label, info->value->filename); } qapi_free_ChardevInfoList(char_info); } void hmp_quit(Monitor *mon, const QDict *qdict) { monitor_suspend(mon); qmp_quit(NULL); } void hmp_stop(Monitor *mon, const QDict *qdict) { qmp_stop(NULL); } void hmp_system_reset(Monitor *mon, const QDict *qdict) { qmp_system_reset(NULL); }