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