[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2] vl: Print display options for -display help
From: |
Akihiko Odaki |
Subject: |
[PATCH v2] vl: Print display options for -display help |
Date: |
Fri, 15 Dec 2023 20:25:09 +0900 |
-display lists display backends, but does not tell their options.
Use the help messages from qemu-options.def, which include the list of
options.
Note that this change also has an unfortunate side effect that it will
no longer tell what UI modules are actually available.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
Changes in v2:
- Noted that it no longer tells the availability of UI modules.
(Marc-André Lureau)
- Link to v1:
20231214-help-v1-1-23823ac5a023@daynix.com">https://lore.kernel.org/r/20231214-help-v1-1-23823ac5a023@daynix.com
---
include/ui/console.h | 1 -
system/vl.c | 11 ++++++-----
ui/console.c | 20 --------------------
3 files changed, 6 insertions(+), 26 deletions(-)
diff --git a/include/ui/console.h b/include/ui/console.h
index a4a49ffc640c..58f757350647 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -470,7 +470,6 @@ bool qemu_display_find_default(DisplayOptions *opts);
void qemu_display_early_init(DisplayOptions *opts);
void qemu_display_init(DisplayState *ds, DisplayOptions *opts);
const char *qemu_display_get_vc(DisplayOptions *opts);
-void qemu_display_help(void);
/* vnc.c */
void vnc_display_init(const char *id, Error **errp);
diff --git a/system/vl.c b/system/vl.c
index 2bcd9efb9a64..f9656667ee54 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -915,16 +915,17 @@ enum {
typedef struct QEMUOption {
const char *name;
+ const char *help;
int flags;
int index;
uint32_t arch_mask;
} QEMUOption;
static const QEMUOption qemu_options[] = {
- { "h", 0, QEMU_OPTION_h, QEMU_ARCH_ALL },
+ { "h", NULL, 0, QEMU_OPTION_h, QEMU_ARCH_ALL },
#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask) \
- { option, opt_arg, opt_enum, arch_mask },
+ { option, opt_help, opt_arg, opt_enum, arch_mask },
#define DEFHEADING(text)
#define ARCHHEADING(text, arch_mask)
@@ -1094,10 +1095,10 @@ DisplayOptions *qmp_query_display_options(Error **errp)
return QAPI_CLONE(DisplayOptions, &dpy);
}
-static void parse_display(const char *p)
+static void parse_display(const char *p, const char *help)
{
if (is_help_option(p)) {
- qemu_display_help();
+ fputs(help, stdout);
exit(0);
}
@@ -2880,7 +2881,7 @@ void qemu_init(int argc, char **argv)
}
break;
case QEMU_OPTION_display:
- parse_display(optarg);
+ parse_display(optarg, popt->help);
break;
case QEMU_OPTION_nographic:
qdict_put_str(machine_opts_dict, "graphics", "off");
diff --git a/ui/console.c b/ui/console.c
index 7db921e3b7d6..6aee5e9a7ffb 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1691,23 +1691,3 @@ const char *qemu_display_get_vc(DisplayOptions *opts)
}
return vc;
}
-
-void qemu_display_help(void)
-{
- int idx;
-
- printf("Available display backend types:\n");
- printf("none\n");
- for (idx = DISPLAY_TYPE_NONE; idx < DISPLAY_TYPE__MAX; idx++) {
- if (!dpys[idx]) {
- Error *local_err = NULL;
- int rv = ui_module_load(DisplayType_str(idx), &local_err);
- if (rv < 0) {
- error_report_err(local_err);
- }
- }
- if (dpys[idx]) {
- printf("%s\n", DisplayType_str(dpys[idx]->type));
- }
- }
-}
---
base-commit: 4705fc0c8511d073bee4751c3c974aab2b10a970
change-id: 20231214-help-9fa146fc6e95
Best regards,
--
Akihiko Odaki <akihiko.odaki@daynix.com>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH v2] vl: Print display options for -display help,
Akihiko Odaki <=