Skip to content

Commit

Permalink
ui: Print available display backends with '-display help'
Browse files Browse the repository at this point in the history
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é <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 20200108144702.29969-1-thuth@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
  • Loading branch information
huth authored and kraxel committed Jan 14, 2020
1 parent 3c8a657 commit c388f40
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 1 deletion.
1 change: 1 addition & 0 deletions include/ui/console.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
3 changes: 2 additions & 1 deletion qemu-options.hx
Original file line number Diff line number Diff line change
Expand Up @@ -1669,7 +1669,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
Expand Down
15 changes: 15 additions & 0 deletions ui/console.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
}
}

void qemu_chr_parse_vc(QemuOpts *opts, ChardevBackend *backend, Error **errp)
{
int val;
Expand Down
5 changes: 5 additions & 0 deletions vl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1869,6 +1869,11 @@ static void parse_display(const char *p)
{
const char *opts;

if (is_help_option(p)) {
qemu_display_help();
exit(0);
}

if (strstart(p, "sdl", &opts)) {
/*
* sdl DisplayType needs hand-crafted parser instead of
Expand Down

0 comments on commit c388f40

Please sign in to comment.