On 20/01/2020 01.01, Philippe Mathieu-Daudé wrote: > Hi Thomas, > > On 1/8/20 3:47 PM, Thomas Huth wrote: >> We already print availabled devices with "-device help", or available >> backends with "-netdev help" or "-chardev help". Let's provide a way >> for the users to query the available display backends, too. >> >> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> >> Tested-by: Philippe Mathieu-Daudé <phi...@redhat.com> >> Signed-off-by: Thomas Huth <th...@redhat.com> >> --- >> v3: Mention -display help in the qemu-doc, too (as suggested by Philippe) >> >> include/ui/console.h | 1 + >> qemu-options.hx | 3 ++- >> ui/console.c | 15 +++++++++++++++ >> vl.c | 5 +++++ >> 4 files changed, 23 insertions(+), 1 deletion(-) >> >> diff --git a/include/ui/console.h b/include/ui/console.h >> index 281f9c145b..f35b4fc082 100644 >> --- a/include/ui/console.h >> +++ b/include/ui/console.h >> @@ -442,6 +442,7 @@ void qemu_display_register(QemuDisplay *ui); >> bool qemu_display_find_default(DisplayOptions *opts); >> void qemu_display_early_init(DisplayOptions *opts); >> void qemu_display_init(DisplayState *ds, DisplayOptions *opts); >> +void qemu_display_help(void); >> >> /* vnc.c */ >> void vnc_display_init(const char *id, Error **errp); >> diff --git a/qemu-options.hx b/qemu-options.hx >> index e9d6231438..d593931664 100644 >> --- a/qemu-options.hx >> +++ b/qemu-options.hx >> @@ -1586,7 +1586,8 @@ STEXI >> @item -display @var{type} >> @findex -display >> Select type of display to use. This option is a replacement for the >> -old style -sdl/-curses/... options. Valid values for @var{type} are >> +old style -sdl/-curses/... options. Use @code{-display help} to list >> +the available display types. Valid values for @var{type} are >> @table @option >> @item sdl >> Display video output via SDL (usually in a separate graphics >> diff --git a/ui/console.c b/ui/console.c >> index ac79d679f5..69339b028b 100644 >> --- a/ui/console.c >> +++ b/ui/console.c >> @@ -2333,6 +2333,21 @@ void qemu_display_init(DisplayState *ds, >> DisplayOptions *opts) >> dpys[opts->type]->init(ds, opts); >> } >> >> +void qemu_display_help(void) >> +{ >> + int idx; >> + >> + printf("Available display backend types:\n"); >> + for (idx = DISPLAY_TYPE_NONE; idx < DISPLAY_TYPE__MAX; idx++) { >> + if (!dpys[idx]) { >> + ui_module_load_one(DisplayType_str(idx)); >> + } >> + if (dpys[idx]) { >> + printf("%s\n", DisplayType_str(dpys[idx]->type)); > > While listed in the man page, the "none" display is not listed here, any > clue?
I assume we'd need to print it out manually here since there is no implementation for this in the dpys array. Care to send a patch? Thomas