Hi Jerry,
On Wed, 14 May 2025 16:29:49 -0600, Jerry Hoemann wrote:
> OEM Type 193: Other ROM Info.
>
> Signed-off-by: Jerry Hoemann <[email protected]>
> ---
> dmioem.c | 31 +++++++++++++++++++++++++++++++
> 1 file changed, 31 insertions(+)
>
> diff --git a/dmioem.c b/dmioem.c
> index ffbcd95..f158a77 100644
> --- a/dmioem.c
> +++ b/dmioem.c
> @@ -1001,6 +1001,37 @@ static int dmi_decode_hp(const struct dmi_header *h)
>
> switch (h->type)
> {
> + case 193:
> + /*
> + * Vendor Specific: Other ROM Info
> + *
> + * Offset | Name | Width | Description
> + * -------------------------------------
> + * 0x00 | Type | BYTE | 0xC1, ROM Structure
> Indicator
> + * 0x01 | Length | BYTE | Length of structure
> + * 0x02 | Handle | WORD | Unique handle
> + * 0x04 | ROM | BYTE | 01: Redundant ROM
> installed
> + * 0x05 | ROM vers | STRING| Version of the
> Redundant ROM
> + * 0x06 | Reserved | BYTE | Reserved in Gen9
> forward
> + * 0x07 | OEM ROM | STRING| If not blank, OEM ROM
> binary file name
> + * 0x08 | OEM Date | STRING| If not blank, OEM ROM
> binary build date
> + */
> + if (gen < G9) return 0;
> + pr_handle_name("%s ProLiant Other ROM Info", company);
> + if (h->length < 0x09) break;
> + if ((gen < G12) && data[0x04])
Don't you want to mask with 0x01 to explicitly check bit 0? I imagine
the other bits may be used for something else in the future.
> + pr_attr("Redundant ROM Version", "%s",
> dmi_string(h, data[0x05]));
> + if (data[0x07])
> + {
> + const char * str = dmi_string(h, data[0x07]);
> + if (str && *str && *str++ != ' ' && *str &&
> *str != ' ')
dmi_string() can't return NULL so the first test isn't needed.
For the rest, I think strncmp(str, " ", 2) would be more readable. If
you still prefer to open-code it, note that you could use str[0] to
test the first char and str[1] to test the second char, which would
make the intentions more obvious. Both options would let you reuse str
in pr_attr().
(Personally I would only test the first char as I can't imagine a valid
filename starting with a space, but you'll know better.)
You can tell me what you prefer and I'll edit before committing, if you
don't want to resend.
> + {
> + pr_attr("OEM ROM Binary Filename",
> "%s", dmi_string(h, data[0x07]));
> + pr_attr("OEM ROM Binary Build Date",
> "%s", dmi_string(h, data[0x08]));
> + }
> + }
> + break;
> +
> case 194:
> /*
> * Vendor Specific: Super IO Enable/Disable Features
Thanks,
--
Jean Delvare
SUSE L3 Support