qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] qemu-config: extract same logic in *_add_opts() to fill_conf


From: Markus Armbruster
Subject: Re: [PATCH] qemu-config: extract same logic in *_add_opts() to fill_config_groups()
Date: Fri, 02 Sep 2022 09:57:41 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Cc: Gerd & Kevin, because they were involved with the code that gets
refactored here, and no good deed shall go unpunished.

"Wang, Lei" <lei4.wang@intel.com> writes:

> QEMU use qemu_add_opts() and qemu_add_drive_opts() to add config options
> when initialization. Extract the same logic in both functions to a
> seperate function fill_config_groups() to reduce code redundency.
>
> Signed-off-by: Wang, Lei <lei4.wang@intel.com>
> ---
>  util/qemu-config.c | 39 ++++++++++++++++++++-------------------
>  1 file changed, 20 insertions(+), 19 deletions(-)
>
> diff --git a/util/qemu-config.c b/util/qemu-config.c
> index 433488aa56..3a1c85223a 100644
> --- a/util/qemu-config.c
> +++ b/util/qemu-config.c
> @@ -282,36 +282,37 @@ QemuOptsList *qemu_find_opts_err(const char *group, 
> Error **errp)
>      return find_list(vm_config_groups, group, errp);
>  }
>  
> -void qemu_add_drive_opts(QemuOptsList *list)
> +static int fill_config_groups(QemuOptsList *groups[], int entries,
> +                              QemuOptsList *list)
>  {
> -    int entries, i;
> +    int i;
>  
> -    entries = ARRAY_SIZE(drive_config_groups);
>      entries--; /* keep list NULL terminated */
>      for (i = 0; i < entries; i++) {
> -        if (drive_config_groups[i] == NULL) {
> -            drive_config_groups[i] = list;
> -            return;
> +        if (groups[i] == NULL) {
> +            groups[i] = list;
> +            return 0;
>          }
>      }
> -    fprintf(stderr, "ran out of space in drive_config_groups");
> -    abort();
> +    return -1;
>  }
>  
> -void qemu_add_opts(QemuOptsList *list)
> +void qemu_add_drive_opts(QemuOptsList *list)
>  {
> -    int entries, i;
> +    if (fill_config_groups(drive_config_groups, 
> ARRAY_SIZE(drive_config_groups),
> +                           list) < 0) {
> +        fprintf(stderr, "ran out of space in drive_config_groups");
> +        abort();
> +    }
> +}
>  
> -    entries = ARRAY_SIZE(vm_config_groups);
> -    entries--; /* keep list NULL terminated */
> -    for (i = 0; i < entries; i++) {
> -        if (vm_config_groups[i] == NULL) {
> -            vm_config_groups[i] = list;
> -            return;
> -        }
> +void qemu_add_opts(QemuOptsList *list)
> +{
> +    if (fill_config_groups(vm_config_groups, ARRAY_SIZE(vm_config_groups),
> +                           list) < 0) {
> +        fprintf(stderr, "ran out of space in vm_config_groups");
> +        abort();
>      }
> -    fprintf(stderr, "ran out of space in vm_config_groups");
> -    abort();
>  }
>  
>  /* Returns number of config groups on success, -errno on error */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]