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