[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';
>
- [PATCH v7 0/8] Add Qemu to SeaBIOS LCHS interface, Sam Eiderman, 2019/09/25
- [PATCH v7 1/8] block: Refactor macros - fix tabbing, Sam Eiderman, 2019/09/25
- [PATCH v7 2/8] block: Support providing LCHS from user, Sam Eiderman, 2019/09/25
- [PATCH v7 3/8] bootdevice: Add interface to gather LCHS, Sam Eiderman, 2019/09/25
- [PATCH v7 4/8] scsi: Propagate unrealize() callback to scsi-hd, Sam Eiderman, 2019/09/25
- [PATCH v7 5/8] bootdevice: Gather LCHS from all relevant devices, Sam Eiderman, 2019/09/25
- [PATCH v7 6/8] bootdevice: Refactor get_boot_devices_list, Sam Eiderman, 2019/09/25
- Re: [SeaBIOS] [PATCH v7 6/8] bootdevice: Refactor get_boot_devices_list,
Philippe Mathieu-Daudé <=
- [PATCH v7 7/8] bootdevice: FW_CFG interface for LCHS values, Sam Eiderman, 2019/09/25
[PATCH v7 8/8] hd-geo-test: Add tests for lchs override, Sam Eiderman, 2019/09/25
Re: [PATCH v7 0/8] Add Qemu to SeaBIOS LCHS interface, John Snow, 2019/09/25