On Thu, Aug 28, 2014 at 9:44 AM, zhanghailiang <
zhang.zhanghaili...@huawei.com> wrote:

> On 2014/8/27 18:00, Paolo Bonzini wrote:
>
>> Il 27/08/2014 11:24, zhanghailiang ha scritto:
>>
>>> This is the hmp counterpart of qmp query_machines
>>>
>>> Signed-off-by: zhanghailiang<zhang.zhanghaili...@huawei.com>
>>> ---
>>>   hmp-commands.hx |  2 ++
>>>   hmp.c           | 22 ++++++++++++++++++++++
>>>   hmp.h           |  1 +
>>>   monitor.c       |  7 +++++++
>>>   4 files changed, 32 insertions(+)
>>>
>>> diff --git a/hmp-commands.hx b/hmp-commands.hx
>>> index d0943b1..1d04235 100644
>>> --- a/hmp-commands.hx
>>> +++ b/hmp-commands.hx
>>> @@ -1780,6 +1780,8 @@ show qdev device model list
>>>   show roms
>>>   @item info tpm
>>>   show the TPM device
>>> +@item info machines
>>> +show supported machines information
>>>   @end table
>>>   ETEXI
>>>
>>> diff --git a/hmp.c b/hmp.c
>>> index 4d1838e..603f2f5 100644
>>> --- a/hmp.c
>>> +++ b/hmp.c
>>> @@ -725,6 +725,28 @@ void hmp_info_tpm(Monitor *mon, const QDict *qdict)
>>>       qapi_free_TPMInfoList(info_list);
>>>   }
>>>
>>> +void hmp_info_machines(Monitor *mon, const QDict *qdict)
>>> +{
>>> +    MachineInfoList *mach_list = NULL, *cur_item = NULL;
>>> +
>>> +    mach_list = qmp_query_machines(NULL);
>>> +    for (cur_item = mach_list; cur_item; cur_item = cur_item->next) {
>>> +        MachineInfo *machine;
>>> +        char default_chr = ' ';
>>> +
>>> +        machine = cur_item->value;
>>> +        if (machine->is_default) {
>>> +            default_chr = '*';
>>> +        }
>>> +        monitor_printf(mon, "%c %s:\n", default_chr, machine->name);
>>> +        monitor_printf(mon, "    max_cpus: %" PRId64 "\n",
>>> machine->cpu_max);
>>> +        if (machine->has_alias) {
>>> +            monitor_printf(mon, "    alias: %s\n", machine->alias);
>>> +        }
>>> +    }
>>> +    qapi_free_MachineInfoList(mach_list);
>>> +}
>>> +
>>>   void hmp_quit(Monitor *mon, const QDict *qdict)
>>>   {
>>>       monitor_suspend(mon);
>>> diff --git a/hmp.h b/hmp.h
>>> index 4fd3c4a..374e841 100644
>>> --- a/hmp.h
>>> +++ b/hmp.h
>>> @@ -38,6 +38,7 @@ void hmp_info_balloon(Monitor *mon, const QDict
>>> *qdict);
>>>   void hmp_info_pci(Monitor *mon, const QDict *qdict);
>>>   void hmp_info_block_jobs(Monitor *mon, const QDict *qdict);
>>>   void hmp_info_tpm(Monitor *mon, const QDict *qdict);
>>> +void hmp_info_machines(Monitor *mon, const QDict *qdict);
>>>   void hmp_quit(Monitor *mon, const QDict *qdict);
>>>   void hmp_stop(Monitor *mon, const QDict *qdict);
>>>   void hmp_system_reset(Monitor *mon, const QDict *qdict);
>>> diff --git a/monitor.c b/monitor.c
>>> index 34cee74..adc3645 100644
>>> --- a/monitor.c
>>> +++ b/monitor.c
>>> @@ -2921,6 +2921,13 @@ static mon_cmd_t info_cmds[] = {
>>>           .mhandler.cmd = hmp_info_memdev,
>>>       },
>>>       {
>>> +        .name       = "machines",
>>> +        .args_type  = "",
>>> +        .params     = "",
>>> +        .help       = "show supported machines information",
>>> +        .mhandler.cmd = hmp_info_machines,
>>> +    },
>>> +    {
>>>           .name       = NULL,
>>>       },
>>>   };
>>>
>>>
>> What is this useful for?  You can use "-machine help".
>>
>>
> Hmm, i just looked into the qmp commands and hmp commands,
> And found there is qmp_query_machines but no hmp_info_machines...
>
> Sorry for the noise;)
>
>
There exists some QMP commands that don't have corresponding HMP commands.
QMP is the latest and recommended interface for management tools.
HMP command is not always necessary, unless you have a good reason :-)

Reply via email to