ACK: [PATCH] lib: dmicheck: replace defines by enum type
ivanhu
ivan.hu at canonical.com
Wed Aug 8 01:31:16 UTC 2018
On 08/01/2018 01:39 AM, Alex Hung wrote:
> This also eliminates the needs to update FWTS_SMBIOS_CHASSIS_MAX if
> SMBIOS spec introduces new chassis types.
>
> Signed-off-by: Alex Hung <alex.hung at canonical.com>
> ---
> src/dmi/dmicheck/dmicheck.c | 2 +-
> src/lib/include/fwts_smbios.h | 82 ++++++++++++++++++++++---------------------
> 2 files changed, 43 insertions(+), 41 deletions(-)
>
> diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c
> index 89288ad..8497c2a 100644
> --- a/src/dmi/dmicheck/dmicheck.c
> +++ b/src/dmi/dmicheck/dmicheck.c
> @@ -1135,7 +1135,7 @@ static void dmicheck_entry(fwts_framework *fw,
> dmi_str_check(fw, table, addr, "Manufacturer", hdr, 0x4);
> dmi_min_max_mask_uint8_check(fw, table, addr, "Chassis Type", hdr, 0x5, 0x1, 0x24, 0x0, 0x7f);
>
> - if ((data[5] & ~0x80) > FWTS_SMBIOS_CHASSIS_MAX) {
> + if ((data[5] & ~0x80) >= FWTS_SMBIOS_CHASSIS_MAX) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_INVALID_HARDWARE_ENTRY,
> "Incorrect Chassis Type "
> "SMBIOS Type 3 reports 0x%" PRIx8,
> diff --git a/src/lib/include/fwts_smbios.h b/src/lib/include/fwts_smbios.h
> index f977bb8..05f1d5f 100644
> --- a/src/lib/include/fwts_smbios.h
> +++ b/src/lib/include/fwts_smbios.h
> @@ -27,46 +27,48 @@
> #define FWTS_SMBIOS_REGION_END (0x000fffff)
> #define FWTS_SMBIOS_REGION_SIZE (FWTS_SMBIOS_REGION_END - FWTS_SMBIOS_REGION_START)
>
> -#define FWTS_SMBIOS_CHASSIS_INVALID (0x00)
> -#define FWTS_SMBIOS_CHASSIS_OTHER (0X01)
> -#define FWTS_SMBIOS_CHASSIS_UNKNOWN (0x02)
> -#define FWTS_SMBIOS_CHASSIS_DESKTOP (0x03)
> -#define FWTS_SMBIOS_CHASSIS_LOW_PROFILE_DESKTOP (0x04)
> -#define FWTS_SMBIOS_CHASSIS_PIZZA_BOX (0x05)
> -#define FWTS_SMBIOS_CHASSIS_MINI_TOWER (0x06)
> -#define FWTS_SMBIOS_CHASSIS_TOWER (0x07)
> -#define FWTS_SMBIOS_CHASSIS_PORTABLE (0x08)
> -#define FWTS_SMBIOS_CHASSIS_LAPTOP (0x09)
> -#define FWTS_SMBIOS_CHASSIS_NOTEBOOK (0x0A)
> -#define FWTS_SMBIOS_CHASSIS_HANDHELD (0x0B)
> -#define FWTS_SMBIOS_CHASSIS_DOCKING_STATION (0x0C)
> -#define FWTS_SMBIOS_CHASSIS_ALL_IN_ONE (0x0D)
> -#define FWTS_SMBIOS_CHASSIS_SUB_NOTEBOOK (0x0E)
> -#define FWTS_SMBIOS_CHASSIS_SPACE_SAVING (0x0F)
> -#define FWTS_SMBIOS_CHASSIS_LUNCH_BOX (0x10)
> -#define FWTS_SMBIOS_CHASSIS_MAIN_SERVER_CHASSIS (0x11)
> -#define FWTS_SMBIOS_CHASSIS_EXPANISON_CHASSIS (0x12)
> -#define FWTS_SMBIOS_CHASSIS_SUB_CHASSIS (0x13)
> -#define FWTS_SMBIOS_CHASSIS_BUS_EXPANSION_CHASSIS (0x14)
> -#define FWTS_SMBIOS_CHASSIS_PERIPHERAL_CHASSIS (0x15)
> -#define FWTS_SMBIOS_CHASSIS_RAID_CHASSIS (0x16)
> -#define FWTS_SMBIOS_CHASSIS_RACK_MOUNT_CHASSIS (0x17)
> -#define FWTS_SMBIOS_CHASSIS_SEALED_CASE_PC (0x18)
> -#define FWTS_SMBIOS_CHASSIS_MULTI_SYSTEM_CHASSIS (0x19)
> -#define FWTS_SMBIOS_CHASSIS_COMPACT_PCI (0x1A)
> -#define FWTS_SMBIOS_CHASSIS_ADVANCED_TCA (0x1B)
> -#define FWTS_SMBIOS_CHASSIS_BLADE (0x1C)
> -#define FWTS_SMBIOS_CHASSIS_BLADE_ENCLOSURE (0x1D)
> -#define FWTS_SMBIOS_CHASSIS_TABLET (0x1E)
> -#define FWTS_SMBIOS_CHASSIS_CONVERTIBLE (0x1F)
> -#define FWTS_SMBIOS_CHASSIS_DETACHABLE (0x20)
> -#define FWTS_SMBIOS_CHASSIS_IOT_GATEWAY (0x21)
> -#define FWTS_SMBIOS_CHASSIS_EMBEDDED_PC (0x22)
> -#define FWTS_SMBIOS_CHASSIS_MINI_PC (0x23)
> -#define FWTS_SMBIOS_CHASSIS_STICK_PC (0x24)
> -
> -/* Always update this to the last FWTS_SMBIOS_CHASSIS type */
> -#define FWTS_SMBIOS_CHASSIS_MAX (FWTS_SMBIOS_CHASSIS_STICK_PC)
> +/* SMBIOS chassis in type 3 (Table 17 - System Enclosure or Chassis Types) */
> +enum {
> + FWTS_SMBIOS_CHASSIS_INVALID,
> + FWTS_SMBIOS_CHASSIS_OTHER,
> + FWTS_SMBIOS_CHASSIS_UNKNOWN,
> + FWTS_SMBIOS_CHASSIS_DESKTOP,
> + FWTS_SMBIOS_CHASSIS_LOW_PROFILE_DESKTOP,
> + FWTS_SMBIOS_CHASSIS_PIZZA_BOX,
> + FWTS_SMBIOS_CHASSIS_MINI_TOWER,
> + FWTS_SMBIOS_CHASSIS_TOWER,
> + FWTS_SMBIOS_CHASSIS_PORTABLE,
> + FWTS_SMBIOS_CHASSIS_LAPTOP,
> + FWTS_SMBIOS_CHASSIS_NOTEBOOK,
> + FWTS_SMBIOS_CHASSIS_HANDHELD,
> + FWTS_SMBIOS_CHASSIS_DOCKING_STATION,
> + FWTS_SMBIOS_CHASSIS_ALL_IN_ONE,
> + FWTS_SMBIOS_CHASSIS_SUB_NOTEBOOK,
> + FWTS_SMBIOS_CHASSIS_SPACE_SAVING,
> + FWTS_SMBIOS_CHASSIS_LUNCH_BOX,
> + FWTS_SMBIOS_CHASSIS_MAIN_SERVER_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_EXPANISON_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_SUB_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_BUS_EXPANSION_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_PERIPHERAL_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_RAID_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_RACK_MOUNT_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_SEALED_CASE_PC,
> + FWTS_SMBIOS_CHASSIS_MULTI_SYSTEM_CHASSIS,
> + FWTS_SMBIOS_CHASSIS_COMPACT_PCI,
> + FWTS_SMBIOS_CHASSIS_ADVANCED_TCA,
> + FWTS_SMBIOS_CHASSIS_BLADE,
> + FWTS_SMBIOS_CHASSIS_BLADE_ENCLOSURE,
> + FWTS_SMBIOS_CHASSIS_TABLET,
> + FWTS_SMBIOS_CHASSIS_CONVERTIBLE,
> + FWTS_SMBIOS_CHASSIS_DETACHABLE,
> + FWTS_SMBIOS_CHASSIS_IOT_GATEWAY,
> + FWTS_SMBIOS_CHASSIS_EMBEDDED_PC,
> + FWTS_SMBIOS_CHASSIS_MINI_PC,
> + FWTS_SMBIOS_CHASSIS_STICK_PC,
> + /* end of the chassis types */
> + FWTS_SMBIOS_CHASSIS_MAX
> +};
>
> typedef enum {
> FWTS_SMBIOS_UNKNOWN = -1,
Acked-by: Ivan Hu <ivan.hu at canonical.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/fwts-devel/attachments/20180808/674b0864/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/fwts-devel/attachments/20180808/674b0864/attachment-0001.sig>
More information about the fwts-devel
mailing list