Message ID | 20240305155724.2047069-10-imammedo@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Workaround Windows failing to find 64bit SMBIOS entry point with SeaBIOS | expand |
> On 05-Mar-2024, at 21:27, Igor Mammedov <imammedo@redhat.com> wrote: > > it will be used by follow up patch when legacy handling > is moved out into a separate file. > > Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Ani Sinha <anisinha@redhat.com> > --- > hw/smbios/smbios.c | 18 ++++++++++++++---- > 1 file changed, 14 insertions(+), 4 deletions(-) > > diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c > index 97cf762228..01180bd82c 100644 > --- a/hw/smbios/smbios.c > +++ b/hw/smbios/smbios.c > @@ -1287,6 +1287,14 @@ static bool save_opt_list(size_t *ndest, char ***dest, QemuOpts *opts, > return true; > } > > +static void smbios_add_usr_blob_size(size_t size) > +{ > + if (!usr_blobs_sizes) { > + usr_blobs_sizes = g_array_new(false, false, sizeof(size_t)); > + } > + g_array_append_val(usr_blobs_sizes, size); > +} > + > void smbios_entry_add(QemuOpts *opts, Error **errp) > { > const char *val; > @@ -1334,10 +1342,12 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) > smbios_type4_count++; > } > > - if (!usr_blobs_sizes) { > - usr_blobs_sizes = g_array_new(false, false, sizeof(size_t)); > - } > - g_array_append_val(usr_blobs_sizes, size); > + /* > + * preserve blob size for legacy mode so it could build its > + * blobs flavor from 'usr_blobs' > + */ > + smbios_add_usr_blob_size(size); > + > usr_blobs_len += size; > if (size > usr_table_max) { > usr_table_max = size; > -- > 2.39.3 >
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c index 97cf762228..01180bd82c 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -1287,6 +1287,14 @@ static bool save_opt_list(size_t *ndest, char ***dest, QemuOpts *opts, return true; } +static void smbios_add_usr_blob_size(size_t size) +{ + if (!usr_blobs_sizes) { + usr_blobs_sizes = g_array_new(false, false, sizeof(size_t)); + } + g_array_append_val(usr_blobs_sizes, size); +} + void smbios_entry_add(QemuOpts *opts, Error **errp) { const char *val; @@ -1334,10 +1342,12 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) smbios_type4_count++; } - if (!usr_blobs_sizes) { - usr_blobs_sizes = g_array_new(false, false, sizeof(size_t)); - } - g_array_append_val(usr_blobs_sizes, size); + /* + * preserve blob size for legacy mode so it could build its + * blobs flavor from 'usr_blobs' + */ + smbios_add_usr_blob_size(size); + usr_blobs_len += size; if (size > usr_table_max) { usr_table_max = size;
it will be used by follow up patch when legacy handling is moved out into a separate file. Signed-off-by: Igor Mammedov <imammedo@redhat.com> --- hw/smbios/smbios.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)