(UINT32_C(1) << CHID_SMBIOS_BASEBOARD_PRODUCT),
[14] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER),
+
+ /* Extra non-standard CHIDs */
+
+ [EXTRA_CHID_BASE + 0] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
+ (UINT32_C(1) << CHID_SMBIOS_FAMILY) |
+ (UINT32_C(1) << CHID_SMBIOS_PRODUCT_NAME)|
+ (UINT32_C(1) << CHID_EDID_PANEL),
+
+ [EXTRA_CHID_BASE + 1] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
+ (UINT32_C(1) << CHID_SMBIOS_FAMILY) |
+ (UINT32_C(1) << CHID_EDID_PANEL),
+
+ [EXTRA_CHID_BASE + 2] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
+ (UINT32_C(1) << CHID_SMBIOS_PRODUCT_SKU) |
+ (UINT32_C(1) << CHID_EDID_PANEL),
};
void chid_calculate(const char16_t *const smbios_fields[static _CHID_SMBIOS_FIELDS_MAX], EFI_GUID ret_chids[static CHID_TYPES_MAX]) {
#include "efi-fundamental.h"
#include "string-util-fundamental.h"
-#define CHID_TYPES_MAX 15
+#define CHID_TYPES_MAX 18
+/* Any chids starting from EXTRA_CHID_BASE are non-standard and are subject to change and renumeration at any time */
+#define EXTRA_CHID_BASE 15
typedef enum ChidSmbiosFields {
CHID_SMBIOS_MANUFACTURER,
CHID_SMBIOS_BIOS_MAJOR,
CHID_SMBIOS_BIOS_MINOR,
CHID_SMBIOS_ENCLOSURE_TYPE,
+ CHID_EDID_PANEL,
_CHID_SMBIOS_FIELDS_MAX,
} ChidSmbiosFields;