1. Add PeiDxeDebugLibReportStatusCode.inf and UefiLibFramework/UefiLib.inf
[mirror_edk2.git] / IntelFrameworkPkg / Include / Common / DataHubRecords.h
CommitLineData
79964ac8 1/** @file\r
2 This file defines GUIDs and associated data structures for records posted to the Data Hub.\r
3 The producers of these records use these definitions to construct records.\r
4 The consumers of these records use these definitions to retrieve, filter and parse records.\r
5\r
6 Copyright (c) 2007, Intel Corporation\r
7 All rights reserved. This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
15 Module Name: DataHubRecords.h\r
16\r
17 @par Revision Reference:\r
18 DataHubRecord.h include all data hub sub class defitions from Cache subclass\r
19 spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9, Processor\r
20 Subclass spec 0.9,Misc SubClass spec 0.9.\r
21\r
22**/\r
23\r
24#ifndef _DATAHUB_RECORDS_H_\r
25#define _DATAHUB_RECORDS_H_\r
26\r
27#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
28\r
b51e6bc4 29#include <Protocol/DevicePath.h>\r
79964ac8 30\r
31#pragma pack(1)\r
32\r
33typedef struct _USB_PORT_DEVICE_PATH {\r
34 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
35 PCI_DEVICE_PATH PciBusDevicePath;\r
36 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
37} USB_PORT_DEVICE_PATH;\r
38\r
39//\r
40// IDE\r
41//\r
42typedef struct _IDE_DEVICE_PATH {\r
43 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
44 PCI_DEVICE_PATH PciBusDevicePath;\r
45 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
46} IDE_DEVICE_PATH;\r
47\r
48//\r
49// RMC Connector\r
50//\r
51typedef struct _RMC_CONN_DEVICE_PATH {\r
52 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
53 PCI_DEVICE_PATH PciBridgeDevicePath;\r
54 PCI_DEVICE_PATH PciBusDevicePath;\r
55 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
56} RMC_CONN_DEVICE_PATH;\r
57\r
58//\r
59// RIDE\r
60//\r
61typedef struct _RIDE_DEVICE_PATH {\r
62 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
63 PCI_DEVICE_PATH PciBridgeDevicePath;\r
64 PCI_DEVICE_PATH PciBusDevicePath;\r
65 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
66} RIDE_DEVICE_PATH;\r
67\r
68//\r
69// Gigabit NIC\r
70//\r
71typedef struct _GB_NIC_DEVICE_PATH {\r
72 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
73 PCI_DEVICE_PATH PciBridgeDevicePath;\r
74 PCI_DEVICE_PATH PciXBridgeDevicePath;\r
75 PCI_DEVICE_PATH PciXBusDevicePath;\r
76 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
77} GB_NIC_DEVICE_PATH;\r
78\r
79//\r
80// P/S2 Connector\r
81//\r
82typedef struct _PS2_CONN_DEVICE_PATH {\r
83 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
84 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
85 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
86 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
87} PS2_CONN_DEVICE_PATH;\r
88\r
89//\r
90// Serial Port Connector\r
91//\r
92typedef struct _SERIAL_CONN_DEVICE_PATH {\r
93 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
94 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
95 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
96 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
97} SERIAL_CONN_DEVICE_PATH;\r
98\r
99//\r
100// Parallel Port Connector\r
101//\r
102typedef struct _PARALLEL_CONN_DEVICE_PATH {\r
103 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
104 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
105 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
106 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
107} PARALLEL_CONN_DEVICE_PATH;\r
108\r
109//\r
110// Floopy Connector\r
111//\r
112typedef struct _FLOOPY_CONN_DEVICE_PATH {\r
113 ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
114 PCI_DEVICE_PATH LpcBridgeDevicePath;\r
115 ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
116 EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
117} FLOOPY_CONN_DEVICE_PATH;\r
118\r
119typedef union _EFI_MISC_PORT_DEVICE_PATH {\r
120 USB_PORT_DEVICE_PATH UsbDevicePath;\r
121 IDE_DEVICE_PATH IdeDevicePath;\r
122 RMC_CONN_DEVICE_PATH RmcConnDevicePath;\r
123 RIDE_DEVICE_PATH RideDevicePath;\r
124 GB_NIC_DEVICE_PATH GbNicDevicePath;\r
125 PS2_CONN_DEVICE_PATH Ps2ConnDevicePath;\r
126 SERIAL_CONN_DEVICE_PATH SerialConnDevicePath;\r
127 PARALLEL_CONN_DEVICE_PATH ParallelConnDevicePath;\r
128 FLOOPY_CONN_DEVICE_PATH FloppyConnDevicePath;\r
129} EFI_MISC_PORT_DEVICE_PATH;\r
130\r
131#pragma pack()\r
132\r
133//\r
134// String Token Definition\r
135//\r
136#define EFI_STRING_TOKEN UINT16\r
137\r
138typedef struct {\r
139 UINT32 Version;\r
140 UINT32 HeaderSize;\r
141 UINT16 Instance;\r
142 UINT16 SubInstance;\r
143 UINT32 RecordType;\r
144} EFI_SUBCLASS_TYPE1_HEADER;\r
145\r
146typedef struct {\r
147 EFI_GUID ProducerName;\r
148 UINT16 Instance;\r
149 UINT16 SubInstance;\r
150} EFI_INTER_LINK_DATA;\r
151\r
152\r
153//\r
154// EXP data\r
155//\r
156\r
157typedef struct {\r
158 UINT16 Value;\r
159 UINT16 Exponent;\r
160} EFI_EXP_BASE2_DATA;\r
161\r
162\r
df2b7d51 163typedef struct {\r
164 UINT16 Value;\r
165 UINT16 Exponent;\r
166} EFI_EXP_BASE10_DATA;\r
167\r
79964ac8 168typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
169\r
170typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
171\r
172typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;\r
173\r
174typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;\r
175\r
176typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;\r
177\r
178typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;\r
179\r
180typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;\r
181\r
182typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
183\r
184typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
185\r
186typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
187\r
188typedef struct {\r
189 UINT32 ProcessorSteppingId:4;\r
190 UINT32 ProcessorModel: 4;\r
191 UINT32 ProcessorFamily: 4;\r
192 UINT32 ProcessorType: 2;\r
193 UINT32 ProcessorReserved1: 2;\r
194 UINT32 ProcessorXModel: 4;\r
195 UINT32 ProcessorXFamily: 8;\r
196 UINT32 ProcessorReserved2: 4;\r
197} EFI_PROCESSOR_SIGNATURE;\r
198\r
199typedef struct {\r
200 UINT32 ProcessorBrandIndex :8;\r
201 UINT32 ProcessorClflush :8;\r
202 UINT32 ProcessorReserved :8;\r
203 UINT32 ProcessorDfltApicId :8;\r
204} EFI_PROCESSOR_MISC_INFO;\r
205\r
206typedef struct {\r
207 UINT32 ProcessorFpu: 1;\r
208 UINT32 ProcessorVme: 1;\r
209 UINT32 ProcessorDe: 1;\r
210 UINT32 ProcessorPse: 1;\r
211 UINT32 ProcessorTsc: 1;\r
212 UINT32 ProcessorMsr: 1;\r
213 UINT32 ProcessorPae: 1;\r
214 UINT32 ProcessorMce: 1;\r
215 UINT32 ProcessorCx8: 1;\r
216 UINT32 ProcessorApic: 1;\r
217 UINT32 ProcessorReserved1: 1;\r
218 UINT32 ProcessorSep: 1;\r
219 UINT32 ProcessorMtrr: 1;\r
220 UINT32 ProcessorPge: 1;\r
221 UINT32 ProcessorMca: 1;\r
222 UINT32 ProcessorCmov: 1;\r
223 UINT32 ProcessorPat: 1;\r
224 UINT32 ProcessorPse36: 1;\r
225 UINT32 ProcessorPsn: 1;\r
226 UINT32 ProcessorClfsh: 1;\r
227 UINT32 ProcessorReserved2: 1;\r
228 UINT32 ProcessorDs: 1;\r
229 UINT32 ProcessorAcpi: 1;\r
230 UINT32 ProcessorMmx: 1;\r
231 UINT32 ProcessorFxsr: 1;\r
232 UINT32 ProcessorSse: 1;\r
233 UINT32 ProcessorSse2: 1;\r
234 UINT32 ProcessorSs: 1;\r
235 UINT32 ProcessorReserved3: 1;\r
236 UINT32 ProcessorTm: 1;\r
237 UINT32 ProcessorReserved4: 2;\r
238} EFI_PROCESSOR_FEATURE_FLAGS;\r
239\r
240typedef struct {\r
241 EFI_PROCESSOR_SIGNATURE Signature;\r
242 EFI_PROCESSOR_MISC_INFO MiscInfo;\r
243 UINT32 Reserved;\r
244 EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;\r
245} EFI_PROCESSOR_ID_DATA;\r
246\r
247typedef enum {\r
248 EfiProcessorOther = 1,\r
249 EfiProcessorUnknown = 2,\r
250 EfiCentralProcessor = 3,\r
251 EfiMathProcessor = 4,\r
252 EfiDspProcessor = 5,\r
253 EfiVideoProcessor = 6\r
254} EFI_PROCESSOR_TYPE_DATA;\r
255\r
256typedef enum {\r
257 EfiProcessorFamilyOther = 1,\r
258 EfiProcessorFamilyUnknown = 2,\r
259 EfiProcessorFamily8086 = 3,\r
260 EfiProcessorFamily80286 = 4,\r
261 EfiProcessorFamilyIntel386 = 5,\r
262 EfiProcessorFamilyIntel486 = 6,\r
263 EfiProcessorFamily8087 = 7,\r
264 EfiProcessorFamily80287 = 8,\r
265 EfiProcessorFamily80387 = 9,\r
266 EfiProcessorFamily80487 = 0x0A,\r
267 EfiProcessorFamilyPentium = 0x0B,\r
268 EfiProcessorFamilyPentiumPro = 0x0C,\r
269 EfiProcessorFamilyPentiumII = 0x0D,\r
270 EfiProcessorFamilyPentiumMMX = 0x0E,\r
271 EfiProcessorFamilyCeleron = 0x0F,\r
272 EfiProcessorFamilyPentiumIIXeon = 0x10,\r
273 EfiProcessorFamilyPentiumIII = 0x11,\r
274 EfiProcessorFamilyM1 = 0x12,\r
275 EfiProcessorFamilyM1Reserved1 = 0x13,\r
276 EfiProcessorFamilyM1Reserved2 = 0x14,\r
277 EfiProcessorFamilyM1Reserved3 = 0x15,\r
278 EfiProcessorFamilyM1Reserved4 = 0x16,\r
279 EfiProcessorFamilyM1Reserved5 = 0x17,\r
280 EfiProcessorFamilyM1Reserved6 = 0x18,\r
281 EfiProcessorFamilyK5 = 0x19,\r
282 EfiProcessorFamilyK5Reserved1 = 0x1A,\r
283 EfiProcessorFamilyK5Reserved2 = 0x1B,\r
284 EfiProcessorFamilyK5Reserved3 = 0x1C,\r
285 EfiProcessorFamilyK5Reserved4 = 0x1D,\r
286 EfiProcessorFamilyK5Reserved5 = 0x1E,\r
287 EfiProcessorFamilyK5Reserved6 = 0x1F,\r
288 EfiProcessorFamilyPowerPC = 0x20,\r
289 EfiProcessorFamilyPowerPC601 = 0x21,\r
290 EfiProcessorFamilyPowerPC603 = 0x22,\r
291 EfiProcessorFamilyPowerPC603Plus = 0x23,\r
292 EfiProcessorFamilyPowerPC604 = 0x24,\r
293 EfiProcessorFamilyAlpha2 = 0x30,\r
294 EfiProcessorFamilyMips = 0x40,\r
295 EfiProcessorFamilySparc = 0x50,\r
296 EfiProcessorFamily68040 = 0x60,\r
297 EfiProcessorFamily68xxx = 0x61,\r
298 EfiProcessorFamily68000 = 0x62,\r
299 EfiProcessorFamily68010 = 0x63,\r
300 EfiProcessorFamily68020 = 0x64,\r
301 EfiProcessorFamily68030 = 0x65,\r
302 EfiProcessorFamilyHobbit = 0x70,\r
303 EfiProcessorFamilyWeitek = 0x80,\r
304 EfiProcessorFamilyPARISC = 0x90,\r
305 EfiProcessorFamilyV30 = 0xA0,\r
306 EfiProcessorFamilyPentiumIIIXeon = 0xB0,\r
307 EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,\r
308 EfiProcessorFamilyPentium4 = 0xB2,\r
309 EfiProcessorFamilyIntelXeon = 0xB3,\r
310 EfiProcessorFamilyAS400 = 0xB4,\r
311 EfiProcessorFamilyIntelXeonMP = 0xB5,\r
312 EfiProcessorFamilyAMDAthlonXP = 0xB6,\r
313 EfiProcessorFamilyAMDAthlonMP = 0xB7,\r
314 EfiProcessorFamilyIntelPentiumM = 0xB9,\r
315 EfiProcessorFamilyIntelCeleronD = 0xBA,\r
316 EfiProcessorFamilyIntelPentiumD = 0xBB,\r
317 EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
318 EfiProcessorFamilyIBM390 = 0xC8,\r
319 EfiProcessorFamilyG4 = 0xC9,\r
320 EfiProcessorFamilyG5 = 0xCA,\r
321 EfiProcessorFamilyi860 = 0xFA,\r
322 EfiProcessorFamilyi960 = 0xFB\r
323} EFI_PROCESSOR_FAMILY_DATA;\r
324\r
325typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;\r
326\r
327typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;\r
328\r
329typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;\r
330\r
331typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;\r
332\r
333typedef enum {\r
334 EfiProcessorIa32Microcode = 1,\r
335 EfiProcessorIpfPalAMicrocode = 2,\r
336 EfiProcessorIpfPalBMicrocode = 3\r
337} EFI_PROCESSOR_MICROCODE_TYPE;\r
338\r
339typedef struct {\r
340 EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;\r
341 UINT32 ProcessorMicrocodeRevisionNumber;\r
342} EFI_PROCESSOR_MICROCODE_REVISION_DATA;\r
343\r
344typedef struct {\r
345 UINT32 CpuStatus :3;\r
346 UINT32 Reserved1 :3;\r
347 UINT32 SocketPopulated :1;\r
348 UINT32 Reserved2 :1;\r
349 UINT32 ApicEnable :1;\r
350 UINT32 BootApplicationProcessor :1;\r
351 UINT32 Reserved3 :22;\r
352} EFI_PROCESSOR_STATUS_DATA;\r
353\r
354typedef enum {\r
355 EfiCpuStatusUnknown = 0,\r
356 EfiCpuStatusEnabled = 1,\r
357 EfiCpuStatusDisabledByUser = 2,\r
358 EfiCpuStatusDisabledbyBios = 3,\r
359 EfiCpuStatusIdle = 4,\r
360 EfiCpuStatusOther = 7\r
361} EFI_CPU_STATUS;\r
362\r
363typedef enum {\r
364 EfiProcessorSocketOther = 1,\r
365 EfiProcessorSocketUnknown = 2,\r
366 EfiProcessorSocketDaughterBoard = 3,\r
367 EfiProcessorSocketZIF = 4,\r
368 EfiProcessorSocketReplacePiggyBack = 5,\r
369 EfiProcessorSocketNone = 6,\r
370 EfiProcessorSocketLIF = 7,\r
371 EfiProcessorSocketSlot1 = 8,\r
372 EfiProcessorSocketSlot2 = 9,\r
373 EfiProcessorSocket370Pin = 0xA,\r
374 EfiProcessorSocketSlotA = 0xB,\r
375 EfiProcessorSocketSlotM = 0xC,\r
376 EfiProcessorSocket423 = 0xD,\r
377 EfiProcessorSocketA462 = 0xE,\r
378 EfiProcessorSocket478 = 0xF,\r
379 EfiProcessorSocket754 = 0x10,\r
380 EfiProcessorSocket940 = 0x11,\r
381 EfiProcessorSocket939 = 0x12,\r
382 EfiProcessorSocketmPGA604 = 0x13,\r
383 EfiProcessorSocketLGA771 = 0x14,\r
384 EfiProcessorSocketLGA775 = 0x15\r
385\r
386} EFI_PROCESSOR_SOCKET_TYPE_DATA;\r
387\r
388typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
389\r
390typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;\r
391\r
392typedef enum {\r
393 EfiProcessorHealthy = 1,\r
394 EfiProcessorPerfRestricted = 2,\r
395 EfiProcessorFuncRestricted = 3\r
396} EFI_PROCESSOR_HEALTH_STATUS;\r
397\r
398typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
399\r
400\r
401typedef enum {\r
402 ProcessorCoreFrequencyRecordType = 1,\r
403 ProcessorFsbFrequencyRecordType = 2,\r
404 ProcessorVersionRecordType = 3,\r
405 ProcessorManufacturerRecordType = 4,\r
406 ProcessorSerialNumberRecordType = 5,\r
407 ProcessorIdRecordType = 6,\r
408 ProcessorTypeRecordType = 7,\r
409 ProcessorFamilyRecordType = 8,\r
410 ProcessorVoltageRecordType = 9,\r
411 ProcessorApicBaseAddressRecordType = 10,\r
412 ProcessorApicIdRecordType = 11,\r
413 ProcessorApicVersionNumberRecordType = 12,\r
414 CpuUcodeRevisionDataRecordType = 13,\r
415 ProcessorStatusRecordType = 14,\r
416 ProcessorSocketTypeRecordType = 15,\r
417 ProcessorSocketNameRecordType = 16,\r
418 CacheAssociationRecordType = 17,\r
419 ProcessorMaxCoreFrequencyRecordType = 18,\r
420 ProcessorAssetTagRecordType = 19,\r
421 ProcessorMaxFsbFrequencyRecordType = 20,\r
422 ProcessorPackageNumberRecordType = 21,\r
423 ProcessorCoreFrequencyListRecordType = 22,\r
424 ProcessorFsbFrequencyListRecordType = 23,\r
425 ProcessorHealthStatusRecordType = 24\r
426} EFI_CPU_VARIABLE_RECORD_TYPE;\r
427\r
428typedef union {\r
429 EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;\r
430 EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;\r
431 EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;\r
432 EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;\r
433 EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;\r
434 EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;\r
435 EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;\r
436 EFI_PROCESSOR_VERSION_DATA ProcessorVersion;\r
437 EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;\r
438 EFI_PROCESSOR_ID_DATA ProcessorId;\r
439 EFI_PROCESSOR_TYPE_DATA ProcessorType;\r
440 EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;\r
441 EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;\r
442 EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;\r
443 EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;\r
444 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;\r
445 EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;\r
446 EFI_PROCESSOR_STATUS_DATA ProcessorStatus;\r
447 EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
448 EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
449 EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
450 EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
451 EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
452} EFI_CPU_VARIABLE_RECORD;\r
453\r
454typedef struct {\r
455 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
456 EFI_CPU_VARIABLE_RECORD VariableRecord;\r
457} EFI_CPU_DATA_RECORD;\r
458\r
459#define EFI_CACHE_SUBCLASS_VERSION 0x00010000\r
460\r
461\r
462typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;\r
463\r
464typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;\r
465\r
466typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;\r
467\r
468typedef STRING_REF EFI_CACHE_SOCKET_DATA;\r
469\r
470typedef struct {\r
471 UINT32 Other :1;\r
472 UINT32 Unknown :1;\r
473 UINT32 NonBurst :1;\r
474 UINT32 Burst :1;\r
475 UINT32 PipelineBurst :1;\r
476 UINT32 Asynchronous :1;\r
477 UINT32 Synchronous :1;\r
478 UINT32 Reserved :25;\r
479} EFI_CACHE_SRAM_TYPE_DATA;\r
480\r
481typedef enum {\r
482 EfiCacheErrorOther = 1,\r
483 EfiCacheErrorUnknown = 2,\r
484 EfiCacheErrorNone = 3,\r
485 EfiCacheErrorParity = 4,\r
486 EfiCacheErrorSingleBit = 5,\r
487 EfiCacheErrorMultiBit = 6\r
488} EFI_CACHE_ERROR_TYPE_DATA;\r
489\r
490typedef enum {\r
491 EfiCacheTypeOther = 1,\r
492 EfiCacheTypeUnknown = 2,\r
493 EfiCacheTypeInstruction = 3,\r
494 EfiCacheTypeData = 4,\r
495 EfiCacheTypeUnified = 5\r
496} EFI_CACHE_TYPE_DATA;\r
497\r
498typedef enum {\r
499 EfiCacheAssociativityOther = 1,\r
500 EfiCacheAssociativityUnknown = 2,\r
501 EfiCacheAssociativityDirectMapped = 3,\r
502 EfiCacheAssociativity2Way = 4,\r
503 EfiCacheAssociativity4Way = 5,\r
504 EfiCacheAssociativityFully = 6,\r
505 EfiCacheAssociativity8Way = 7,\r
506 EfiCacheAssociativity16Way = 8\r
507} EFI_CACHE_ASSOCIATIVITY_DATA;\r
508\r
509typedef struct {\r
510 UINT32 Level :3;\r
511 UINT32 Socketed :1;\r
512 UINT32 Reserved2 :1;\r
513 UINT32 Location :2;\r
514 UINT32 Enable :1;\r
515 UINT32 OperationalMode :2;\r
516 UINT32 Reserved1 :22;\r
517} EFI_CACHE_CONFIGURATION_DATA;\r
518\r
519#define EFI_CACHE_L1 1\r
520#define EFI_CACHE_L2 2\r
521#define EFI_CACHE_L3 3\r
522#define EFI_CACHE_L4 4\r
523#define EFI_CACHE_LMAX EFI_CACHE_L4\r
524\r
525#define EFI_CACHE_SOCKETED 1\r
526#define EFI_CACHE_NOT_SOCKETED 0\r
527\r
528typedef enum {\r
529 EfiCacheInternal = 0,\r
530 EfiCacheExternal = 1,\r
531 EfiCacheReserved = 2,\r
532 EfiCacheUnknown = 3\r
533} EFI_CACHE_LOCATION;\r
534\r
535#define EFI_CACHE_ENABLED 1\r
536#define EFI_CACHE_DISABLED 0\r
537\r
538typedef enum {\r
539 EfiCacheWriteThrough = 0,\r
540 EfiCacheWriteBack = 1,\r
541 EfiCacheDynamicMode = 2,\r
542 EfiCacheUnknownMode = 3\r
543} EFI_CACHE_OPERATIONAL_MODE;\r
544\r
545\r
546\r
547typedef enum {\r
548 CacheSizeRecordType = 1,\r
549 MaximumSizeCacheRecordType = 2,\r
550 CacheSpeedRecordType = 3,\r
551 CacheSocketRecordType = 4,\r
552 CacheSramTypeRecordType = 5,\r
553 CacheInstalledSramTypeRecordType = 6,\r
554 CacheErrorTypeRecordType = 7,\r
555 CacheTypeRecordType = 8,\r
556 CacheAssociativityRecordType = 9,\r
557 CacheConfigRecordType = 10\r
558} EFI_CACHE_VARIABLE_RECORD_TYPE;\r
559\r
560\r
561typedef union {\r
562 EFI_CACHE_SIZE_DATA CacheSize;\r
563 EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;\r
564 EFI_CACHE_SPEED_DATA CacheSpeed;\r
565 EFI_CACHE_SOCKET_DATA CacheSocket;\r
566 EFI_CACHE_SRAM_TYPE_DATA CacheSramType;\r
567 EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;\r
568 EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;\r
569 EFI_CACHE_TYPE_DATA CacheType;\r
570 EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;\r
571 EFI_CACHE_CONFIGURATION_DATA CacheConfig;\r
572 EFI_CACHE_ASSOCIATION_DATA CacheAssociation;\r
573} EFI_CACHE_VARIABLE_RECORD;\r
574\r
575typedef struct {\r
576 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
577 EFI_CACHE_VARIABLE_RECORD VariableRecord;\r
578} EFI_CACHE_DATA_RECORD;\r
579\r
580#define EFI_MEMORY_SUBCLASS_VERSION 0x0100\r
581\r
582\r
583#define EFI_MEMORY_SIZE_RECORD_NUMBER 0x00000001\r
584\r
585typedef enum _EFI_MEMORY_REGION_TYPE {\r
586 EfiMemoryRegionMemory = 0x01,\r
587 EfiMemoryRegionReserved = 0x02,\r
588 EfiMemoryRegionAcpi = 0x03,\r
589 EfiMemoryRegionNvs = 0x04\r
590} EFI_MEMORY_REGION_TYPE;\r
591\r
592typedef struct {\r
593 UINT32 ProcessorNumber;\r
594 UINT16 StartBusNumber;\r
595 UINT16 EndBusNumber;\r
596 EFI_MEMORY_REGION_TYPE MemoryRegionType;\r
597 EFI_EXP_BASE2_DATA MemorySize;\r
598 EFI_PHYSICAL_ADDRESS MemoryStartAddress;\r
599} EFI_MEMORY_SIZE_DATA;\r
600\r
601\r
602#define EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER 0x00000002\r
603\r
604typedef enum _EFI_MEMORY_ARRAY_LOCATION {\r
605 EfiMemoryArrayLocationOther = 0x01,\r
606 EfiMemoryArrayLocationUnknown = 0x02,\r
607 EfiMemoryArrayLocationSystemBoard = 0x03,\r
608 EfiMemoryArrayLocationIsaAddonCard = 0x04,\r
609 EfiMemoryArrayLocationEisaAddonCard = 0x05,\r
610 EfiMemoryArrayLocationPciAddonCard = 0x06,\r
611 EfiMemoryArrayLocationMcaAddonCard = 0x07,\r
612 EfiMemoryArrayLocationPcmciaAddonCard = 0x08,\r
613 EfiMemoryArrayLocationProprietaryAddonCard = 0x09,\r
614 EfiMemoryArrayLocationNuBus = 0x0A,\r
615 EfiMemoryArrayLocationPc98C20AddonCard = 0xA0,\r
616 EfiMemoryArrayLocationPc98C24AddonCard = 0xA1,\r
617 EfiMemoryArrayLocationPc98EAddonCard = 0xA2,\r
618 EfiMemoryArrayLocationPc98LocalBusAddonCard = 0xA3\r
619} EFI_MEMORY_ARRAY_LOCATION;\r
620\r
621typedef enum _EFI_MEMORY_ARRAY_USE {\r
622 EfiMemoryArrayUseOther = 0x01,\r
623 EfiMemoryArrayUseUnknown = 0x02,\r
624 EfiMemoryArrayUseSystemMemory = 0x03,\r
625 EfiMemoryArrayUseVideoMemory = 0x04,\r
626 EfiMemoryArrayUseFlashMemory = 0x05,\r
627 EfiMemoryArrayUseNonVolatileRam = 0x06,\r
628 EfiMemoryArrayUseCacheMemory = 0x07,\r
629} EFI_MEMORY_ARRAY_USE;\r
630\r
631typedef enum _EFI_MEMORY_ERROR_CORRECTION {\r
632 EfiMemoryErrorCorrectionOther = 0x01,\r
633 EfiMemoryErrorCorrectionUnknown = 0x02,\r
634 EfiMemoryErrorCorrectionNone = 0x03,\r
635 EfiMemoryErrorCorrectionParity = 0x04,\r
636 EfiMemoryErrorCorrectionSingleBitEcc = 0x05,\r
637 EfiMemoryErrorCorrectionMultiBitEcc = 0x06,\r
638 EfiMemoryErrorCorrectionCrc = 0x07,\r
639} EFI_MEMORY_ERROR_CORRECTION;\r
640\r
641typedef struct {\r
642 EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;\r
643 EFI_MEMORY_ARRAY_USE MemoryArrayUse;\r
644 EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;\r
645 EFI_EXP_BASE2_DATA MaximumMemoryCapacity;\r
646 UINT16 NumberMemoryDevices;\r
647} EFI_MEMORY_ARRAY_LOCATION_DATA;\r
648\r
649\r
650#define EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER 0x00000003\r
651\r
652typedef enum _EFI_MEMORY_FORM_FACTOR {\r
653 EfiMemoryFormFactorOther = 0x01,\r
654 EfiMemoryFormFactorUnknown = 0x02,\r
655 EfiMemoryFormFactorSimm = 0x03,\r
656 EfiMemoryFormFactorSip = 0x04,\r
657 EfiMemoryFormFactorChip = 0x05,\r
658 EfiMemoryFormFactorDip = 0x06,\r
659 EfiMemoryFormFactorZip = 0x07,\r
660 EfiMemoryFormFactorProprietaryCard = 0x08,\r
661 EfiMemoryFormFactorDimm = 0x09,\r
662 EfiMemoryFormFactorTsop = 0x0A,\r
663 EfiMemoryFormFactorRowOfChips = 0x0B,\r
664 EfiMemoryFormFactorRimm = 0x0C,\r
665 EfiMemoryFormFactorSodimm = 0x0D,\r
666 EfiMemoryFormFactorSrimm = 0x0E,\r
667 EfiMemoryFormFactorFbDimm = 0x0F\r
668} EFI_MEMORY_FORM_FACTOR;\r
669\r
670typedef enum _EFI_MEMORY_ARRAY_TYPE {\r
671 EfiMemoryTypeOther = 0x01,\r
672 EfiMemoryTypeUnknown = 0x02,\r
673 EfiMemoryTypeDram = 0x03,\r
674 EfiMemoryTypeEdram = 0x04,\r
675 EfiMemoryTypeVram = 0x05,\r
676 EfiMemoryTypeSram = 0x06,\r
677 EfiMemoryTypeRam = 0x07,\r
678 EfiMemoryTypeRom = 0x08,\r
679 EfiMemoryTypeFlash = 0x09,\r
680 EfiMemoryTypeEeprom = 0x0A,\r
681 EfiMemoryTypeFeprom = 0x0B,\r
682 EfiMemoryTypeEprom = 0x0C,\r
683 EfiMemoryTypeCdram = 0x0D,\r
684 EfiMemoryType3Dram = 0x0E,\r
685 EfiMemoryTypeSdram = 0x0F,\r
686 EfiMemoryTypeSgram = 0x10,\r
687 EfiMemoryTypeRdram = 0x11,\r
688 EfiMemoryTypeDdr = 0x12,\r
689 EfiMemoryTypeDdr2 = 0x13,\r
690 EfiMemoryTypeDdr2FbDimm = 0x14\r
691} EFI_MEMORY_ARRAY_TYPE;\r
692\r
693typedef struct {\r
694 UINT32 Reserved :1;\r
695 UINT32 Other :1;\r
696 UINT32 Unknown :1;\r
697 UINT32 FastPaged :1;\r
698 UINT32 StaticColumn :1;\r
699 UINT32 PseudoStatic :1;\r
700 UINT32 Rambus :1;\r
701 UINT32 Synchronous :1;\r
702 UINT32 Cmos :1;\r
703 UINT32 Edo :1;\r
704 UINT32 WindowDram :1;\r
705 UINT32 CacheDram :1;\r
706 UINT32 Nonvolatile :1;\r
707 UINT32 Reserved1 :19;\r
708} EFI_MEMORY_TYPE_DETAIL;\r
709\r
710typedef enum {\r
711 EfiMemoryStateEnabled = 0,\r
712 EfiMemoryStateUnknown = 1,\r
713 EfiMemoryStateUnsupported = 2,\r
714 EfiMemoryStateError = 3,\r
715 EfiMemoryStateAbsent = 4,\r
716 EfiMemoryStateDisabled = 5,\r
717 EfiMemoryStatePartial = 6\r
718} EFI_MEMORY_STATE;\r
719\r
720typedef struct {\r
721 STRING_REF MemoryDeviceLocator;\r
722 STRING_REF MemoryBankLocator;\r
723 STRING_REF MemoryManufacturer;\r
724 STRING_REF MemorySerialNumber;\r
725 STRING_REF MemoryAssetTag;\r
726 STRING_REF MemoryPartNumber;\r
727 EFI_INTER_LINK_DATA MemoryArrayLink;\r
728 EFI_INTER_LINK_DATA MemorySubArrayLink;\r
729 UINT16 MemoryTotalWidth;\r
730 UINT16 MemoryDataWidth;\r
731 EFI_EXP_BASE2_DATA MemoryDeviceSize;\r
732 EFI_MEMORY_FORM_FACTOR MemoryFormFactor;\r
733 UINT8 MemoryDeviceSet;\r
734 EFI_MEMORY_ARRAY_TYPE MemoryType;\r
735 EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;\r
736 EFI_EXP_BASE10_DATA MemorySpeed;\r
737 EFI_MEMORY_STATE MemoryState;\r
738} EFI_MEMORY_ARRAY_LINK_DATA;\r
739\r
740\r
741#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004\r
742\r
743typedef struct {\r
744 EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;\r
745 EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;\r
746 EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
747 UINT16 MemoryArrayPartitionWidth;\r
748} EFI_MEMORY_ARRAY_START_ADDRESS_DATA;\r
749\r
750\r
751#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005\r
752\r
753typedef struct {\r
754 EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;\r
755 EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;\r
756 EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;\r
757 EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
758 UINT8 MemoryDevicePartitionRowPosition;\r
759 UINT8 MemoryDeviceInterleavePosition;\r
760 UINT8 MemoryDeviceInterleaveDataDepth;\r
761} EFI_MEMORY_DEVICE_START_ADDRESS_DATA;\r
762\r
763\r
764//\r
765// Memory. Channel Device Type - SMBIOS Type 37\r
766//\r
767\r
768#define EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER 0x00000006\r
769\r
770typedef enum _EFI_MEMORY_CHANNEL_TYPE {\r
771 EfiMemoryChannelTypeOther = 1,\r
772 EfiMemoryChannelTypeUnknown = 2,\r
773 EfiMemoryChannelTypeRambus = 3,\r
774 EfiMemoryChannelTypeSyncLink = 4\r
775} EFI_MEMORY_CHANNEL_TYPE;\r
776\r
777typedef struct {\r
778 EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;\r
779 UINT8 MemoryChannelMaximumLoad;\r
780 UINT8 MemoryChannelDeviceCount;\r
781} EFI_MEMORY_CHANNEL_TYPE_DATA;\r
782\r
783#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007\r
784\r
785typedef struct {\r
786 UINT8 DeviceId;\r
787 EFI_INTER_LINK_DATA DeviceLink;\r
788 UINT8 MemoryChannelDeviceLoad;\r
789} EFI_MEMORY_CHANNEL_DEVICE_DATA;\r
790\r
791\r
792\r
793typedef union _EFI_MEMORY_SUBCLASS_RECORDS {\r
794 EFI_MEMORY_SIZE_DATA SizeData;\r
795 EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;\r
796 EFI_MEMORY_ARRAY_LINK_DATA ArrayLink;\r
797 EFI_MEMORY_ARRAY_START_ADDRESS_DATA ArrayStartAddress;\r
798 EFI_MEMORY_DEVICE_START_ADDRESS_DATA DeviceStartAddress;\r
799 EFI_MEMORY_CHANNEL_TYPE_DATA ChannelTypeData;\r
800 EFI_MEMORY_CHANNEL_DEVICE_DATA ChannelDeviceData;\r
801} EFI_MEMORY_SUBCLASS_RECORDS;\r
802\r
803typedef struct {\r
804 EFI_SUBCLASS_TYPE1_HEADER Header;\r
805 EFI_MEMORY_SUBCLASS_RECORDS Record;\r
806} EFI_MEMORY_SUBCLASS_DRIVER_DATA;\r
807\r
808#define EFI_MISC_SUBCLASS_VERSION 0x0100\r
809\r
810#pragma pack(1)\r
811//\r
812//////////////////////////////////////////////////////////////////////////////\r
813//\r
814// Last PCI Bus Number\r
815//\r
816#define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER 0x00000001\r
817\r
818typedef struct {\r
819 UINT8 LastPciBus;\r
820} EFI_MISC_LAST_PCI_BUS_DATA;\r
821\r
822//\r
823//////////////////////////////////////////////////////////////////////////////\r
824//\r
825// Misc. BIOS Vendor - SMBIOS Type 0\r
826//\r
827#define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER 0x00000002\r
828\r
829typedef struct {\r
830 UINT64 Reserved1 :2;\r
831 UINT64 Unknown :1;\r
832 UINT64 BiosCharacteristicsNotSupported :1;\r
833 UINT64 IsaIsSupported :1;\r
834 UINT64 McaIsSupported :1;\r
835 UINT64 EisaIsSupported :1;\r
836 UINT64 PciIsSupported :1;\r
837 UINT64 PcmciaIsSupported :1;\r
838 UINT64 PlugAndPlayIsSupported :1;\r
839 UINT64 ApmIsSupported :1;\r
840 UINT64 BiosIsUpgradable :1;\r
841 UINT64 BiosShadowingAllowed :1;\r
842 UINT64 VlVesaIsSupported :1;\r
843 UINT64 EscdSupportIsAvailable :1;\r
844 UINT64 BootFromCdIsSupported :1;\r
845 UINT64 SelectableBootIsSupported :1;\r
846 UINT64 RomBiosIsSocketed :1;\r
847 UINT64 BootFromPcmciaIsSupported :1;\r
848 UINT64 EDDSpecificationIsSupported :1;\r
849 UINT64 JapaneseNecFloppyIsSupported :1;\r
850 UINT64 JapaneseToshibaFloppyIsSupported :1;\r
851 UINT64 Floppy525_360IsSupported :1;\r
852 UINT64 Floppy525_12IsSupported :1;\r
853 UINT64 Floppy35_720IsSupported :1;\r
854 UINT64 Floppy35_288IsSupported :1;\r
855 UINT64 PrintScreenIsSupported :1;\r
856 UINT64 Keyboard8042IsSupported :1;\r
857 UINT64 SerialIsSupported :1;\r
858 UINT64 PrinterIsSupported :1;\r
859 UINT64 CgaMonoIsSupported :1;\r
860 UINT64 NecPc98 :1;\r
861 UINT64 AcpiIsSupported :1;\r
862 UINT64 UsbLegacyIsSupported :1;\r
863 UINT64 AgpIsSupported :1;\r
864 UINT64 I20BootIsSupported :1;\r
865 UINT64 Ls120BootIsSupported :1;\r
866 UINT64 AtapiZipDriveBootIsSupported :1;\r
867 UINT64 Boot1394IsSupported :1;\r
868 UINT64 SmartBatteryIsSupported :1;\r
869 UINT64 BiosBootSpecIsSupported :1;\r
870 UINT64 FunctionKeyNetworkBootIsSupported :1;\r
871 UINT64 Reserved :22;\r
872} EFI_MISC_BIOS_CHARACTERISTICS;\r
873\r
874typedef struct {\r
875 UINT64 BiosReserved :16;\r
876 UINT64 SystemReserved :16;\r
877 UINT64 Reserved :32;\r
878} EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;\r
879\r
880typedef struct {\r
881 STRING_REF BiosVendor;\r
882 STRING_REF BiosVersion;\r
883 STRING_REF BiosReleaseDate;\r
884 EFI_PHYSICAL_ADDRESS BiosStartingAddress;\r
885 EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;\r
886 EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;\r
887 EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION BiosCharacteristics2;\r
888 UINT8 BiosMajorRelease;\r
889 UINT8 BiosMinorRelease;\r
890 UINT8 BiosEmbeddedFirmwareMajorRelease;\r
891 UINT8 BiosEmbeddedFirmwareMinorRelease;\r
892} EFI_MISC_BIOS_VENDOR_DATA;\r
893\r
894//\r
895//////////////////////////////////////////////////////////////////////////////\r
896//\r
897// Misc. System Manufacturer - SMBIOS Type 1\r
898//\r
899#define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003\r
900\r
901typedef enum {\r
902 EfiSystemWakeupTypeReserved = 0,\r
903 EfiSystemWakeupTypeOther = 1,\r
904 EfiSystemWakeupTypeUnknown = 2,\r
905 EfiSystemWakeupTypeApmTimer = 3,\r
906 EfiSystemWakeupTypeModemRing = 4,\r
907 EfiSystemWakeupTypeLanRemote = 5,\r
908 EfiSystemWakeupTypePowerSwitch = 6,\r
909 EfiSystemWakeupTypePciPme = 7,\r
910 EfiSystemWakeupTypeAcPowerRestored = 8,\r
911} EFI_MISC_SYSTEM_WAKEUP_TYPE;\r
912\r
913typedef struct {\r
914 STRING_REF SystemManufacturer;\r
915 STRING_REF SystemProductName;\r
916 STRING_REF SystemVersion;\r
917 STRING_REF SystemSerialNumber;\r
918 EFI_GUID SystemUuid;\r
919 EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;\r
920 STRING_REF SystemSKUNumber;\r
921 STRING_REF SystemFamily;\r
922} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
923\r
924//\r
925//////////////////////////////////////////////////////////////////////////////\r
926//\r
927// Misc. Base Board Manufacturer - SMBIOS Type 2\r
928//\r
929#define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004\r
930\r
931typedef struct {\r
932 UINT32 Motherboard :1;\r
933 UINT32 RequiresDaughterCard :1;\r
934 UINT32 Removable :1;\r
935 UINT32 Replaceable :1;\r
936 UINT32 HotSwappable :1;\r
937 UINT32 Reserved :27;\r
938} EFI_BASE_BOARD_FEATURE_FLAGS;\r
939\r
940typedef enum {\r
941 EfiBaseBoardTypeUnknown = 1,\r
942 EfiBaseBoardTypeOther = 2,\r
943 EfiBaseBoardTypeServerBlade = 3,\r
944 EfiBaseBoardTypeConnectivitySwitch = 4,\r
945 EfiBaseBoardTypeSystemManagementModule = 5,\r
946 EfiBaseBoardTypeProcessorModule = 6,\r
947 EfiBaseBoardTypeIOModule = 7,\r
948 EfiBaseBoardTypeMemoryModule = 8,\r
949 EfiBaseBoardTypeDaughterBoard = 9,\r
950 EfiBaseBoardTypeMotherBoard = 0xA,\r
951 EfiBaseBoardTypeProcessorMemoryModule = 0xB,\r
952 EfiBaseBoardTypeProcessorIOModule = 0xC,\r
953 EfiBaseBoardTypeInterconnectBoard = 0xD,\r
954} EFI_BASE_BOARD_TYPE;\r
955\r
956typedef struct {\r
957 STRING_REF BaseBoardManufacturer;\r
958 STRING_REF BaseBoardProductName;\r
959 STRING_REF BaseBoardVersion;\r
960 STRING_REF BaseBoardSerialNumber;\r
961 STRING_REF BaseBoardAssetTag;\r
962 STRING_REF BaseBoardChassisLocation;\r
963 EFI_BASE_BOARD_FEATURE_FLAGS BaseBoardFeatureFlags;\r
964 EFI_BASE_BOARD_TYPE BaseBoardType;\r
965 EFI_INTER_LINK_DATA BaseBoardChassisLink;\r
966 UINT32 BaseBoardNumberLinks;\r
967 EFI_INTER_LINK_DATA LinkN;\r
968} EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;\r
969\r
970//\r
971//////////////////////////////////////////////////////////////////////////////\r
972//\r
973// Misc. System/Chassis Enclosure - SMBIOS Type 3\r
974//\r
975#define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER 0x00000005\r
976\r
977typedef enum {\r
978 EfiMiscChassisTypeOther = 0x1,\r
979 EfiMiscChassisTypeUnknown = 0x2,\r
980 EfiMiscChassisTypeDeskTop = 0x3,\r
981 EfiMiscChassisTypeLowProfileDesktop = 0x4,\r
982 EfiMiscChassisTypePizzaBox = 0x5,\r
983 EfiMiscChassisTypeMiniTower = 0x6,\r
984 EfiMiscChassisTypeTower = 0x7,\r
985 EfiMiscChassisTypePortable = 0x8,\r
986 EfiMiscChassisTypeLapTop = 0x9,\r
987 EfiMiscChassisTypeNotebook = 0xA,\r
988 EfiMiscChassisTypeHandHeld = 0xB,\r
989 EfiMiscChassisTypeDockingStation = 0xC,\r
990 EfiMiscChassisTypeAllInOne = 0xD,\r
991 EfiMiscChassisTypeSubNotebook = 0xE,\r
992 EfiMiscChassisTypeSpaceSaving = 0xF,\r
993 EfiMiscChassisTypeLunchBox = 0x10,\r
994 EfiMiscChassisTypeMainServerChassis = 0x11,\r
995 EfiMiscChassisTypeExpansionChassis = 0x12,\r
996 EfiMiscChassisTypeSubChassis = 0x13,\r
997 EfiMiscChassisTypeBusExpansionChassis = 0x14,\r
998 EfiMiscChassisTypePeripheralChassis = 0x15,\r
999 EfiMiscChassisTypeRaidChassis = 0x16,\r
1000 EfiMiscChassisTypeRackMountChassis = 0x17,\r
1001 EfiMiscChassisTypeSealedCasePc = 0x18,\r
1002 EfiMiscChassisMultiSystemChassis = 0x19,\r
1003} EFI_MISC_CHASSIS_TYPE;\r
1004\r
1005typedef struct {\r
1006 UINT32 ChassisType :16;\r
1007 UINT32 ChassisLockPresent:1;\r
1008 UINT32 Reserved :15;\r
1009} EFI_MISC_CHASSIS_STATUS;\r
1010\r
1011typedef enum {\r
1012 EfiChassisStateOther = 0x01,\r
1013 EfiChassisStateUnknown = 0x02,\r
1014 EfiChassisStateSafe = 0x03,\r
1015 EfiChassisStateWarning = 0x04,\r
1016 EfiChassisStateCritical = 0x05,\r
1017 EfiChassisStateNonRecoverable = 0x06,\r
1018} EFI_MISC_CHASSIS_STATE;\r
1019\r
1020typedef enum {\r
1021 EfiChassisSecurityStatusOther = 0x01,\r
1022 EfiChassisSecurityStatusUnknown = 0x02,\r
1023 EfiChassisSecurityStatusNone = 0x03,\r
1024 EfiChassisSecurityStatusExternalInterfaceLockedOut = 0x04,\r
1025 EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05,\r
1026} EFI_MISC_CHASSIS_SECURITY_STATE;\r
1027\r
1028typedef struct {\r
1029 UINT32 RecordType :1;\r
1030 UINT32 Reserved :24;\r
1031} EFI_MISC_ELEMENT_TYPE;\r
1032\r
1033typedef struct {\r
1034 EFI_MISC_ELEMENT_TYPE ChassisElementType;\r
1035 EFI_INTER_LINK_DATA ChassisElementStructure;\r
1036 EFI_BASE_BOARD_TYPE ChassisBaseBoard;\r
1037 UINT32 ChassisElementMinimum;\r
1038 UINT32 ChassisElementMaximum;\r
1039} EFI_MISC_ELEMENTS;\r
1040\r
1041typedef struct {\r
1042 STRING_REF ChassisManufacturer;\r
1043 STRING_REF ChassisVersion;\r
1044 STRING_REF ChassisSerialNumber;\r
1045 STRING_REF ChassisAssetTag;\r
1046 EFI_MISC_CHASSIS_STATUS ChassisType;\r
1047 EFI_MISC_CHASSIS_STATE ChassisBootupState;\r
1048 EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;\r
1049 EFI_MISC_CHASSIS_STATE ChassisThermalState;\r
1050 EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;\r
1051 UINT32 ChassisOemDefined;\r
1052 UINT32 ChassisHeight;\r
1053 UINT32 ChassisNumberPowerCords;\r
1054 UINT32 ChassisElementCount;\r
1055 UINT32 ChassisElementRecordLength;//\r
1056 EFI_MISC_ELEMENTS ChassisElements;\r
1057} EFI_MISC_CHASSIS_MANUFACTURER_DATA;\r
1058\r
1059//\r
1060//////////////////////////////////////////////////////////////////////////////\r
1061//\r
1062// Misc. Port Connector Information - SMBIOS Type 8\r
1063//\r
1064#define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006\r
1065\r
1066typedef enum {\r
1067 EfiPortConnectorTypeNone = 0x00,\r
1068 EfiPortConnectorTypeCentronics = 0x01,\r
1069 EfiPortConnectorTypeMiniCentronics = 0x02,\r
1070 EfiPortConnectorTypeProprietary = 0x03,\r
1071 EfiPortConnectorTypeDB25Male = 0x04,\r
1072 EfiPortConnectorTypeDB25Female = 0x05,\r
1073 EfiPortConnectorTypeDB15Male = 0x06,\r
1074 EfiPortConnectorTypeDB15Female = 0x07,\r
1075 EfiPortConnectorTypeDB9Male = 0x08,\r
1076 EfiPortConnectorTypeDB9Female = 0x09,\r
1077 EfiPortConnectorTypeRJ11 = 0x0A,\r
1078 EfiPortConnectorTypeRJ45 = 0x0B,\r
1079 EfiPortConnectorType50PinMiniScsi = 0x0C,\r
1080 EfiPortConnectorTypeMiniDin = 0x0D,\r
1081 EfiPortConnectorTypeMicriDin = 0x0E,\r
1082 EfiPortConnectorTypePS2 = 0x0F,\r
1083 EfiPortConnectorTypeInfrared = 0x10,\r
1084 EfiPortConnectorTypeHpHil = 0x11,\r
1085 EfiPortConnectorTypeUsb = 0x12,\r
1086 EfiPortConnectorTypeSsaScsi = 0x13,\r
1087 EfiPortConnectorTypeCircularDin8Male = 0x14,\r
1088 EfiPortConnectorTypeCircularDin8Female = 0x15,\r
1089 EfiPortConnectorTypeOnboardIde = 0x16,\r
1090 EfiPortConnectorTypeOnboardFloppy = 0x17,\r
1091 EfiPortConnectorType9PinDualInline = 0x18,\r
1092 EfiPortConnectorType25PinDualInline = 0x19,\r
1093 EfiPortConnectorType50PinDualInline = 0x1A,\r
1094 EfiPortConnectorType68PinDualInline = 0x1B,\r
1095 EfiPortConnectorTypeOnboardSoundInput = 0x1C,\r
1096 EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,\r
1097 EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,\r
1098 EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,\r
1099 EfiPortConnectorTypeBNC = 0x20,\r
1100 EfiPortConnectorType1394 = 0x21,\r
1101 EfiPortConnectorTypePC98 = 0xA0,\r
1102 EfiPortConnectorTypePC98Hireso = 0xA1,\r
1103 EfiPortConnectorTypePCH98 = 0xA2,\r
1104 EfiPortConnectorTypePC98Note = 0xA3,\r
1105 EfiPortConnectorTypePC98Full = 0xA4,\r
1106 EfiPortConnectorTypeOther = 0xFF,\r
1107} EFI_MISC_PORT_CONNECTOR_TYPE;\r
1108\r
1109typedef enum {\r
1110 EfiPortTypeNone = 0x00,\r
1111 EfiPortTypeParallelXtAtCompatible = 0x01,\r
1112 EfiPortTypeParallelPortPs2 = 0x02,\r
1113 EfiPortTypeParallelPortEcp = 0x03,\r
1114 EfiPortTypeParallelPortEpp = 0x04,\r
1115 EfiPortTypeParallelPortEcpEpp = 0x05,\r
1116 EfiPortTypeSerialXtAtCompatible = 0x06,\r
1117 EfiPortTypeSerial16450Compatible = 0x07,\r
1118 EfiPortTypeSerial16550Compatible = 0x08,\r
1119 EfiPortTypeSerial16550ACompatible = 0x09,\r
1120 EfiPortTypeScsi = 0x0A,\r
1121 EfiPortTypeMidi = 0x0B,\r
1122 EfiPortTypeJoyStick = 0x0C,\r
1123 EfiPortTypeKeyboard = 0x0D,\r
1124 EfiPortTypeMouse = 0x0E,\r
1125 EfiPortTypeSsaScsi = 0x0F,\r
1126 EfiPortTypeUsb = 0x10,\r
1127 EfiPortTypeFireWire = 0x11,\r
1128 EfiPortTypePcmciaTypeI = 0x12,\r
1129 EfiPortTypePcmciaTypeII = 0x13,\r
1130 EfiPortTypePcmciaTypeIII = 0x14,\r
1131 EfiPortTypeCardBus = 0x15,\r
1132 EfiPortTypeAccessBusPort = 0x16,\r
1133 EfiPortTypeScsiII = 0x17,\r
1134 EfiPortTypeScsiWide = 0x18,\r
1135 EfiPortTypePC98 = 0x19,\r
1136 EfiPortTypePC98Hireso = 0x1A,\r
1137 EfiPortTypePCH98 = 0x1B,\r
1138 EfiPortTypeVideoPort = 0x1C,\r
1139 EfiPortTypeAudioPort = 0x1D,\r
1140 EfiPortTypeModemPort = 0x1E,\r
1141 EfiPortTypeNetworkPort = 0x1F,\r
1142 EfiPortType8251Compatible = 0xA0,\r
1143 EfiPortType8251FifoCompatible = 0xA1,\r
1144 EfiPortTypeOther = 0xFF,\r
1145} EFI_MISC_PORT_TYPE;\r
1146\r
1147typedef struct {\r
1148 STRING_REF PortInternalConnectorDesignator;\r
1149 STRING_REF PortExternalConnectorDesignator;\r
1150 EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;\r
1151 EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;\r
1152 EFI_MISC_PORT_TYPE PortType;\r
1153 EFI_MISC_PORT_DEVICE_PATH PortPath;\r
1154} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;\r
1155\r
1156//\r
1157//////////////////////////////////////////////////////////////////////////////\r
1158//\r
1159// Misc. System Slots - SMBIOS Type 9\r
1160//\r
1161#define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007\r
1162\r
1163typedef enum {\r
1164 EfiSlotTypeOther = 0x01,\r
1165 EfiSlotTypeUnknown = 0x02,\r
1166 EfiSlotTypeIsa = 0x03,\r
1167 EfiSlotTypeMca = 0x04,\r
1168 EfiSlotTypeEisa = 0x05,\r
1169 EfiSlotTypePci = 0x06,\r
1170 EfiSlotTypePcmcia = 0x07,\r
1171 EfiSlotTypeVlVesa = 0x08,\r
1172 EfiSlotTypeProprietary = 0x09,\r
1173 EfiSlotTypeProcessorCardSlot = 0x0A,\r
1174 EfiSlotTypeProprietaryMemoryCardSlot = 0x0B,\r
1175 EfiSlotTypeIORiserCardSlot = 0x0C,\r
1176 EfiSlotTypeNuBus = 0x0D,\r
1177 EfiSlotTypePci66MhzCapable = 0x0E,\r
1178 EfiSlotTypeAgp = 0x0F,\r
1179 EfiSlotTypeApg2X = 0x10,\r
1180 EfiSlotTypeAgp4X = 0x11,\r
1181 EfiSlotTypePciX = 0x12,\r
1182 EfiSlotTypeAgp4x = 0x13,\r
1183 EfiSlotTypePC98C20 = 0xA0,\r
1184 EfiSlotTypePC98C24 = 0xA1,\r
1185 EfiSlotTypePC98E = 0xA2,\r
1186 EfiSlotTypePC98LocalBus = 0xA3,\r
1187 EfiSlotTypePC98Card = 0xA4,\r
1188 EfiSlotTypePciExpress = 0xA5\r
1189} EFI_MISC_SLOT_TYPE;\r
1190\r
1191typedef enum {\r
1192 EfiSlotDataBusWidthOther = 0x01,\r
1193 EfiSlotDataBusWidthUnknown = 0x02,\r
1194 EfiSlotDataBusWidth8Bit = 0x03,\r
1195 EfiSlotDataBusWidth16Bit = 0x04,\r
1196 EfiSlotDataBusWidth32Bit = 0x05,\r
1197 EfiSlotDataBusWidth64Bit = 0x06,\r
1198 EfiSlotDataBusWidth128Bit = 0x07,\r
1199} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
1200\r
1201typedef enum {\r
1202 EfiSlotUsageOther = 1,\r
1203 EfiSlotUsageUnknown = 2,\r
1204 EfiSlotUsageAvailable = 3,\r
1205 EfiSlotUsageInUse = 4,\r
1206} EFI_MISC_SLOT_USAGE;\r
1207\r
1208typedef enum {\r
1209 EfiSlotLengthOther = 1,\r
1210 EfiSlotLengthUnknown = 2,\r
1211 EfiSlotLengthShort = 3,\r
1212 EfiSlotLengthLong = 4\r
1213} EFI_MISC_SLOT_LENGTH;\r
1214\r
1215typedef struct {\r
1216 UINT32 CharacteristicsUnknown :1;\r
1217 UINT32 Provides50Volts :1;\r
1218 UINT32 Provides33Volts :1;\r
1219 UINT32 SharedSlot :1;\r
1220 UINT32 PcCard16Supported :1;\r
1221 UINT32 CardBusSupported :1;\r
1222 UINT32 ZoomVideoSupported :1;\r
1223 UINT32 ModemRingResumeSupported:1;\r
1224 UINT32 PmeSignalSupported :1;\r
1225 UINT32 HotPlugDevicesSupported :1;\r
1226 UINT32 SmbusSignalSupported :1;\r
1227 UINT32 Reserved :21;\r
1228} EFI_MISC_SLOT_CHARACTERISTICS;\r
1229\r
1230typedef struct {\r
1231 STRING_REF SlotDesignation;\r
1232 EFI_MISC_SLOT_TYPE SlotType;\r
1233 EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;\r
1234 EFI_MISC_SLOT_USAGE SlotUsage;\r
1235 EFI_MISC_SLOT_LENGTH SlotLength;\r
1236 UINT16 SlotId;\r
1237 EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;\r
1238 EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;\r
1239} EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;\r
1240\r
1241//\r
1242//////////////////////////////////////////////////////////////////////////////\r
1243//\r
1244// Misc. Onboard Device - SMBIOS Type 10\r
1245//\r
1246#define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008\r
1247\r
1248typedef enum {\r
1249 EfiOnBoardDeviceTypeOther = 1,\r
1250 EfiOnBoardDeviceTypeUnknown = 2,\r
1251 EfiOnBoardDeviceTypeVideo = 3,\r
1252 EfiOnBoardDeviceTypeScsiController = 4,\r
1253 EfiOnBoardDeviceTypeEthernet = 5,\r
1254 EfiOnBoardDeviceTypeTokenRing = 6,\r
1255 EfiOnBoardDeviceTypeSound = 7,\r
1256} EFI_MISC_ONBOARD_DEVICE_TYPE;\r
1257\r
1258typedef struct {\r
1259 UINT32 DeviceType :16;\r
1260 UINT32 DeviceEnabled :1;\r
1261 UINT32 Reserved :15;\r
1262} EFI_MISC_ONBOARD_DEVICE_STATUS;\r
1263\r
1264typedef struct {\r
1265 STRING_REF OnBoardDeviceDescription;\r
1266 EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
1267 EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;\r
1268} EFI_MISC_ONBOARD_DEVICE_DATA;\r
1269\r
1270//\r
1271//////////////////////////////////////////////////////////////////////////////\r
1272//\r
1273// Misc. BIOS Language Information - SMBIOS Type 11\r
1274//\r
1275#define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009\r
1276\r
1277typedef struct {\r
1278 STRING_REF OemStringRef[1];\r
1279} EFI_MISC_OEM_STRING_DATA;\r
1280\r
1281//\r
1282//////////////////////////////////////////////////////////////////////////////\r
1283//\r
1284// Misc. System Options - SMBIOS Type 12\r
1285//\r
1286typedef struct {\r
1287 STRING_REF SystemOptionStringRef[1];\r
1288} EFI_MISC_SYSTEM_OPTION_STRING_DATA;\r
1289\r
1290#define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A\r
1291\r
1292//\r
1293//////////////////////////////////////////////////////////////////////////////\r
1294//\r
1295// Misc. Number of Installable Languages - SMBIOS Type 13\r
1296//\r
1297#define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B\r
1298\r
1299typedef struct {\r
1300 UINT32 AbbreviatedLanguageFormat :1;\r
1301 UINT32 Reserved :31;\r
1302} EFI_MISC_LANGUAGE_FLAGS;\r
1303\r
1304typedef struct {\r
1305 UINT16 NumberOfInstallableLanguages;\r
1306 EFI_MISC_LANGUAGE_FLAGS LanguageFlags;\r
1307 UINT16 CurrentLanguageNumber;\r
1308} EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;\r
1309\r
1310//\r
1311//////////////////////////////////////////////////////////////////////////////\r
1312//\r
1313// Misc. System Language String\r
1314//\r
1315#define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C\r
1316\r
1317typedef struct {\r
1318 UINT16 LanguageId;\r
1319 STRING_REF SystemLanguageString;\r
1320} EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;\r
1321\r
1322//\r
1323//////////////////////////////////////////////////////////////////////////////\r
1324//\r
1325// Group Associations - SMBIOS Type 14\r
1326//\r
1327#define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D\r
1328\r
1329typedef struct {\r
1330 STRING_REF GroupName;\r
1331 UINT16 NumberGroupItems;\r
1332 UINT16 GroupId;\r
1333} EFI_MISC_GROUP_NAME_DATA;\r
1334\r
1335//\r
1336//////////////////////////////////////////////////////////////////////////////\r
1337//\r
1338// Group Item Set Element\r
1339//\r
1340#define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E\r
1341\r
1342typedef struct {\r
1343 EFI_GUID SubClass;\r
1344 EFI_INTER_LINK_DATA GroupLink;\r
1345 UINT16 GroupId;\r
1346 UINT16 GroupElementId;\r
1347} EFI_MISC_GROUP_ITEM_SET_DATA;\r
1348\r
1349// Misc. System Event Log - SMBIOS Type 15\r
1350//\r
1351#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x0000000D\r
1352typedef struct {\r
1353 UINT16 LogAreaLength;\r
1354 UINT16 LogHeaderStartOffset;\r
1355 UINT16 LogDataStartOffset;\r
1356 UINT8 AccessMethod;\r
1357 UINT8 LogStatus;\r
1358 UINT32 LogChangeToken;\r
1359 UINT32 AccessMethodAddress;\r
1360 UINT8 LogHeaderFormat;\r
1361 UINT8 NumberOfSupportedLogType;\r
1362 UINT8 LengthOfLogDescriptor;\r
1363} EFI_MISC_SYSTEM_EVENT_LOG_DATA;\r
1364\r
1365//\r
1366// Access Method.\r
1367// 0x00~0x04: as following definition\r
1368// 0x05~0x7f: Available for future assignment.\r
1369// 0x80~0xff: BIOS Vendor/OEM-specific.\r
1370//\r
1371#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00\r
1372#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01\r
1373#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02\r
1374#define ACCESS_MEMORY_MAPPED 0x03\r
1375#define ACCESS_GPNV 0x04\r
1376\r
1377//\r
1378//////////////////////////////////////////////////////////////////////////////\r
1379//\r
1380// Misc. Pointing Device Type - SMBIOS Type 21\r
1381//\r
1382#define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F\r
1383\r
1384typedef enum {\r
1385 EfiPointingDeviceTypeOther = 0x01,\r
1386 EfiPointingDeviceTypeUnknown = 0x02,\r
1387 EfiPointingDeviceTypeMouse = 0x03,\r
1388 EfiPointingDeviceTypeTrackBall = 0x04,\r
1389 EfiPointingDeviceTypeTrackPoint = 0x05,\r
1390 EfiPointingDeviceTypeGlidePoint = 0x06,\r
1391 EfiPointingDeviceTouchPad = 0x07,\r
1392 EfiPointingDeviceTouchScreen = 0x08,\r
1393 EfiPointingDeviceOpticalSensor = 0x09,\r
1394} EFI_MISC_POINTING_DEVICE_TYPE;\r
1395\r
1396typedef enum {\r
1397 EfiPointingDeviceInterfaceOther = 0x01,\r
1398 EfiPointingDeviceInterfaceUnknown = 0x02,\r
1399 EfiPointingDeviceInterfaceSerial = 0x03,\r
1400 EfiPointingDeviceInterfacePs2 = 0x04,\r
1401 EfiPointingDeviceInterfaceInfrared = 0x05,\r
1402 EfiPointingDeviceInterfaceHpHil = 0x06,\r
1403 EfiPointingDeviceInterfaceBusMouse = 0x07,\r
1404 EfiPointingDeviceInterfaceADB = 0x08,\r
1405 EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,\r
1406 EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,\r
1407 EfiPointingDeviceInterfaceUsb = 0xA2,\r
1408} EFI_MISC_POINTING_DEVICE_INTERFACE;\r
1409\r
1410typedef struct {\r
1411 EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;\r
1412 EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;\r
1413 UINT16 NumberPointingDeviceButtons;\r
1414 EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;\r
1415} EFI_MISC_PORTING_DEVICE_TYPE_DATA;\r
1416\r
1417//\r
1418//////////////////////////////////////////////////////////////////////////////\r
1419//\r
1420// Portable Battery - SMBIOS Type 22\r
1421//\r
1422#define EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER 0x00000010\r
1423\r
1424typedef enum {\r
1425 EfiBatteryDeviceChemistryTypeOther = 0x01,\r
1426 EfiBatteryDeviceChemistryTypeUnknown = 0x02,\r
1427 EfiBatteryDeviceChemistryTypeLeadAcid = 0x03,\r
1428 EfiBatteryDeviceChemistryTypeNickelCadmium = 0x04,\r
1429 EfiBatteryDeviceChemistryTypeNickelMetalHydride = 0x05,\r
1430 EfiBatteryDeviceChemistryTypeLithiumIon = 0x06,\r
1431 EfiBatteryDeviceChemistryTypeZincAir = 0x07,\r
1432 EfiBatteryDeviceChemistryTypeLithiumPolymer = 0x08,\r
1433} EFI_MISC_BATTERY_DEVICE_CHEMISTRY;\r
1434\r
1435typedef struct {\r
1436 UINT32 Date :5;\r
1437 UINT32 Month :4;\r
1438 UINT32 Year :7;\r
1439 UINT32 Reserved :16;\r
1440} EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE;\r
1441\r
1442typedef struct {\r
1443 STRING_REF BatteryLocation;\r
1444 STRING_REF BatteryManufacturer;\r
1445 STRING_REF BatteryManufactureDate;\r
1446 STRING_REF BatterySerialNumber;\r
1447 STRING_REF BatteryDeviceName;\r
1448 STRING_REF BatterySbdsVersionNumber;\r
1449 STRING_REF BatterySbdsDeviceChemistry;\r
1450 EFI_MISC_BATTERY_DEVICE_CHEMISTRY BatteryDeviceChemistry;\r
1451 EFI_EXP_BASE10_DATA BatteryDesignCapacity;\r
1452 EFI_EXP_BASE10_DATA BatteryDesignVoltage;\r
1453 UINT16 BatteryMaximumError;\r
1454 UINT16 BatterySbdsSerialNumber;\r
1455 EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE\r
1456 BatterySbdsManufacturingDate;\r
1457 UINT32 BatteryOemSpecific;\r
1458} EFI_MISC_BATTERY_LOCATION_DATA;\r
1459\r
1460//\r
1461//////////////////////////////////////////////////////////////////////////////\r
1462//\r
1463// Misc. Reset Capabilities - SMBIOS Type 23\r
1464//\r
1465#define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011\r
1466\r
1467typedef struct {\r
1468 UINT32 Status :1;\r
1469 UINT32 BootOption :2;\r
1470 UINT32 BootOptionOnLimit :2;\r
1471 UINT32 WatchdogTimerPresent:1;\r
1472 UINT32 Reserved :26;\r
1473} EFI_MISC_RESET_CAPABILITIES_TYPE;\r
1474\r
1475typedef struct {\r
1476 EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;\r
1477 UINT16 ResetCount;\r
1478 UINT16 ResetLimit;\r
1479 UINT16 ResetTimerInterval;\r
1480 UINT16 ResetTimeout;\r
1481} EFI_MISC_RESET_CAPABILITIES;\r
1482\r
1483typedef struct {\r
1484 EFI_MISC_RESET_CAPABILITIES ResetCapabilities;\r
1485 UINT16 ResetCount;\r
1486 UINT16 ResetLimit;\r
1487 UINT16 ResetTimerInterval;\r
1488 UINT16 ResetTimeout;\r
1489} EFI_MISC_RESET_CAPABILITIES_DATA;\r
1490\r
1491//\r
1492//////////////////////////////////////////////////////////////////////////////\r
1493//\r
1494// Misc. Hardware Security - SMBIOS Type 24\r
1495//\r
1496#define EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER 0x00000012\r
1497\r
1498typedef enum {\r
1499 EfiHardwareSecurityStatusDisabled = 0,\r
1500 EfiHardwareSecurityStatusEnabled = 1,\r
1501 EfiHardwareSecurityStatusNotImplemented = 2,\r
1502 EfiHardwareSecurityStatusUnknown = 3\r
1503} EFI_MISC_HARDWARE_SECURITY_STATUS;\r
1504\r
1505typedef struct {\r
1506 EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;\r
1507 EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;\r
1508 EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;\r
1509 EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;\r
1510 EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;\r
1511} EFI_MISC_HARDWARE_SECURITY_SETTINGS;\r
1512\r
1513typedef struct {\r
1514 EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;\r
1515} EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;\r
1516\r
1517//\r
1518//////////////////////////////////////////////////////////////////////////////\r
1519//\r
1520// System Power Controls - SMBIOS Type 25\r
1521//\r
1522#define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013\r
1523\r
1524typedef struct {\r
1525 UINT16 ScheduledPoweronMonth;\r
1526 UINT16 ScheduledPoweronDayOfMonth;\r
1527 UINT16 ScheduledPoweronHour;\r
1528 UINT16 ScheduledPoweronMinute;\r
1529 UINT16 ScheduledPoweronSecond;\r
1530} EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA;\r
1531\r
1532//\r
1533//////////////////////////////////////////////////////////////////////////////\r
1534//\r
1535// Voltage Probe - SMBIOS Type 26\r
1536//\r
1537#define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014\r
1538\r
1539typedef struct {\r
1540 UINT32 VoltageProbeSite :5;\r
1541 UINT32 VoltageProbeStatus :3;\r
1542 UINT32 Reserved :24;\r
1543} EFI_MISC_VOLTAGE_PROBE_LOCATION;\r
1544\r
1545typedef struct {\r
1546 STRING_REF VoltageProbeDescription;\r
1547 EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;\r
1548 EFI_EXP_BASE10_DATA VoltageProbeMaximumValue;\r
1549 EFI_EXP_BASE10_DATA VoltageProbeMinimumValue;\r
1550 EFI_EXP_BASE10_DATA VoltageProbeResolution;\r
1551 EFI_EXP_BASE10_DATA VoltageProbeTolerance;\r
1552 EFI_EXP_BASE10_DATA VoltageProbeAccuracy;\r
1553 EFI_EXP_BASE10_DATA VoltageProbeNominalValue;\r
1554 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1555 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1556 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1557 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1558 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1559 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1560 UINT32 VoltageProbeOemDefined;\r
1561} EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA;\r
1562\r
1563//\r
1564//////////////////////////////////////////////////////////////////////////////\r
1565//\r
1566// Cooling Device - SMBIOS Type 27\r
1567//\r
1568#define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015\r
1569\r
1570typedef struct {\r
1571 UINT32 CoolingDevice :5;\r
1572 UINT32 CoolingDeviceStatus :3;\r
1573 UINT32 Reserved :24;\r
1574} EFI_MISC_COOLING_DEVICE_TYPE;\r
1575\r
1576typedef struct {\r
1577 EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
1578 EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
1579 UINT16 CoolingDeviceUnitGroup;\r
1580 EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
1581 UINT32 CoolingDeviceOemDefined;\r
1582} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
1583\r
1584//\r
1585//////////////////////////////////////////////////////////////////////////////\r
1586//\r
1587// Temperature Probe - SMBIOS Type 28\r
1588//\r
1589#define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016\r
1590\r
1591typedef struct {\r
1592 UINT32 TemperatureProbeSite :5;\r
1593 UINT32 TemperatureProbeStatus :3;\r
1594 UINT32 Reserved :24;\r
1595} EFI_MISC_TEMPERATURE_PROBE_LOCATION;\r
1596\r
1597typedef struct {\r
1598 STRING_REF TemperatureProbeDescription;\r
1599 EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
1600 TemperatureProbeLocation;\r
1601 EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
1602 EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
1603 EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
1604 EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
1605 EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
1606 EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
1607 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1608 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1609 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1610 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1611 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1612 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1613 UINT32 TemperatureProbeOemDefined;\r
1614} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
1615\r
1616//\r
1617//////////////////////////////////////////////////////////////////////////////\r
1618//\r
1619// Electrical Current Probe - SMBIOS Type 29\r
1620//\r
1621\r
1622#define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017\r
1623\r
1624typedef struct {\r
1625 UINT32 ElectricalCurrentProbeSite :5;\r
1626 UINT32 ElectricalCurrentProbeStatus :3;\r
1627 UINT32 Reserved :24;\r
1628} EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;\r
1629\r
1630typedef struct {\r
1631 STRING_REF ElectricalCurrentProbeDescription;\r
1632 EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION\r
1633 ElectricalCurrentProbeLocation;\r
1634 EFI_EXP_BASE10_DATA ElectricalCurrentProbeMaximumValue;\r
1635 EFI_EXP_BASE10_DATA ElectricalCurrentProbeMinimumValue;\r
1636 EFI_EXP_BASE10_DATA ElectricalCurrentProbeResolution;\r
1637 EFI_EXP_BASE10_DATA ElectricalCurrentProbeTolerance;\r
1638 EFI_EXP_BASE10_DATA ElectricalCurrentProbeAccuracy;\r
1639 EFI_EXP_BASE10_DATA ElectricalCurrentProbeNominalValue;\r
1640 EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
1641 EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
1642 EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
1643 EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
1644 EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
1645 EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
1646 UINT32 ElectricalCurrentProbeOemDefined;\r
1647} EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA;\r
1648\r
1649//\r
1650//////////////////////////////////////////////////////////////////////////////\r
1651//\r
1652// Out-of-Band Remote Access - SMBIOS Type 30\r
1653//\r
1654\r
1655#define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018\r
1656\r
1657typedef struct {\r
1658 UINT32 InboundConnectionEnabled :1;\r
1659 UINT32 OutboundConnectionEnabled :1;\r
1660 UINT32 Reserved :30;\r
1661} EFI_MISC_REMOTE_ACCESS_CONNECTIONS;\r
1662\r
1663typedef struct {\r
1664 STRING_REF RemoteAccessManufacturerNameDescription;\r
1665 EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;\r
1666} EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA;\r
1667\r
1668//\r
1669//////////////////////////////////////////////////////////////////////////////\r
1670//\r
1671// Misc. BIS Entry Point - SMBIOS Type 31\r
1672//\r
1673#define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019\r
1674\r
1675typedef struct {\r
1676 EFI_PHYSICAL_ADDRESS BisEntryPoint;\r
1677} EFI_MISC_BIS_ENTRY_POINT_DATA;\r
1678\r
1679//\r
1680//////////////////////////////////////////////////////////////////////////////\r
1681//\r
1682// Misc. Boot Information - SMBIOS Type 32\r
1683//\r
1684#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A\r
1685\r
1686typedef enum {\r
1687 EfiBootInformationStatusNoError = 0x00,\r
1688 EfiBootInformationStatusNoBootableMedia = 0x01,\r
1689 EfiBootInformationStatusNormalOSFailedLoading = 0x02,\r
1690 EfiBootInformationStatusFirmwareDetectedFailure = 0x03,\r
1691 EfiBootInformationStatusOSDetectedFailure = 0x04,\r
1692 EfiBootInformationStatusUserRequestedBoot = 0x05,\r
1693 EfiBootInformationStatusSystemSecurityViolation = 0x06,\r
1694 EfiBootInformationStatusPreviousRequestedImage = 0x07,\r
1695 EfiBootInformationStatusWatchdogTimerExpired = 0x08,\r
1696 EfiBootInformationStatusStartReserved = 0x09,\r
1697 EfiBootInformationStatusStartOemSpecific = 0x80,\r
1698 EfiBootInformationStatusStartProductSpecific = 0xC0,\r
1699} EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;\r
1700\r
1701typedef struct {\r
1702 EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;\r
1703 UINT8 BootInformationData[9];\r
1704} EFI_MISC_BOOT_INFORMATION_STATUS_DATA;\r
1705\r
1706//\r
1707//////////////////////////////////////////////////////////////////////////////\r
1708//\r
1709// Management Device - SMBIOS Type 34\r
1710//\r
1711#define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B\r
1712\r
1713typedef enum {\r
1714 EfiManagementDeviceTypeOther = 0x01,\r
1715 EfiManagementDeviceTypeUnknown = 0x02,\r
1716 EfiManagementDeviceTypeLm75 = 0x03,\r
1717 EfiManagementDeviceTypeLm78 = 0x04,\r
1718 EfiManagementDeviceTypeLm79 = 0x05,\r
1719 EfiManagementDeviceTypeLm80 = 0x06,\r
1720 EfiManagementDeviceTypeLm81 = 0x07,\r
1721 EfiManagementDeviceTypeAdm9240 = 0x08,\r
1722 EfiManagementDeviceTypeDs1780 = 0x09,\r
1723 EfiManagementDeviceTypeMaxim1617 = 0x0A,\r
1724 EfiManagementDeviceTypeGl518Sm = 0x0B,\r
1725 EfiManagementDeviceTypeW83781D = 0x0C,\r
1726 EfiManagementDeviceTypeHt82H791 = 0x0D,\r
1727} EFI_MISC_MANAGEMENT_DEVICE_TYPE;\r
1728\r
1729typedef enum {\r
1730 EfiManagementDeviceAddressTypeOther = 1,\r
1731 EfiManagementDeviceAddressTypeUnknown = 2,\r
1732 EfiManagementDeviceAddressTypeIOPort = 3,\r
1733 EfiManagementDeviceAddressTypeMemory = 4,\r
1734 EfiManagementDeviceAddressTypeSmbus = 5\r
1735} EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;\r
1736\r
1737typedef struct {\r
1738 STRING_REF ManagementDeviceDescription;\r
1739 EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;\r
1740 UINTN ManagementDeviceAddress;\r
1741 EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE\r
1742 ManagementDeviceAddressType;\r
1743} EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA;\r
1744\r
1745//\r
1746//////////////////////////////////////////////////////////////////////////////\r
1747//\r
1748// Management Device Component - SMBIOS Type 35\r
1749//\r
1750\r
1751#define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C\r
1752\r
1753typedef struct {\r
1754 STRING_REF ManagementDeviceComponentDescription;\r
1755 EFI_INTER_LINK_DATA ManagementDeviceLink;\r
1756 EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
1757} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
1758\r
1759//\r
1760//////////////////////////////////////////////////////////////////////////////\r
1761//\r
1762// IPMI Data Record - SMBIOS Type 38\r
1763//\r
1764typedef enum {\r
1765 EfiIpmiOther = 0,\r
1766 EfiIpmiKcs = 1,\r
1767 EfiIpmiSmic = 2,\r
1768 EfiIpmiBt = 3,\r
1769} EFI_MISC_IPMI_INTERFACE_TYPE;\r
1770\r
1771typedef struct {\r
1772 UINT16 IpmiSpecLeastSignificantDigit:4;\r
1773 UINT16 IpmiSpecMostSignificantDigit: 4;\r
1774 UINT16 Reserved: 8;\r
1775} EFI_MISC_IPMI_SPECIFICATION_REVISION;\r
1776\r
1777typedef struct {\r
1778 EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;\r
1779 EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;\r
1780 UINT16 IpmiI2CSlaveAddress;\r
1781 UINT16 IpmiNvDeviceAddress;\r
1782 UINT64 IpmiBaseAddress;\r
1783 EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;\r
1784} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
1785\r
1786#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
1787\r
1788//\r
1789//////////////////////////////////////////////////////////////////////////////\r
1790//\r
1791//System Power supply Record - SMBIOS Type 39\r
1792//\r
1793typedef struct {\r
1794 UINT16 PowerSupplyHotReplaceable :1;\r
1795 UINT16 PowerSupplyPresent :1;\r
1796 UINT16 PowerSupplyUnplugged :1;\r
1797 UINT16 InputVoltageRangeSwitch :4;\r
1798 UINT16 PowerSupplyStatus :3;\r
1799 UINT16 PowerSupplyType :4;\r
1800 UINT16 Reserved :2;\r
1801} POWER_SUPPLY_CHARACTERISTICS;\r
1802\r
1803typedef struct {\r
1804 UINT16 PowerUnitGroup;\r
1805 STRING_REF PowerSupplyLocation;\r
1806 STRING_REF PowerSupplyDeviceName;\r
1807 STRING_REF PowerSupplyManufacturer;\r
1808 STRING_REF PowerSupplySerialNumber;\r
1809 STRING_REF PowerSupplyAssetTagNumber;\r
1810 STRING_REF PowerSupplyModelPartNumber;\r
1811 STRING_REF PowerSupplyRevisionLevel;\r
1812 UINT16 PowerSupplyMaxPowerCapacity;\r
1813 POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;\r
1814 EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;\r
1815 EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;\r
1816 EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;\r
1817} EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;\r
1818\r
1819#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E\r
1820\r
1821//\r
1822//////////////////////////////////////////////////////////////////////////////\r
1823//\r
1824// OEM Data Record - SMBIOS Type 0x80-0xFF\r
1825//\r
1826typedef struct {\r
1827 UINT8 Type;\r
1828 UINT8 Length;\r
1829 UINT16 Handle;\r
1830} SMBIOS_STRUCTURE_HDR;\r
1831\r
1832typedef struct {\r
1833 SMBIOS_STRUCTURE_HDR Header;\r
1834 UINT8 RawData[1];\r
1835} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;\r
1836\r
1837#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F\r
1838\r
1839//\r
1840// Declare the following strutures alias to use them more conviniently.\r
1841//\r
1842typedef EFI_MISC_LAST_PCI_BUS_DATA EFI_MISC_LAST_PCI_BUS;\r
1843typedef EFI_MISC_BIOS_VENDOR_DATA EFI_MISC_BIOS_VENDOR;\r
1844typedef EFI_MISC_SYSTEM_MANUFACTURER_DATA EFI_MISC_SYSTEM_MANUFACTURER;\r
1845typedef EFI_MISC_BASE_BOARD_MANUFACTURER_DATA EFI_MISC_BASE_BOARD_MANUFACTURER;\r
1846typedef EFI_MISC_CHASSIS_MANUFACTURER_DATA EFI_MISC_CHASSIS_MANUFACTURER;\r
1847typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;\r
1848typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA EFI_MISC_SYSTEM_SLOT_DESIGNATION;\r
1849typedef EFI_MISC_ONBOARD_DEVICE_DATA EFI_MISC_ONBOARD_DEVICE;\r
1850typedef EFI_MISC_PORTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;\r
1851typedef EFI_MISC_OEM_STRING_DATA EFI_MISC_OEM_STRING;\r
1852typedef EFI_MISC_SYSTEM_OPTION_STRING_DATA EFI_MISC_SYSTEM_OPTION_STRING;\r
1853typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;\r
1854typedef EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA EFI_MISC_SYSTEM_LANGUAGE_STRING;\r
1855typedef EFI_MISC_SYSTEM_EVENT_LOG_DATA EFI_MISC_SYSTEM_EVENT_LOG;\r
1856typedef EFI_MISC_BIS_ENTRY_POINT_DATA EFI_MISC_BIS_ENTRY_POINT;\r
1857typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS;\r
1858typedef EFI_MISC_SYSTEM_POWER_SUPPLY_DATA EFI_MISC_SYSTEM_POWER_SUPPLY;\r
1859typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;\r
1860\r
1861typedef union {\r
1862 EFI_MISC_LAST_PCI_BUS_DATA LastPciBus;\r
1863 EFI_MISC_BIOS_VENDOR_DATA MiscBiosVendor;\r
1864 EFI_MISC_SYSTEM_MANUFACTURER_DATA MiscSystemManufacturer;\r
1865 EFI_MISC_BASE_BOARD_MANUFACTURER_DATA MiscBaseBoardManufacturer;\r
1866 EFI_MISC_CHASSIS_MANUFACTURER_DATA MiscChassisManufacturer;\r
1867 EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA MiscPortInternalConnectorDesignator;\r
1868 EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA MiscSystemSlotDesignation;\r
1869 EFI_MISC_ONBOARD_DEVICE_DATA MiscOnboardDevice;\r
1870 EFI_MISC_OEM_STRING_DATA MiscOemString;\r
1871 EFI_MISC_SYSTEM_OPTION_STRING_DATA MiscOptionString;\r
1872 EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA NumberOfInstallableLanguages;\r
1873 EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA MiscSystemLanguageString;\r
1874 EFI_MISC_SYSTEM_EVENT_LOG_DATA MiscSystemEventLog;\r
1875 EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;\r
1876 EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;\r
1877 EFI_MISC_PORTING_DEVICE_TYPE_DATA MiscPortingDeviceTypeData;\r
1878 EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;\r
1879 EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;\r
1880 EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA MiscScheduledPowerOnMonthData;\r
1881 EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA MiscVoltagePorbeDescriptionData;\r
1882 EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA MiscCoolingDeviceTempLinkData;\r
1883 EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA MiscTemperatureProbeDescriptionData;\r
1884 EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA MiscElectricalCurrentProbeDescriptionData;\r
1885 EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA\r
1886 MiscRemoteAccessManufacturerDescriptionData;\r
1887 EFI_MISC_BIS_ENTRY_POINT_DATA MiscBisEntryPoint;\r
1888 EFI_MISC_BOOT_INFORMATION_STATUS_DATA MiscBootInformationStatus;\r
1889 EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA MiscMangementDeviceDescriptionData;\r
1890 EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
1891 MiscmangementDeviceComponentDescriptionData;\r
1892 EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;\r
1893 EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;\r
1894 EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation;\r
1895} EFI_MISC_SUBCLASS_RECORDS;\r
1896\r
1897//\r
1898//\r
1899//\r
1900typedef struct {\r
1901 EFI_SUBCLASS_TYPE1_HEADER Header;\r
1902 EFI_MISC_SUBCLASS_RECORDS Record;\r
1903} EFI_MISC_SUBCLASS_DRIVER_DATA;\r
1904\r
1905#pragma pack()\r
1906\r
1907//\r
1908// Sub Class Header type1\r
1909//\r
1910\r
1911#define EFI_SUBCLASS_INSTANCE_RESERVED 0\r
1912#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit\r
1913\r
1914#endif\r