diff --git a/include/ipmitool/ipmi.h b/include/ipmitool/ipmi.h index 584f1ab..fda76d5 100644 --- a/include/ipmitool/ipmi.h +++ b/include/ipmitool/ipmi.h @@ -260,6 +260,8 @@ struct ipmi_rs { typedef enum IPMI_OEM { IPMI_OEM_UNKNOWN = 0, + IPMI_OEM_DEBUG = 0xFFFFFE, /* Hoping IANA won't hit this soon */ + IPMI_OEM_RESERVED = 0x0FFFFF, /* As per IPMI 2.0 specification */ /* 2 for [IBM] */ IPMI_OEM_IBM_2 = 2, IPMI_OEM_HP = 11, diff --git a/include/ipmitool/ipmi_mc.h b/include/ipmitool/ipmi_mc.h index 9ca6bf4..4e177e5 100644 --- a/include/ipmitool/ipmi_mc.h +++ b/include/ipmitool/ipmi_mc.h @@ -92,8 +92,8 @@ struct ipm_devid_rsp { #define IPM_DEV_IPMI_VERSION_MINOR(x) \ ((x & IPM_DEV_IPMI_VER_MINOR_MASK) >> IPM_DEV_IPMI_VER_MINOR_SHIFT) -#define IPM_DEV_MANUFACTURER_ID_MASK 0x0FFFFF -#define IPM_DEV_MANUFACTURER_ID(x) (ipmi24toh(x) & IPM_DEV_MANUFACTURER_ID_MASK) +#define IPM_DEV_MANUFACTURER_ID_RESERVED 0x0FFFFF +#define IPM_DEV_MANUFACTURER_ID(x) ipmi24toh(x) #define IPM_DEV_ADTL_SUPPORT_BITS (8) diff --git a/lib/ipmi_strings.c b/lib/ipmi_strings.c index e0b36c9..49fa784 100644 --- a/lib/ipmi_strings.c +++ b/lib/ipmi_strings.c @@ -38,17 +38,27 @@ const struct valstr ipmi_oem_info[] = { - { IPMI_OEM_UNKNOWN, "Unknown" }, +/* These are at the top so they are found first */ + { IPMI_OEM_UNKNOWN, "Unknown" }, + { IPMI_OEM_RESERVED, "Unspecified" }, /* The included file is auto-generated from offical IANA PEN list */ #include "ipmi_pen_list.inc.c" - { 0xffff , NULL }, +/* + * This debug ID is at the bottom so that if IANA assigns it to + * any entity, that IANA's value is found first and reported. + */ + { IPMI_OEM_DEBUG, "A Debug Assisting Company, Ltd." }, + { -1 , NULL }, }; const struct oemvalstr ipmi_oem_product_info[] = { /* Keep OEM grouped together */ + /* For ipmitool debugging */ + { IPMI_OEM_DEBUG, 0x1234, "Great Debuggable BMC" }, + /* Intel stuff, thanks to Tim Bell */ { IPMI_OEM_INTEL, 0x000C, "TSRLT2" }, { IPMI_OEM_INTEL, 0x001B, "TIGPR2U" },