Message ID | 1409131452-11064-1-git-send-email-zhang.zhanghailiang@huawei.com |
---|---|
State | New |
Headers | show |
Il 27/08/2014 11:24, zhanghailiang ha scritto: > This is the hmp counterpart of qmp query_machines > > Signed-off-by: zhanghailiang <zhang.zhanghailiang@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". Paolo
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.zhanghailiang@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;)
On Thu, Aug 28, 2014 at 9:44 AM, zhanghailiang < zhang.zhanghailiang@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.zhanghailiang@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 :-)
On 2014/8/28 10:43, Amos Kong wrote: > On Thu, Aug 28, 2014 at 9:44 AM, zhanghailiang< > zhang.zhanghailiang@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.zhanghailiang@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 :-) > Got it, Thanks.:)
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, }, };
This is the hmp counterpart of qmp query_machines Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> --- hmp-commands.hx | 2 ++ hmp.c | 22 ++++++++++++++++++++++ hmp.h | 1 + monitor.c | 7 +++++++ 4 files changed, 32 insertions(+)