include/ui/console.h | 1 - system/vl.c | 11 ++++++----- ui/console.c | 21 --------------------- 3 files changed, 6 insertions(+), 27 deletions(-)
-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>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
Changes in v3:
- Dropped qapi/qapi-commands-ui.h inclusion. (Philippe Mathieu-Daudé)
- Link to v2: https://lore.kernel.org/r/20231215-help-v2-1-3d39b58af520@daynix.com
Changes in v2:
- Noted that it no longer tells the availability of UI modules.
(Marc-André Lureau)
- Link to v1: https://lore.kernel.org/r/20231214-help-v1-1-23823ac5a023@daynix.com
---
include/ui/console.h | 1 -
system/vl.c | 11 ++++++-----
ui/console.c | 21 ---------------------
3 files changed, 6 insertions(+), 27 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..c230951dce62 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -26,7 +26,6 @@
#include "ui/console.h"
#include "hw/qdev-core.h"
#include "qapi/error.h"
-#include "qapi/qapi-commands-ui.h"
#include "qapi/visitor.h"
#include "qemu/coroutine.h"
#include "qemu/error-report.h"
@@ -1691,23 +1690,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>
Hi Marc-André, Paolo,
This patch has Reviewed-by: and Tested-by: but not pulled yet. Can
either of you pull this?
Regards,
Akihiko Odaki
On 2023/12/16 17:03, Akihiko Odaki wrote:
> -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>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> Changes in v3:
> - Dropped qapi/qapi-commands-ui.h inclusion. (Philippe Mathieu-Daudé)
> - Link to v2: https://lore.kernel.org/r/20231215-help-v2-1-3d39b58af520@daynix.com
>
> Changes in v2:
> - Noted that it no longer tells the availability of UI modules.
> (Marc-André Lureau)
> - Link to v1: https://lore.kernel.org/r/20231214-help-v1-1-23823ac5a023@daynix.com
> ---
> include/ui/console.h | 1 -
> system/vl.c | 11 ++++++-----
> ui/console.c | 21 ---------------------
> 3 files changed, 6 insertions(+), 27 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..c230951dce62 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -26,7 +26,6 @@
> #include "ui/console.h"
> #include "hw/qdev-core.h"
> #include "qapi/error.h"
> -#include "qapi/qapi-commands-ui.h"
> #include "qapi/visitor.h"
> #include "qemu/coroutine.h"
> #include "qemu/error-report.h"
> @@ -1691,23 +1690,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,
On Sun, 18 Feb 2024, Akihiko Odaki wrote: > Hi Marc-André, Paolo, > > This patch has Reviewed-by: and Tested-by: but not pulled yet. Can either of > you pull this? I think we dropped this because it's not consistent with the other help options such as -cpu help -device help that print the available options. What we need instead is e.g. -display cocoa,help to print help about the specific ui backend which isn't what this patch does so it's not the right way. To do that however we probably need an expert on options and QOM because it does not seem easy to add such option. Therefore I don't ask you to do that instead but this patch is also not what I wanted. Regards. BALATON Zoltan > Regards, > Akihiko Odaki > > On 2023/12/16 17:03, Akihiko Odaki wrote: >> -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> >> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> --- >> Changes in v3: >> - Dropped qapi/qapi-commands-ui.h inclusion. (Philippe Mathieu-Daudé) >> - Link to v2: >> https://lore.kernel.org/r/20231215-help-v2-1-3d39b58af520@daynix.com >> >> Changes in v2: >> - Noted that it no longer tells the availability of UI modules. >> (Marc-André Lureau) >> - Link to v1: >> https://lore.kernel.org/r/20231214-help-v1-1-23823ac5a023@daynix.com >> --- >> include/ui/console.h | 1 - >> system/vl.c | 11 ++++++----- >> ui/console.c | 21 --------------------- >> 3 files changed, 6 insertions(+), 27 deletions(-)
On 2024/02/18 19:11, BALATON Zoltan wrote: > On Sun, 18 Feb 2024, Akihiko Odaki wrote: >> Hi Marc-André, Paolo, >> >> This patch has Reviewed-by: and Tested-by: but not pulled yet. Can >> either of you pull this? > > I think we dropped this because it's not consistent with the other help > options such as -cpu help -device help that print the available options. > What we need instead is e.g. -display cocoa,help to print help about the > specific ui backend which isn't what this patch does so it's not the > right way. To do that however we probably need an expert on options and > QOM because it does not seem easy to add such option. Therefore I don't > ask you to do that instead but this patch is also not what I wanted. I see. Please dismiss this patch. Regards, Akihiko Odaki > > Regards. > BALATON Zoltan > >> Regards, >> Akihiko Odaki >> >> On 2023/12/16 17:03, Akihiko Odaki wrote: >>> -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> >>> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> >>> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> >>> --- >>> Changes in v3: >>> - Dropped qapi/qapi-commands-ui.h inclusion. (Philippe Mathieu-Daudé) >>> - Link to v2: >>> https://lore.kernel.org/r/20231215-help-v2-1-3d39b58af520@daynix.com >>> >>> Changes in v2: >>> - Noted that it no longer tells the availability of UI modules. >>> (Marc-André Lureau) >>> - Link to v1: >>> https://lore.kernel.org/r/20231214-help-v1-1-23823ac5a023@daynix.com >>> --- >>> include/ui/console.h | 1 - >>> system/vl.c | 11 ++++++----- >>> ui/console.c | 21 --------------------- >>> 3 files changed, 6 insertions(+), 27 deletions(-)
© 2016 - 2025 Red Hat, Inc.