]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/SmBios.h
MdePkg:Http11.h: Add defines for "Expect" header
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SmBios.h
index b7c54f2fac12193e7a0c52110896923be1dd74ce..c66422fc3af491c595d1a5ca02b49598beb297c0 100644 (file)
@@ -51,6 +51,53 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 //\r
 #define SMBIOS_3_0_TABLE_MAX_LENGTH 0xFFFFFFFF\r
 \r
+//\r
+// SMBIOS type macros which is according to SMBIOS 2.7 specification.\r
+//\r
+#define SMBIOS_TYPE_BIOS_INFORMATION                     0\r
+#define SMBIOS_TYPE_SYSTEM_INFORMATION                   1\r
+#define SMBIOS_TYPE_BASEBOARD_INFORMATION                2\r
+#define SMBIOS_TYPE_SYSTEM_ENCLOSURE                     3\r
+#define SMBIOS_TYPE_PROCESSOR_INFORMATION                4\r
+#define SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION        5\r
+#define SMBIOS_TYPE_MEMORY_MODULE_INFORMATON             6\r
+#define SMBIOS_TYPE_CACHE_INFORMATION                    7\r
+#define SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION           8\r
+#define SMBIOS_TYPE_SYSTEM_SLOTS                         9\r
+#define SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION           10\r
+#define SMBIOS_TYPE_OEM_STRINGS                          11\r
+#define SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS         12\r
+#define SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION            13\r
+#define SMBIOS_TYPE_GROUP_ASSOCIATIONS                   14\r
+#define SMBIOS_TYPE_SYSTEM_EVENT_LOG                     15\r
+#define SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY                16\r
+#define SMBIOS_TYPE_MEMORY_DEVICE                        17\r
+#define SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION       18\r
+#define SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS          19\r
+#define SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS         20\r
+#define SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE             21\r
+#define SMBIOS_TYPE_PORTABLE_BATTERY                     22\r
+#define SMBIOS_TYPE_SYSTEM_RESET                         23\r
+#define SMBIOS_TYPE_HARDWARE_SECURITY                    24\r
+#define SMBIOS_TYPE_SYSTEM_POWER_CONTROLS                25\r
+#define SMBIOS_TYPE_VOLTAGE_PROBE                        26\r
+#define SMBIOS_TYPE_COOLING_DEVICE                       27\r
+#define SMBIOS_TYPE_TEMPERATURE_PROBE                    28\r
+#define SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE             29\r
+#define SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS            30\r
+#define SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE               31\r
+#define SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION              32\r
+#define SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION       33\r
+#define SMBIOS_TYPE_MANAGEMENT_DEVICE                    34\r
+#define SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT          35\r
+#define SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA     36\r
+#define SMBIOS_TYPE_MEMORY_CHANNEL                       37\r
+#define SMBIOS_TYPE_IPMI_DEVICE_INFORMATION              38\r
+#define SMBIOS_TYPE_SYSTEM_POWER_SUPPLY                  39\r
+#define SMBIOS_TYPE_ADDITIONAL_INFORMATION               40\r
+#define SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION 41\r
+#define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE 42\r
+\r
 ///\r
 /// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter 3.3.43.\r
 /// Upper-level software that interprets the SMBIOS structure-table should bypass an \r
@@ -64,6 +111,27 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 ///\r
 #define SMBIOS_TYPE_END_OF_TABLE     0x007F\r
 \r
+#define SMBIOS_OEM_BEGIN             128\r
+#define SMBIOS_OEM_END               255\r
+\r
+///\r
+/// Types 0 through 127 (7Fh) are reserved for and defined by this\r
+/// specification. Types 128 through 256 (80h to FFh) are available for system- and OEM-specific information.  \r
+///\r
+typedef UINT8  SMBIOS_TYPE;\r
+\r
+///\r
+/// Specifies the structure's handle, a unique 16-bit number in the range 0 to 0FFFEh (for version\r
+/// 2.0) or 0 to 0FEFFh (for version 2.1 and later). The handle can be used with the Get SMBIOS\r
+/// Structure function to retrieve a specific structure; the handle numbers are not required to be\r
+/// contiguous. For v2.1 and later, handle values in the range 0FF00h to 0FFFFh are reserved for\r
+/// use by this specification.\r
+/// If the system configuration changes, a previously assigned handle might no longer exist.\r
+/// However once a handle has been assigned by the BIOS, the BIOS cannot re-assign that handle\r
+/// number to another structure.\r
+///\r
+typedef UINT16 SMBIOS_HANDLE;\r
+\r
 ///\r
 /// Smbios Table Entry Point Structure.\r
 ///\r
@@ -102,13 +170,21 @@ typedef struct {
 /// The Smbios structure header.\r
 ///\r
 typedef struct {\r
-  UINT8   Type;\r
-  UINT8   Length;\r
-  UINT16  Handle;\r
+  SMBIOS_TYPE    Type;\r
+  UINT8          Length;\r
+  SMBIOS_HANDLE  Handle;\r
 } SMBIOS_STRUCTURE;\r
 \r
 ///\r
-/// String Number for a Null terminated string, 00h stands for no string available.\r
+/// Text strings associated with a given SMBIOS structure are returned in the dmiStrucBuffer, appended directly after\r
+/// the formatted portion of the structure. This method of returning string information eliminates the need for\r
+/// application software to deal with pointers embedded in the SMBIOS structure. Each string is terminated with a null\r
+/// (00h) BYTE and the set of strings is terminated with an additional null (00h) BYTE. When the formatted portion of\r
+/// a SMBIOS structure references a string, it does so by specifying a non-zero string number within the structure's\r
+/// string-set. For example, if a string field contains 02h, it references the second string following the formatted portion\r
+/// of the SMBIOS structure. If a string field references no string, a null (0) is placed in that string field. If the\r
+/// formatted portion of the structure contains string-reference fields and all the string fields are set to 0 (no string\r
+/// references), the formatted section of the structure is followed by two null (00h) BYTES.\r
 ///\r
 typedef UINT8 SMBIOS_TABLE_STRING;\r
 \r