qemu-devel
[Top][All Lists]
Advanced

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

Re: [SeaBIOS] [PATCH v7 6/8] bootdevice: Refactor get_boot_devices_list


From: Philippe Mathieu-Daudé
Subject: Re: [SeaBIOS] [PATCH v7 6/8] bootdevice: Refactor get_boot_devices_list
Date: Thu, 26 Sep 2019 11:42:39 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0

On 9/25/19 1:06 PM, Sam Eiderman wrote:
> From: Sam Eiderman <address@hidden>
> 
> Move device name construction to a separate function.
> 
> We will reuse this function in the following commit to pass logical CHS
> parameters through fw_cfg much like we currently pass bootindex.
> 
> Reviewed-by: Karl Heubaum <address@hidden>
> Reviewed-by: Arbel Moshe <address@hidden>
> Signed-off-by: Sam Eiderman <address@hidden>
> ---
>  bootdevice.c | 61 +++++++++++++++++++++++++++++-----------------------
>  1 file changed, 34 insertions(+), 27 deletions(-)
> 
> diff --git a/bootdevice.c b/bootdevice.c
> index bc5e1c2de4..2b12fb85a4 100644
> --- a/bootdevice.c
> +++ b/bootdevice.c
> @@ -202,6 +202,39 @@ DeviceState *get_boot_device(uint32_t position)
>      return res;
>  }
>  
> +static char *get_boot_device_path(DeviceState *dev, bool ignore_suffixes,
> +                                  char *suffix)

Please update to 'const char *suffix'.
John, can you do it directly in your tree before sending the pull request?
With it:
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


> +{
> +    char *devpath = NULL, *s = NULL, *d, *bootpath;
> +
> +    if (dev) {
> +        devpath = qdev_get_fw_dev_path(dev);
> +        assert(devpath);
> +    }
> +
> +    if (!ignore_suffixes) {
> +        if (dev) {
> +            d = qdev_get_own_fw_dev_path_from_handler(dev->parent_bus, dev);
> +            if (d) {
> +                assert(!suffix);
> +                s = d;
> +            } else {
> +                s = g_strdup(suffix);
> +            }
> +        } else {
> +            s = g_strdup(suffix);
> +        }
> +    }
> +
> +    bootpath = g_strdup_printf("%s%s",
> +                               devpath ? devpath : "",
> +                               s ? s : "");
> +    g_free(devpath);
> +    g_free(s);
> +
> +    return bootpath;
> +}
> +
>  /*
>   * This function returns null terminated string that consist of new line
>   * separated device paths.
> @@ -218,36 +251,10 @@ char *get_boot_devices_list(size_t *size)
>      bool ignore_suffixes = mc->ignore_boot_device_suffixes;
>  
>      QTAILQ_FOREACH(i, &fw_boot_order, link) {
> -        char *devpath = NULL,  *suffix = NULL;
>          char *bootpath;
> -        char *d;
>          size_t len;
>  
> -        if (i->dev) {
> -            devpath = qdev_get_fw_dev_path(i->dev);
> -            assert(devpath);
> -        }
> -
> -        if (!ignore_suffixes) {
> -            if (i->dev) {
> -                d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus,
> -                                                          i->dev);
> -                if (d) {
> -                    assert(!i->suffix);
> -                    suffix = d;
> -                } else {
> -                    suffix = g_strdup(i->suffix);
> -                }
> -            } else {
> -                suffix = g_strdup(i->suffix);
> -            }
> -        }
> -
> -        bootpath = g_strdup_printf("%s%s",
> -                                   devpath ? devpath : "",
> -                                   suffix ? suffix : "");
> -        g_free(devpath);
> -        g_free(suffix);
> +        bootpath = get_boot_device_path(i->dev, ignore_suffixes, i->suffix);
>  
>          if (total) {
>              list[total-1] = '\n';
> 



reply via email to

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