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