| /* |
| * Human Monitor Interface |
| * |
| * 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 "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); |
| } |
| |
| void hmp_system_powerdown(Monitor *mon, const QDict *qdict) |
| { |
| qmp_system_powerdown(NULL); |
| } |