]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.h
ShellPkg: Update header file including style
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / SmbiosView / QueryTable.h
1 /** @file
2 Build a table, each item is (key, info) pair.
3 and give a interface of query a string out of a table.
4
5 Copyright (c) 2005 - 2017, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef _SMBIOS_QUERY_TABLE_H_
17 #define _SMBIOS_QUERY_TABLE_H_
18
19 #define QUERY_TABLE_UNFOUND 0xFF
20
21 typedef struct TABLE_ITEM {
22 UINT16 Key;
23 CHAR16 *Info;
24 } TABLE_ITEM;
25
26 //
27 // Print info by option
28 //
29 #define PRINT_INFO_OPTION(Value, Option) \
30 do { \
31 if (Option == SHOW_NONE) { \
32 return ; \
33 } \
34 if (Option < SHOW_DETAIL) { \
35 Print (L"0x%x\n", Value); \
36 return ; \
37 } \
38 } while (0);
39
40 /**
41 Given a table and a Key, return the responding info.
42
43 Notes:
44 Table[Index].Key is change from UINT8 to UINT16,
45 in order to deal with "0xaa - 0xbb".
46
47 For example:
48 DisplaySELVariableDataFormatTypes(UINT8 Type, UINT8 Option)
49 has a item:
50 "0x07-0x7F, Unused"
51 Now define Key = 0x7F07, that is to say: High = 0x7F, Low = 0x07.
52 Then all the Key Value between Low and High gets the same string
53 L"Unused".
54
55 @param[in] Table The begin address of table.
56 @param[in] Number The number of table items.
57 @param[in] Key The query Key.
58 @param[in, out] Info Input as empty buffer; output as data buffer.
59 @param[in] InfoLen The max number of characters for Info.
60
61 @return the found Key and Info is valid.
62 @retval QUERY_TABLE_UNFOUND and Info should be NULL.
63 **/
64 UINT8
65 QueryTable (
66 IN TABLE_ITEM *Table,
67 IN UINTN Number,
68 IN UINT8 Key,
69 IN OUT CHAR16 *Info,
70 IN UINTN InfoLen
71 );
72
73 /**
74 Display the structure type information.
75
76 @param[in] Key The key of the structure.
77 @param[in] Option The optional information.
78 **/
79 VOID
80 DisplayStructureTypeInfo (
81 IN UINT8 Key,
82 IN UINT8 Option
83 );
84
85 /**
86 Display System Information (Type 1) Type.
87
88 @param[in] Type The key of the structure.
89 @param[in] Option The optional information.
90 **/
91 VOID
92 DisplaySystemWakeupType (
93 IN UINT8 Type,
94 IN UINT8 Option
95 );
96
97 /**
98 Display Base Board (Type 2) Feature Flags.
99
100 @param[in] FeatureFlags The key of the structure.
101 @param[in] Option The optional information.
102 **/
103 VOID
104 DisplayBaseBoardFeatureFlags (
105 IN UINT8 FeatureFlags,
106 IN UINT8 Option
107 );
108
109 /**
110 Display Base Board (Type 2) Board Type.
111
112 @param[in] Type The key of the structure.
113 @param[in] Option The optional information.
114 **/
115 VOID
116 DisplayBaseBoardBoardType(
117 IN UINT8 Type,
118 IN UINT8 Option
119 );
120
121 /**
122 Display System Enclosure (Type 3) Enclosure Type.
123
124 @param[in] Type The key of the structure.
125 @param[in] Option The optional information.
126 **/
127 VOID
128 DisplaySystemEnclosureType (
129 IN UINT8 Type,
130 IN UINT8 Option
131 );
132
133 /**
134 Display System Enclosure (Type 3) Enclosure Status.
135
136 @param[in] Status The key of the structure.
137 @param[in] Option The optional information.
138 **/
139 VOID
140 DisplaySystemEnclosureStatus (
141 IN UINT8 Status,
142 IN UINT8 Option
143 );
144
145 /**
146 Display System Enclosure (Type 3) Security Status.
147
148 @param[in] Status The key of the structure.
149 @param[in] Option The optional information.
150 **/
151 VOID
152 DisplaySESecurityStatus (
153 IN UINT8 Status,
154 IN UINT8 Option
155 )
156 ;
157
158 /**
159 Display Processor Information (Type 4) Type.
160
161 @param[in] Type The key of the structure.
162 @param[in] Option The optional information.
163 **/
164 VOID
165 DisplayProcessorType (
166 IN UINT8 Type,
167 IN UINT8 Option
168 );
169
170 /**
171 Display Processor Information (Type 4) Upgrade.
172
173 @param[in] Upgrade The key of the structure.
174 @param[in] Option The optional information.
175 **/
176 VOID
177 DisplayProcessorUpgrade (
178 IN UINT8 Upgrade,
179 IN UINT8 Option
180 );
181
182 /**
183 Display Processor Information (Type 4) Characteristics.
184
185 @param[in] Type The key of the structure.
186 @param[in] Option The optional information.
187 **/
188 VOID
189 DisplayProcessorCharacteristics (
190 IN UINT16 Type,
191 IN UINT8 Option
192 );
193
194 /**
195 Display Memory Controller Information (Type 5) method.
196
197 @param[in] Method The key of the structure.
198 @param[in] Option The optional information.
199 **/
200 VOID
201 DisplayMcErrorDetectMethod (
202 IN UINT8 Method,
203 IN UINT8 Option
204 );
205
206 /**
207 Display Memory Controller Information (Type 5) Capability.
208
209 @param[in] Capability The key of the structure.
210 @param[in] Option The optional information.
211 **/
212 VOID
213 DisplayMcErrorCorrectCapability (
214 IN UINT8 Capability,
215 IN UINT8 Option
216 );
217
218 /**
219 Display Memory Controller Information (Type 5) Support.
220
221 @param[in] Support The key of the structure.
222 @param[in] Option The optional information.
223 **/
224 VOID
225 DisplayMcInterleaveSupport (
226 IN UINT8 Support,
227 IN UINT8 Option
228 );
229
230 /**
231 Display Memory Controller Information (Type 5) speeds.
232
233 @param[in] Speed The key of the structure.
234 @param[in] Option The optional information.
235 **/
236 VOID
237 DisplayMcMemorySpeeds (
238 IN UINT16 Speed,
239 IN UINT8 Option
240 );
241
242 /**
243 Display Memory Controller Information (Type 5) voltage.
244
245 @param[in] Voltage The key of the structure.
246 @param[in] Option The optional information.
247 **/
248 VOID
249 DisplayMemoryModuleVoltage (
250 IN UINT8 Voltage,
251 IN UINT8 Option
252 );
253
254 /**
255 Display Memory Module Information (Type 6) type.
256
257 @param[in] Type The key of the structure.
258 @param[in] Option The optional information.
259 **/
260 VOID
261 DisplayMmMemoryType (
262 IN UINT16 Type,
263 IN UINT8 Option
264 );
265
266 /**
267 Display Memory Module Information (Type 6) status.
268
269 @param[in] Status The key of the structure.
270 @param[in] Option The optional information.
271 **/
272 VOID
273 DisplayMmErrorStatus (
274 IN UINT8 Status,
275 IN UINT8 Option
276 );
277
278 /**
279 Display Cache Information (Type 7) SRAM Type.
280
281 @param[in] Type The key of the structure.
282 @param[in] Option The optional information.
283 **/
284 VOID
285 DisplayCacheSRAMType (
286 IN UINT16 Type,
287 IN UINT8 Option
288 );
289
290 /**
291 Display Cache Information (Type 7) correcting Type.
292
293 @param[in] Type The key of the structure.
294 @param[in] Option The optional information.
295 **/
296 VOID
297 DisplayCacheErrCorrectingType (
298 IN UINT8 Type,
299 IN UINT8 Option
300 );
301
302 /**
303 Display Cache Information (Type 7) Type.
304
305 @param[in] Type The key of the structure.
306 @param[in] Option The optional information.
307 **/
308 VOID
309 DisplayCacheSystemCacheType (
310 IN UINT8 Type,
311 IN UINT8 Option
312 );
313
314 /**
315 Display Cache Information (Type 7) Associativity.
316
317 @param[in] Associativity The key of the structure.
318 @param[in] Option The optional information.
319 **/
320 VOID
321 DisplayCacheAssociativity (
322 IN UINT8 Associativity,
323 IN UINT8 Option
324 );
325
326 /**
327 Display Port Connector Information (Type 8) type.
328
329 @param[in] Type The key of the structure.
330 @param[in] Option The optional information.
331 **/
332 VOID
333 DisplayPortConnectorType (
334 IN UINT8 Type,
335 IN UINT8 Option
336 );
337
338 /**
339 Display Port Connector Information (Type 8) port type.
340
341 @param[in] Type The key of the structure.
342 @param[in] Option The optional information.
343 **/
344 VOID
345 DisplayPortType (
346 IN UINT8 Type,
347 IN UINT8 Option
348 );
349
350 /**
351 Display System Slots (Type 9) slot type.
352
353 @param[in] Type The key of the structure.
354 @param[in] Option The optional information.
355 **/
356 VOID
357 DisplaySystemSlotType (
358 IN UINT8 Type,
359 IN UINT8 Option
360 );
361
362 /**
363 Display System Slots (Type 9) data bus width.
364
365 @param[in] Width The key of the structure.
366 @param[in] Option The optional information.
367 **/
368 VOID
369 DisplaySystemSlotDataBusWidth (
370 IN UINT8 Width,
371 IN UINT8 Option
372 );
373
374 /**
375 Display System Slots (Type 9) usage information.
376
377 @param[in] Usage The key of the structure.
378 @param[in] Option The optional information.
379 **/
380 VOID
381 DisplaySystemSlotCurrentUsage (
382 IN UINT8 Usage,
383 IN UINT8 Option
384 );
385
386 /**
387 Display System Slots (Type 9) slot length.
388
389 @param[in] Length The key of the structure.
390 @param[in] Option The optional information.
391 **/
392 VOID
393 DisplaySystemSlotLength (
394 IN UINT8 Length,
395 IN UINT8 Option
396 );
397
398 /**
399 Display System Slots (Type 9) characteristics.
400
401 @param[in] Chara1 The key of the structure.
402 @param[in] Option The optional information.
403 **/
404 VOID
405 DisplaySlotCharacteristics1 (
406 IN UINT8 Chara1,
407 IN UINT8 Option
408 );
409
410 /**
411 Display System Slots (Type 9) characteristics.
412
413 @param[in] Chara2 The key of the structure.
414 @param[in] Option The optional information.
415 **/
416 VOID
417 DisplaySlotCharacteristics2 (
418 IN UINT8 Chara2,
419 IN UINT8 Option
420 );
421
422 /**
423 Display On Board Devices Information (Type 10) types.
424
425 @param[in] Type The key of the structure.
426 @param[in] Option The optional information.
427 **/
428 VOID
429 DisplayOnboardDeviceTypes (
430 IN UINT8 Type,
431 IN UINT8 Option
432 );
433
434 /**
435 Display System Event Log (Type 15) types.
436
437 @param[in] Type The key of the structure.
438 @param[in] Option The optional information.
439 **/
440 VOID
441 DisplaySELTypes (
442 IN UINT8 Type,
443 IN UINT8 Option
444 );
445
446 /**
447 Display System Event Log (Type 15) format type.
448
449 @param[in] Type The key of the structure.
450 @param[in] Option The optional information.
451 **/
452 VOID
453 DisplaySELVarDataFormatType (
454 IN UINT8 Type,
455 IN UINT8 Option
456 );
457
458 /**
459 Display System Event Log (Type 15) dw1.
460
461 @param[in] Key The key of the structure.
462 @param[in] Option The optional information.
463 **/
464 VOID
465 DisplayPostResultsBitmapDw1 (
466 IN UINT32 Key,
467 IN UINT8 Option
468 );
469
470 /**
471 Display System Event Log (Type 15) dw2.
472
473 @param[in] Key The key of the structure.
474 @param[in] Option The optional information.
475 **/
476 VOID
477 DisplayPostResultsBitmapDw2 (
478 IN UINT32 Key,
479 IN UINT8 Option
480 );
481
482 /**
483 Display System Event Log (Type 15) type.
484
485 @param[in] SMType The key of the structure.
486 @param[in] Option The optional information.
487 **/
488 VOID
489 DisplaySELSysManagementTypes (
490 IN UINT32 SMType,
491 IN UINT8 Option
492 );
493
494 /**
495 Display Physical Memory Array (Type 16) Location.
496
497 @param[in] Location The key of the structure.
498 @param[in] Option The optional information.
499 **/
500 VOID
501 DisplayPMALocation (
502 IN UINT8 Location,
503 IN UINT8 Option
504 );
505
506 /**
507 Display Physical Memory Array (Type 16) Use.
508
509 @param[in] Use The key of the structure.
510 @param[in] Option The optional information.
511 **/
512 VOID
513 DisplayPMAUse (
514 IN UINT8 Use,
515 IN UINT8 Option
516 );
517
518 /**
519 Display Physical Memory Array (Type 16) Types.
520
521 @param[in] Type The key of the structure.
522 @param[in] Option The optional information.
523 **/
524 VOID
525 DisplayPMAErrorCorrectionTypes (
526 IN UINT8 Type,
527 IN UINT8 Option
528 );
529
530 /**
531 Display Memory Device (Type 17) form factor.
532
533 @param[in] FormFactor The key of the structure.
534 @param[in] Option The optional information.
535 **/
536 VOID
537 DisplayMemoryDeviceFormFactor (
538 IN UINT8 FormFactor,
539 IN UINT8 Option
540 );
541
542 /**
543 Display Memory Device (Type 17) type.
544
545 @param[in] Type The key of the structure.
546 @param[in] Option The optional information.
547 **/
548 VOID
549 DisplayMemoryDeviceType (
550 IN UINT8 Type,
551 IN UINT8 Option
552 );
553
554 /**
555 Display Memory Device (Type 17) details.
556
557 @param[in] Para The key of the structure.
558 @param[in] Option The optional information.
559 **/
560 VOID
561 DisplayMemoryDeviceTypeDetail (
562 IN UINT16 Para,
563 IN UINT8 Option
564 );
565
566 /**
567 Display 32-bit Memory Error Information (Type 18) type.
568
569 @param[in] ErrorType The key of the structure.
570 @param[in] Option The optional information.
571 **/
572 VOID
573 DisplayMemoryErrorType (
574 IN UINT8 ErrorType,
575 IN UINT8 Option
576 );
577
578 /**
579 Display 32-bit Memory Error Information (Type 18) error granularity.
580
581 @param[in] Granularity The key of the structure.
582 @param[in] Option The optional information.
583 **/
584 VOID
585 DisplayMemoryErrorGranularity (
586 IN UINT8 Granularity,
587 IN UINT8 Option
588 );
589
590 /**
591 Display 32-bit Memory Error Information (Type 18) error information.
592
593 @param[in] Operation The key of the structure.
594 @param[in] Option The optional information.
595 **/
596 VOID
597 DisplayMemoryErrorOperation (
598 IN UINT8 Operation,
599 IN UINT8 Option
600 );
601
602 /**
603 Display Built-in Pointing Device (Type 21) type information.
604
605 @param[in] Type The key of the structure.
606 @param[in] Option The optional information.
607 **/
608 VOID
609 DisplayPointingDeviceType (
610 IN UINT8 Type,
611 IN UINT8 Option
612 );
613
614 /**
615 Display Built-in Pointing Device (Type 21) information.
616
617 @param[in] Interface The key of the structure.
618 @param[in] Option The optional information.
619 **/
620 VOID
621 DisplayPointingDeviceInterface (
622 IN UINT8 Interface,
623 IN UINT8 Option
624 );
625
626 /**
627 Display Portable Battery (Type 22) information.
628
629 @param[in] Key The key of the structure.
630 @param[in] Option The optional information.
631 **/
632 VOID
633 DisplayPBDeviceChemistry (
634 IN UINT8 Key,
635 IN UINT8 Option
636 );
637
638 /**
639 Display Voltage Probe (Type 26) location information.
640
641 @param[in] Key The key of the structure.
642 @param[in] Option The optional information.
643 **/
644 VOID
645 DisplayVPLocation (
646 IN UINT8 Key,
647 IN UINT8 Option
648 );
649
650 /**
651 Display Voltage Probe (Type 26) status ype information.
652
653 @param[in] Key The key of the structure.
654 @param[in] Option The optional information.
655 **/
656 VOID
657 DisplayVPStatus (
658 IN UINT8 Key,
659 IN UINT8 Option
660 );
661
662 /**
663 Display Cooling (Type 27) status information.
664
665 @param[in] Key The key of the structure.
666 @param[in] Option The optional information.
667 **/
668 VOID
669 DisplayCoolingDeviceStatus (
670 IN UINT8 Key,
671 IN UINT8 Option
672 );
673
674 /**
675 Display Cooling (Type 27) type information.
676
677 @param[in] Key The key of the structure.
678 @param[in] Option The optional information.
679 **/
680 VOID
681 DisplayCoolingDeviceType (
682 IN UINT8 Key,
683 IN UINT8 Option
684 );
685
686 /**
687 Display Temperature Probe (Type 28) status information.
688
689 @param[in] Key The key of the structure.
690 @param[in] Option The optional information.
691 **/
692 VOID
693 DisplayTemperatureProbeStatus (
694 IN UINT8 Key,
695 IN UINT8 Option
696 );
697
698 /**
699 Display Temperature Probe (Type 28) location information.
700
701 @param[in] Key The key of the structure.
702 @param[in] Option The optional information.
703 **/
704 VOID
705 DisplayTemperatureProbeLoc (
706 IN UINT8 Key,
707 IN UINT8 Option
708 );
709
710 /**
711 Display Electrical Current Probe (Type 29) status information.
712
713 @param[in] Key The key of the structure.
714 @param[in] Option The optional information.
715 **/
716 VOID
717 DisplayECPStatus (
718 IN UINT8 Key,
719 IN UINT8 Option
720 );
721
722 /**
723 Display Electrical Current Probe (Type 29) location information.
724
725 @param[in] Key The key of the structure.
726 @param[in] Option The optional information.
727 **/
728 VOID
729 DisplayECPLoc (
730 IN UINT8 Key,
731 IN UINT8 Option
732 );
733
734 /**
735 Display Management Device (Type 34) Type.
736
737 @param[in] Key The key of the structure.
738 @param[in] Option The optional information.
739 **/
740 VOID
741 DisplayMDType (
742 IN UINT8 Key,
743 IN UINT8 Option
744 );
745
746 /**
747 Display Management Device (Type 34) Address Type.
748
749 @param[in] Key The key of the structure.
750 @param[in] Option The optional information.
751 **/
752 VOID
753 DisplayMDAddressType (
754 IN UINT8 Key,
755 IN UINT8 Option
756 );
757
758 /**
759 Display Memory Channel (Type 37) information.
760
761 @param[in] Key The key of the structure.
762 @param[in] Option The optional information.
763 **/
764 VOID
765 DisplayMemoryChannelType (
766 IN UINT8 Key,
767 IN UINT8 Option
768 );
769
770 /**
771 Display IPMI Device Information (Type 38) information.
772
773 @param[in] Key The key of the structure.
774 @param[in] Option The optional information.
775 **/
776 VOID
777 DisplayIPMIDIBMCInterfaceType (
778 IN UINT8 Key,
779 IN UINT8 Option
780 );
781
782 /**
783 Display Management Controller Host Interface (Type 42) information.
784
785 @param[in] Key The key of the structure.
786 @param[in] Option The optional information.
787 **/
788 VOID
789 DisplayMCHostInterfaceType (
790 IN UINT8 Key,
791 IN UINT8 Option
792 );
793
794 #endif