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 - 2018, Intel Corporation. All rights reserved.<BR>
6   (C) Copyright 2016-2017 Hewlett Packard Enterprise Development LP<BR>
7   SPDX-License-Identifier: BSD-2-Clause-Patent
8 
9 **/
10 
11 #include "UefiShellDebug1CommandsLib.h"
12 #include "QueryTable.h"
13 #include "PrintInfo.h"
14 
15 TABLE_ITEM  SystemWakeupTypeTable[] = {
16   {
17     0x0,
18     L" Reserved"
19   },
20   {
21     0x1,
22     L" Other"
23   },
24   {
25     0x2,
26     L" Unknown"
27   },
28   {
29     0x3,
30     L" APM Timer"
31   },
32   {
33     0x4,
34     L" Modem Ring"
35   },
36   {
37     0x5,
38     L" LAN Remote"
39   },
40   {
41     0x6,
42     L" Power Switch"
43   },
44   {
45     0x7,
46     L" AC Power Restored"
47   }
48 };
49 
50 TABLE_ITEM  BaseBoardFeatureFlagsTable[] = {
51   {
52     0,
53     L" Hosting board"
54   },
55   {
56     1,
57     L" Requires at least one daughter board or auxiliary card"
58   },
59   {
60     2,
61     L" Removable"
62   },
63   {
64     3,
65     L" Replaceable"
66   },
67   {
68     4,
69     L" Hot swappable"
70   }
71 };
72 
73 TABLE_ITEM  BaseBoardBoardTypeTable[] = {
74   {
75     0x01,
76     L" Unknown"
77   },
78   {
79     0x02,
80     L" Other"
81   },
82   {
83     0x03,
84     L" Server Blade"
85   },
86   {
87     0x04,
88     L" Connectivity Switch"
89   },
90   {
91     0x05,
92     L" System Management Module"
93   },
94   {
95     0x06,
96     L" Processor Module"
97   },
98   {
99     0x07,
100     L" I/O Module"
101   },
102   {
103     0x08,
104     L" Memory Module"
105   },
106   {
107     0x09,
108     L" Daughter board"
109   },
110   {
111     0x0A,
112     L" Motherboard"
113   },
114   {
115     0x0B,
116     L" Processor/Memory Module"
117   },
118   {
119     0x0C,
120     L" Processor/IO Module"
121   },
122   {
123     0x0D,
124     L" Interconnect Board"
125   }
126 };
127 
128 TABLE_ITEM  SystemEnclosureTypeTable[] = {
129   {
130     0x01,
131     L"  Other"
132   },
133   {
134     0x02,
135     L"  Unknown"
136   },
137   {
138     0x03,
139     L"  Desktop"
140   },
141   {
142     0x04,
143     L"  Low Profile Desktop"
144   },
145   {
146     0x05,
147     L"  Pizza Box"
148   },
149   {
150     0x06,
151     L"  Mini Tower"
152   },
153   {
154     0x07,
155     L"  Tower"
156   },
157   {
158     0x08,
159     L"  Portable"
160   },
161   {
162     0x09,
163     L"  Laptop"
164   },
165   {
166     0x0A,
167     L"  Notebook"
168   },
169   {
170     0x0B,
171     L"  Hand Held"
172   },
173   {
174     0x0C,
175     L"  Docking Station"
176   },
177   {
178     0x0D,
179     L"  All in One"
180   },
181   {
182     0x0E,
183     L"  Sub Notebook"
184   },
185   {
186     0x0F,
187     L"  Space-saving"
188   },
189   {
190     0x10,
191     L"  Main Server Chassis"
192   },
193   {
194     0x11,
195     L"  Expansion Chassis"
196   },
197   {
198     0x12,
199     L"  SubChassis"
200   },
201   {
202     0x13,
203     L"  Sub Notebook"
204   },
205   {
206     0x14,
207     L"  Bus Expansion Chassis"
208   },
209   {
210     0x15,
211     L"  Peripheral Chassis"
212   },
213   {
214     0x16,
215     L"  RAID Chassis"
216   },
217   {
218     0x17,
219     L"  Rack Mount Chassis"
220   },
221   {
222     0x18,
223     L"  Sealed-case PC"
224   },
225   {
226     0x19,
227     L"  Multi-system Chassis"
228   },
229   {
230     0x1A,
231     L"  CompactPCI"
232   },
233   {
234     0x1B,
235     L"  AdvancedTCA"
236   },
237   {
238     0x1C,
239     L"  Blade"
240   },
241   {
242     0x1D,
243     L"  Blade Enclosure"
244   },
245   {
246     0x1E,
247     L"  Tablet"
248   },
249   {
250     0x1F,
251     L"  Convertible"
252   },
253   {
254     0x20,
255     L"  Detachable"
256   },
257   {
258     0x21,
259     L"  IoT Gateway"
260   },
261   {
262     0x22,
263     L"  Embedded PC"
264   },
265   {
266     0x23,
267     L"  Mini PC"
268   },
269   {
270     0x24,
271     L"  Stick PC"
272   },
273 };
274 
275 TABLE_ITEM  SystemEnclosureStatusTable[] = {
276   {
277     0x1,
278     L" Other"
279   },
280   {
281     0x2,
282     L" Unknown"
283   },
284   {
285     0x3,
286     L" Safe"
287   },
288   {
289     0x4,
290     L" Warning"
291   },
292   {
293     0x5,
294     L" Critical"
295   },
296   {
297     0x6,
298     L" Non-recoverable"
299   }
300 };
301 
302 TABLE_ITEM  SESecurityStatusTable[] = {
303   {
304     0x1,
305     L" Other"
306   },
307   {
308     0x2,
309     L" Unknown"
310   },
311   {
312     0x3,
313     L" None"
314   },
315   {
316     0x4,
317     L" External interface locked out"
318   },
319   {
320     0x5,
321     L" External interface enabled"
322   }
323 };
324 
325 TABLE_ITEM  ProcessorTypeTable[] = {
326   {
327     0x1,
328     L" Other"
329   },
330   {
331     0x2,
332     L" Unknown"
333   },
334   {
335     0x3,
336     L" Central Processor"
337   },
338   {
339     0x4,
340     L" Math Processor"
341   },
342   {
343     0x5,
344     L" DSP Processor"
345   },
346   {
347     0x6,
348     L" Video Processor "
349   },
350 };
351 
352 TABLE_ITEM  ProcessorUpgradeTable[] = {
353   {
354     0x01,
355     L"Other"
356   },
357   {
358     0x02,
359     L"Unknown"
360   },
361   {
362     0x03,
363     L"Daughter Board"
364   },
365   {
366     0x04,
367     L"ZIF Socket"
368   },
369   {
370     0x05,
371     L"Replaceable Piggy Back"
372   },
373   {
374     0x06,
375     L"None"
376   },
377   {
378     0x07,
379     L"LIF Socket"
380   },
381   {
382     0x08,
383     L"Slot 1"
384   },
385   {
386     0x09,
387     L"Slot 2"
388   },
389   {
390     0x0A,
391     L"370-pin socket"
392   },
393   {
394     0x0B,
395     L"Slot A"
396   },
397   {
398     0x0C,
399     L"Slot M"
400   },
401   {
402     0x0D,
403     L"Socket 423"
404   },
405   {
406     0x0E,
407     L"Socket A"
408   },
409   {
410     0x0F,
411     L"Socket 478"
412   },
413   {
414     0x10,
415     L"Socket 754"
416   },
417   {
418     0x11,
419     L"Socket 940"
420   },
421   {
422     0x12,
423     L"Socket 939"
424   },
425   {
426     0x13,
427     L"Socket mPGA604"
428   },
429   {
430     0x14,
431     L"Socket LGA771"
432   },
433   {
434     0x15,
435     L"Socket LGA775"
436   },
437   {
438     0x16,
439     L"Socket S1"
440   },
441   {
442     0x17,
443     L"Socket AM2"
444   },
445   {
446     0x18,
447     L"Socket F"
448   },
449   {
450     0x19,
451     L"Socket LGA1366"
452   },
453   {
454     0x1A,
455     L"Socket G34"
456   },
457   {
458     0x1B,
459     L"Socket AM3"
460   },
461   {
462     0x1C,
463     L"Socket C32"
464   },
465   {
466     0x1D,
467     L"Socket LGA1156"
468   },
469   {
470     0x1E,
471     L"Socket LGA1567"
472   },
473   {
474     0x1F,
475     L"Socket PGA988A"
476   },
477   {
478     0x20,
479     L"Socket BGA1288"
480   },
481   {
482     0x21,
483     L"Socket rPGA988B"
484   },
485   {
486     0x22,
487     L"Socket BGA1023"
488   },
489   {
490     0x23,
491     L"Socket BGA1224"
492   },
493   {
494     0x24,
495     L"Socket LGA1155"
496   },
497   {
498     0x25,
499     L"Socket LGA1356"
500   },
501   {
502     0x26,
503     L"Socket LGA2011"
504   },
505   {
506     0x27,
507     L"Socket FS1"
508   },
509   {
510     0x28,
511     L"Socket FS2"
512   },
513   {
514     0x29,
515     L"Socket FM1"
516   },
517   {
518     0x2A,
519     L"Socket FM2"
520   },
521   {
522     0x2B,
523     L"Socket LGA2011-3"
524   },
525   {
526     0x2C,
527     L"Socket LGA1356-3"
528   },
529   {
530     0x2D,
531     L"Socket LGA1150"
532   },
533   {
534     0x2E,
535     L"Socket BGA1168"
536   },
537   {
538     0x2F,
539     L"Socket BGA1234"
540   },
541   {
542     0x30,
543     L"Socket BGA1364"
544   },
545   {
546     0x31,
547     L"Socket AM4"
548   },
549   {
550     0x32,
551     L"Socket LGA1151"
552   },
553   {
554     0x33,
555     L"Socket BGA1356"
556   },
557   {
558     0x34,
559     L"Socket BGA1440"
560   },
561   {
562     0x35,
563     L"Socket BGA1515"
564   },
565   {
566     0x36,
567     L"Socket LGA3647-1"
568   },
569   {
570     0x37,
571     L"Socket SP3"
572   },
573   {
574     0x38,
575     L"Socket SP3r2"
576   },
577   {
578     0x39,
579     L"Socket LGA2066"
580   },
581   {
582     0x3A,
583     L"Socket BGA1392"
584   },
585   {
586     0x3B,
587     L"Socket BGA1510"
588   },
589   {
590     0x3C,
591     L"Socket BGA1528"
592   }
593 };
594 
595 TABLE_ITEM  ProcessorCharacteristicsTable[] = {
596   {
597     1,
598     L" Unknown"
599   },
600   {
601     2,
602     L" 64-bit Capable"
603   },
604   {
605     3,
606     L" Multi-Core"
607   },
608   {
609     4,
610     L" Hardware Thread"
611   },
612   {
613     5,
614     L" Execute Protection"
615   },
616   {
617     6,
618     L" Enhanced Virtualization"
619   },
620   {
621     7,
622     L" Power/Performance Control"
623   }
624 };
625 
626 
627 TABLE_ITEM  McErrorDetectMethodTable[] = {
628   {
629     0x01,
630     L"Other"
631   },
632   {
633     0x02,
634     L"Unknown"
635   },
636   {
637     0x03,
638     L"None"
639   },
640   {
641     0x04,
642     L"8-bit Parity"
643   },
644   {
645     0x05,
646     L"32-bit ECC"
647   },
648   {
649     0x06,
650     L"64-bit ECC"
651   },
652   {
653     0x07,
654     L"128-bit ECC"
655   },
656   {
657     0x08,
658     L"CRC"
659   },
660 };
661 
662 TABLE_ITEM  McErrorCorrectCapabilityTable[] = {
663   {
664     0,
665     L"Other"
666   },
667   {
668     1,
669     L"Unknown"
670   },
671   {
672     2,
673     L"None"
674   },
675   {
676     3,
677     L"Single Bit Error Correcting"
678   },
679   {
680     4,
681     L"Double Bit Error Correcting"
682   },
683   {
684     5,
685     L"Error Scrubbing"
686   },
687 };
688 
689 TABLE_ITEM  McInterleaveSupportTable[] = {
690   {
691     0x01,
692     L"Other"
693   },
694   {
695     0x02,
696     L"Unknown"
697   },
698   {
699     0x03,
700     L"One Way Interleave"
701   },
702   {
703     0x04,
704     L"Two Way Interleave"
705   },
706   {
707     0x05,
708     L"Four Way Interleave"
709   },
710   {
711     0x06,
712     L"Eight Way Interleave"
713   },
714   {
715     0x07,
716     L"Sixteen Way Interleave"
717   }
718 };
719 
720 TABLE_ITEM  McMemorySpeedsTable[] = {
721   {
722     0,
723     L" Other"
724   },
725   {
726     1,
727     L" Unknown"
728   },
729   {
730     2,
731     L" 70ns"
732   },
733   {
734     3,
735     L" 60ns"
736   },
737   {
738     4,
739     L" 50ns"
740   },
741 };
742 
743 TABLE_ITEM  MemoryModuleVoltageTable[] = {
744   {
745     0,
746     L" 5V"
747   },
748   {
749     1,
750     L" 3.3V"
751   },
752   {
753     2,
754     L" 2.9V"
755   },
756 };
757 
758 TABLE_ITEM  MmMemoryTypeTable[] = {
759   {
760     0,
761     L" Other"
762   },
763   {
764     1,
765     L" Unknown"
766   },
767   {
768     2,
769     L" Standard"
770   },
771   {
772     3,
773     L" Fast Page Mode"
774   },
775   {
776     4,
777     L" EDO"
778   },
779   {
780     5,
781     L" Parity"
782   },
783   {
784     6,
785     L" ECC "
786   },
787   {
788     7,
789     L" SIMM"
790   },
791   {
792     8,
793     L" DIMM"
794   },
795   {
796     9,
797     L" Burst EDO"
798   },
799   {
800     10,
801     L" SDRAM"
802   }
803 };
804 
805 TABLE_ITEM  MmErrorStatusTable[] = {
806   {
807     0,
808     L" Uncorrectable errors received"
809   },
810   {
811     1,
812     L" Correctable errors received"
813   },
814   {
815     2,
816     L" Error Status obtained from the event log"
817   }
818 };
819 
820 TABLE_ITEM  CacheSRAMTypeTable[] = {
821   {
822     0,
823     L" Other"
824   },
825   {
826     1,
827     L" Unknown"
828   },
829   {
830     2,
831     L" Non-Burst"
832   },
833   {
834     3,
835     L" Burst"
836   },
837   {
838     4,
839     L" Pipeline Burst"
840   },
841   {
842     5,
843     L" Synchronous"
844   },
845   {
846     6,
847     L" Asynchronous"
848   },
849 };
850 
851 TABLE_ITEM  CacheErrCorrectingTypeTable[] = {
852   {
853     0x01,
854     L"Other"
855   },
856   {
857     0x02,
858     L"Unknown"
859   },
860   {
861     0x03,
862     L"None"
863   },
864   {
865     0x04,
866     L"Parity"
867   },
868   {
869     0x05,
870     L"Single-bit ECC"
871   },
872   {
873     0x06,
874     L"Multi-bit ECC"
875   }
876 };
877 
878 TABLE_ITEM  CacheSystemCacheTypeTable[] = {
879   {
880     0x01,
881     L"Other"
882   },
883   {
884     0x02,
885     L"Unknown"
886   },
887   {
888     0x03,
889     L"Instruction"
890   },
891   {
892     0x04,
893     L"Data"
894   },
895   {
896     0x05,
897     L"Unified"
898   }
899 };
900 
901 TABLE_ITEM  CacheAssociativityTable[] = {
902   {
903     0x01,
904     L"Other"
905   },
906   {
907     0x02,
908     L"Unknown"
909   },
910   {
911     0x03,
912     L"Direct Mapped"
913   },
914   {
915     0x04,
916     L"2-way Set-Associative"
917   },
918   {
919     0x05,
920     L"4-way Set-Associative"
921   },
922   {
923     0x06,
924     L"Fully Associative"
925   },
926   {
927     0x07,
928     L"8-way Set-Associative"
929   },
930   {
931     0x08,
932     L"16-way Set-Associative"
933   },
934   {
935     0x09,
936     L"12-way Set-Associative"
937   },
938   {
939     0x0A,
940     L"24-way Set-Associative"
941   },
942   {
943     0x0B,
944     L"32-way Set-Associative"
945   },
946   {
947     0x0C,
948     L"48-way Set-Associative"
949   },
950   {
951     0x0D,
952     L"64-way Set-Associative"
953   },
954   {
955     0x0E,
956     L"20-way Set-Associative"
957   }
958 };
959 
960 TABLE_ITEM  PortConnectorTypeTable[] = {
961   {
962     0x00,
963     L"None"
964   },
965   {
966     0x01,
967     L"Centronics"
968   },
969   {
970     0x02,
971     L"Mini Centronics"
972   },
973   {
974     0x03,
975     L"Proprietary"
976   },
977   {
978     0x04,
979     L"DB-25 pin male"
980   },
981   {
982     0x05,
983     L"DB-25 pin female"
984   },
985   {
986     0x06,
987     L"DB-15 pin male"
988   },
989   {
990     0x07,
991     L"DB-15 pin female"
992   },
993   {
994     0x08,
995     L"DB-9 pin male"
996   },
997   {
998     0x09,
999     L"DB-9 pin female"
1000   },
1001   {
1002     0x0A,
1003     L"RJ-11"
1004   },
1005   {
1006     0x0B,
1007     L"RJ-45"
1008   },
1009   {
1010     0x0C,
1011     L"50 Pin MiniSCSI"
1012   },
1013   {
1014     0x0D,
1015     L"Mini-DIN"
1016   },
1017   {
1018     0x0E,
1019     L"Micro-DIN"
1020   },
1021   {
1022     0x0F,
1023     L"PS/2"
1024   },
1025   {
1026     0x10,
1027     L"Infrared"
1028   },
1029   {
1030     0x11,
1031     L"HP-HIL"
1032   },
1033   {
1034     0x12,
1035     L"Access Bus (USB)"
1036   },
1037   {
1038     0x13,
1039     L"SSA SCSI"
1040   },
1041   {
1042     0x14,
1043     L"Circular DIN-8 male"
1044   },
1045   {
1046     0x15,
1047     L"Circular DIN-8 female"
1048   },
1049   {
1050     0x16,
1051     L"On Board IDE"
1052   },
1053   {
1054     0x17,
1055     L"On Board Floppy"
1056   },
1057   {
1058     0x18,
1059     L"9 Pin Dual Inline (pin 10 cut)"
1060   },
1061   {
1062     0x19,
1063     L"25 Pin Dual Inline (pin 26 cut)"
1064   },
1065   {
1066     0x1A,
1067     L"50 Pin Dual Inline"
1068   },
1069   {
1070     0x1B,
1071     L"68 Pin Dual Inline"
1072   },
1073   {
1074     0x1C,
1075     L"On Board Sound Input from CD-ROM"
1076   },
1077   {
1078     0x1D,
1079     L"Mini-Centronics Type-14"
1080   },
1081   {
1082     0x1E,
1083     L"Mini-Centronics Type-26"
1084   },
1085   {
1086     0x1F,
1087     L"Mini-jack (headphones)"
1088   },
1089   {
1090     0x20,
1091     L"BNC"
1092   },
1093   {
1094     0x21,
1095     L"1394"
1096   },
1097   {
1098     0x22,
1099     L"SAS/SATA Plug Receptacle"
1100   },
1101   {
1102     0x23,
1103     L"USB Type-C Receptacle"
1104   },
1105   {
1106     0xA0,
1107     L"PC-98"
1108   },
1109   {
1110     0xA1,
1111     L"PC-98Hireso"
1112   },
1113   {
1114     0xA2,
1115     L"PC-H98"
1116   },
1117   {
1118     0xA3,
1119     L"PC-98Note"
1120   },
1121   {
1122     0xA4,
1123     L"PC-98Full"
1124   },
1125   {
1126     0xFF,
1127     L"Other"
1128   },
1129 };
1130 
1131 TABLE_ITEM  PortTypeTable[] = {
1132   {
1133     0x00,
1134     L"None"
1135   },
1136   {
1137     0x01,
1138     L"Parallel Port XT/AT Compatible"
1139   },
1140   {
1141     0x02,
1142     L"Parallel Port PS/2"
1143   },
1144   {
1145     0x03,
1146     L"Parallel Port ECP"
1147   },
1148   {
1149     0x04,
1150     L"Parallel Port EPP"
1151   },
1152   {
1153     0x05,
1154     L"Parallel Port ECP/EPP"
1155   },
1156   {
1157     0x06,
1158     L"Serial Port XT/AT Compatible"
1159   },
1160   {
1161     0x07,
1162     L"Serial Port 16450 Compatible"
1163   },
1164   {
1165     0x08,
1166     L"Serial Port 16550 Compatible"
1167   },
1168   {
1169     0x09,
1170     L"Serial Port 16550A Compatible"
1171   },
1172   {
1173     0x0A,
1174     L"SCSI Port"
1175   },
1176   {
1177     0x0B,
1178     L"MIDI Port"
1179   },
1180   {
1181     0x0C,
1182     L"Joy Stick Port"
1183   },
1184   {
1185     0x0D,
1186     L"Keyboard Port"
1187   },
1188   {
1189     0x0E,
1190     L"Mouse Port"
1191   },
1192   {
1193     0x0F,
1194     L"SSA SCSI"
1195   },
1196   {
1197     0x10,
1198     L"USB"
1199   },
1200   {
1201     0x11,
1202     L"FireWire (IEEE P1394)"
1203   },
1204   {
1205     0x12,
1206     L"PCMCIA Type II"
1207   },
1208   {
1209     0x13,
1210     L"PCMCIA Type II"
1211   },
1212   {
1213     0x14,
1214     L"PCMCIA Type III"
1215   },
1216   {
1217     0x15,
1218     L"Cardbus"
1219   },
1220   {
1221     0x16,
1222     L"Access Bus Port"
1223   },
1224   {
1225     0x17,
1226     L"SCSI II"
1227   },
1228   {
1229     0x18,
1230     L"SCSI Wide"
1231   },
1232   {
1233     0x19,
1234     L"PC-98"
1235   },
1236   {
1237     0x1A,
1238     L"PC-98-Hireso"
1239   },
1240   {
1241     0x1B,
1242     L"PC-H98"
1243   },
1244   {
1245     0x1C,
1246     L"Video Port"
1247   },
1248   {
1249     0x1D,
1250     L"Audio Port"
1251   },
1252   {
1253     0x1E,
1254     L"Modem Port"
1255   },
1256   {
1257     0x1F,
1258     L"Network Port"
1259   },
1260   {
1261     0x20,
1262     L"SATA Port"
1263   },
1264   {
1265     0x21,
1266     L"SAS Port"
1267   },
1268   {
1269     0x22,
1270     L"Multi-Function Display Port (MFDP)"
1271   },
1272   {
1273     0x23,
1274     L"Thunderbolt"
1275   },
1276   {
1277     0xA0,
1278     L"8251 Compatible"
1279   },
1280   {
1281     0xA1,
1282     L"8251 FIFO Compatible"
1283   },
1284   {
1285     0xFF,
1286     L"Other "
1287   },
1288 };
1289 
1290 TABLE_ITEM  SystemSlotTypeTable[] = {
1291   {
1292     0x01,
1293     L"Other"
1294   },
1295   {
1296     0x02,
1297     L"Unknown"
1298   },
1299   {
1300     0x03,
1301     L"ISA"
1302   },
1303   {
1304     0x04,
1305     L"MCA"
1306   },
1307   {
1308     0x05,
1309     L"EISA"
1310   },
1311   {
1312     0x06,
1313     L"PCI"
1314   },
1315   {
1316     0x07,
1317     L"PC Card (PCMCIA)"
1318   },
1319   {
1320     0x08,
1321     L"VL-VESA"
1322   },
1323   {
1324     0x09,
1325     L"Proprietary"
1326   },
1327   {
1328     0x0A,
1329     L"Processor Card Slot"
1330   },
1331   {
1332     0x0B,
1333     L"Proprietary Memory Card Slot"
1334   },
1335   {
1336     0x0C,
1337     L"I/O Riser Card Slot"
1338   },
1339   {
1340     0x0D,
1341     L"NuBus"
1342   },
1343   {
1344     0x0E,
1345     L"PCI - 66MHz Capable"
1346   },
1347   {
1348     0x0F,
1349     L"AGP"
1350   },
1351   {
1352     0x10,
1353     L"AGP 2X"
1354   },
1355   {
1356     0x11,
1357     L"AGP 4X"
1358   },
1359   {
1360     0x12,
1361     L"PCI-X"
1362   },
1363   {
1364     0x13,
1365     L"AGP 8X"
1366   },
1367   {
1368     0x14,
1369     L"M.2 Socket 1-DP (Mechanical Key A)"
1370   },
1371   {
1372     0x15,
1373     L"M.2 Socket 1-SD (Mechanical Key E)"
1374   },
1375   {
1376     0x16,
1377     L"M.2 Socket 2 (Mechanical Key B)"
1378   },
1379   {
1380     0x17,
1381     L"M.2 Socket 3 (Mechanical Key M)"
1382   },
1383   {
1384     0x18,
1385     L"MXM Type I"
1386   },
1387   {
1388     0x19,
1389     L"MXM Type II"
1390   },
1391   {
1392     0x1A,
1393     L"MXM Type III (standard connector)"
1394   },
1395   {
1396     0x1B,
1397     L"MXM Type III (HE connector)"
1398   },
1399   {
1400     0x1C,
1401     L"MXM Type IV"
1402   },
1403   {
1404     0x1D,
1405     L"MXM 3.0 Type A"
1406   },
1407   {
1408     0x1E,
1409     L"MXM 3.0 Type B"
1410   },
1411   {
1412     0x1F,
1413     L"PCI Express Gen 2 SFF-8639"
1414   },
1415   {
1416     0x20,
1417     L"PCI Express Gen 3 SFF-8639"
1418   },
1419   {
1420     0x21,
1421     L"PCI Express Mini 52-pin (CEM spec. 2.0) with bottom-side keep-outs"
1422   },
1423   {
1424     0x22,
1425     L"PCI Express Mini 52-pin (CEM spec. 2.0) without bottom-side keep-outs"
1426   },
1427   {
1428     0x23,
1429     L"PCI Express Mini 76-pin (CEM spec. 2.0) Corresponds to Display-Mini card"
1430   },
1431   {
1432     0xA0,
1433     L"PC-98/C20 "
1434   },
1435   {
1436     0xA1,
1437     L"PC-98/C24 "
1438   },
1439   {
1440     0xA2,
1441     L"PC-98/E "
1442   },
1443   {
1444     0xA3,
1445     L"PC-98/Local Bus "
1446   },
1447   {
1448     0xA4,
1449     L"PC-98/Card "
1450   },
1451   {
1452     0xA5,
1453     L"PCI Express "
1454   },
1455   {
1456     0xA6,
1457     L"PCI Express X1"
1458   },
1459   {
1460     0xA7,
1461     L"PCI Express X2"
1462   },
1463   {
1464     0xA8,
1465     L"PCI Express X4"
1466   },
1467   {
1468     0xA9,
1469     L"PCI Express X8"
1470   },
1471   {
1472     0xAA,
1473     L"PCI Express X16"
1474   },
1475   {
1476     0xAB,
1477     L"PCI Express Gen 2"
1478   },
1479   {
1480     0xAC,
1481     L"PCI Express Gen 2 X1"
1482   },
1483   {
1484     0xAD,
1485     L"PCI Express Gen 2 X2"
1486   },
1487   {
1488     0xAE,
1489     L"PCI Express Gen 2 X4"
1490   },
1491   {
1492     0xAF,
1493     L"PCI Express Gen 2 X8"
1494   },
1495   {
1496     0xB0,
1497     L"PCI Express Gen 2 X16"
1498   },
1499   {
1500     0xB1,
1501     L"PCI Express Gen 3"
1502   },
1503   {
1504     0xB2,
1505     L"PCI Express Gen 3 X1"
1506   },
1507   {
1508     0xB3,
1509     L"PCI Express Gen 3 X2"
1510   },
1511   {
1512     0xB4,
1513     L"PCI Express Gen 3 X4"
1514   },
1515   {
1516     0xB5,
1517     L"PCI Express Gen 3 X8"
1518   },
1519   {
1520     0xB6,
1521     L"PCI Express Gen 3 X16"
1522   }
1523 };
1524 
1525 TABLE_ITEM  SystemSlotDataBusWidthTable[] = {
1526   {
1527     0x01,
1528     L" Other"
1529   },
1530   {
1531     0x02,
1532     L" Unknown"
1533   },
1534   {
1535     0x03,
1536     L" 8 bit"
1537   },
1538   {
1539     0x04,
1540     L" 16 bit"
1541   },
1542   {
1543     0x05,
1544     L" 32 bit"
1545   },
1546   {
1547     0x06,
1548     L" 64 bit"
1549   },
1550   {
1551     0x07,
1552     L" 128 bit"
1553   },
1554   {
1555     0x08,
1556     L" 1x or x1"
1557   },
1558   {
1559     0x09,
1560     L" 2x or x2"
1561   },
1562   {
1563     0x0A,
1564     L" 4x or x4"
1565   },
1566   {
1567     0x0B,
1568     L" 8x or x8"
1569   },
1570   {
1571     0x0C,
1572     L" 12x or x12"
1573   },
1574   {
1575     0x0D,
1576     L" 16x or x16"
1577   },
1578   {
1579     0x0E,
1580     L" 32x or x32"
1581   }
1582 };
1583 
1584 TABLE_ITEM  SystemSlotCurrentUsageTable[] = {
1585   {
1586     0x01,
1587     L" Other"
1588   },
1589   {
1590     0x02,
1591     L" Unknown"
1592   },
1593   {
1594     0x03,
1595     L" Available"
1596   },
1597   {
1598     0x04,
1599     L" In use"
1600   },
1601   {
1602     0x05,
1603     L" Unavailable"
1604   }
1605 };
1606 
1607 TABLE_ITEM  SystemSlotLengthTable[] = {
1608   {
1609     0x01,
1610     L" Other"
1611   },
1612   {
1613     0x02,
1614     L" Unknown"
1615   },
1616   {
1617     0x03,
1618     L" Short length"
1619   },
1620   {
1621     0x04,
1622     L" Long Length"
1623   },
1624 };
1625 
1626 TABLE_ITEM  SlotCharacteristics1Table[] = {
1627   {
1628     0,
1629     L" Characteristics Unknown"
1630   },
1631   {
1632     1,
1633     L" Provides 5.0 Volts"
1634   },
1635   {
1636     2,
1637     L" Provides 3.3 Volts"
1638   },
1639   {
1640     3,
1641     L" Slot's opening is shared with another slot, e.g. PCI/EISA shared slot."
1642   },
1643 
1644   {
1645     4,
1646     L" PC Card slot supports PC Card-16"
1647   },
1648   {
1649     5,
1650     L" PC Card slot supports CardBus"
1651   },
1652   {
1653     6,
1654     L" PC Card slot supports Zoom Video "
1655   },
1656   {
1657     7,
1658     L" PC Card slot supports Modem Ring Resume "
1659   }
1660 };
1661 
1662 TABLE_ITEM  SlotCharacteristics2Table[] = {
1663   {
1664     0,
1665     L" PCI slot supports Power Management Enable (PME#) signal"
1666   },
1667   {
1668     1,
1669     L" Slot supports hot-plug devices"
1670   },
1671   {
1672     2,
1673     L" PCI slot supports SMBus signal"
1674   },
1675   {
1676     3,
1677     L" PCIe slot supports bifurcation"
1678   }
1679 };
1680 
1681 TABLE_ITEM  OnboardDeviceTypesTable[] = {
1682   {
1683     0x01,
1684     L"  Other"
1685   },
1686   {
1687     0x02,
1688     L"  Unknown"
1689   },
1690   {
1691     0x03,
1692     L"  Video"
1693   },
1694   {
1695     0x04,
1696     L"  SCSI Controller"
1697   },
1698   {
1699     0x05,
1700     L"  Ethernet"
1701   },
1702   {
1703     0x06,
1704     L"  Token Ring"
1705   },
1706   {
1707     0x07,
1708     L"  Sound"
1709   },
1710   {
1711     0x08,
1712     L"  Pata Controller"
1713   },
1714   {
1715     0x09,
1716     L"  Sata Controller"
1717   },
1718   {
1719     0x0A,
1720     L"  Sas Controller"
1721   },
1722 };
1723 
1724 TABLE_ITEM  SELTypesTable[] = {
1725   {
1726     0x00,
1727     L" Reserved."
1728   },
1729   {
1730     0x01,
1731     L" Single-bit ECC memory error"
1732   },
1733   {
1734     0x02,
1735     L" Multi-bit ECC memory error"
1736   },
1737   {
1738     0x03,
1739     L" Parity memory error"
1740   },
1741   {
1742     0x04,
1743     L" Bus time-out"
1744   },
1745   {
1746     0x05,
1747     L" I/O Channel Check"
1748   },
1749   {
1750     0x06,
1751     L" Software NMI"
1752   },
1753   {
1754     0x07,
1755     L" POST Memory Resize"
1756   },
1757   {
1758     0x08,
1759     L" POST Error"
1760   },
1761   {
1762     0x09,
1763     L" PCI Parity Error"
1764   },
1765   {
1766     0x0A,
1767     L" PCI System Error"
1768   },
1769   {
1770     0x0B,
1771     L" CPU Failure"
1772   },
1773   {
1774     0x0C,
1775     L" EISA FailSafe Timer time-out"
1776   },
1777   {
1778     0x0D,
1779     L" Correctable memory log disabled"
1780   },
1781   {
1782     0x0E,
1783     L" Logging disabled for a specific Event Type"
1784   },
1785   {
1786     0x0F,
1787     L" Reserved"
1788   },
1789   {
1790     0x10,
1791     L" System Limit Exceeded"
1792   },
1793   {
1794     0x11,
1795     L" Asynchronous hardware timer expired and issued a system reset"
1796   },
1797   {
1798     0x12,
1799     L" System configuration information"
1800   },
1801   {
1802     0x13,
1803     L" Hard-disk information"
1804   },
1805   {
1806     0x14,
1807     L" System reconfigured"
1808   },
1809   {
1810     0x15,
1811     L" Uncorrectable CPU-complex error"
1812   },
1813   {
1814     0x16,
1815     L" Log Area Reset/Cleared"
1816   },
1817   {
1818     0x17,
1819     L" System boot"
1820   },
1821   {
1822     0x7F18,
1823     L" Unused by SMBIOS specification"
1824   },
1825   {
1826     0xFE80,
1827     L" System and OEM specified"
1828   },
1829   {
1830     0xFF,
1831     L" End-of-log"
1832   },
1833 };
1834 
1835 TABLE_ITEM  SELVarDataFormatTypeTable[] = {
1836   {
1837     0x00,
1838     L" None "
1839   },
1840   {
1841     0x01,
1842     L" Handle "
1843   },
1844   {
1845     0x02,
1846     L" Multiple-Event "
1847   },
1848   {
1849     0x03,
1850     L" Multiple-Event Handle "
1851   },
1852   {
1853     0x04,
1854     L" POST Results Bitmap "
1855   },
1856   //
1857   // Defined below
1858   //
1859   {
1860     0x05,
1861     L" System Management Type"
1862   },
1863   //
1864   // Defined below
1865   //
1866   {
1867     0x06,
1868     L" Multiple-Event System Management Type "
1869   },
1870   {
1871     0x7F07,
1872     L" Unused "
1873   },
1874   {
1875     0xFF80,
1876     L" OEM assigned "
1877   },
1878 };
1879 
1880 TABLE_ITEM  PostResultsBitmapDw1Table[] = {
1881   {
1882     0,
1883     L" Channel 2 Timer error "
1884   },
1885   {
1886     1,
1887     L" Master PIC (8259 #1) error "
1888   },
1889   {
1890     2,
1891     L" Slave PIC (8259 #2) error "
1892   },
1893   {
1894     3,
1895     L" CMOS Battery Failure "
1896   },
1897   {
1898     4,
1899     L" CMOS System Options Not Set "
1900   },
1901   {
1902     5,
1903     L" CMOS Checksum Error "
1904   },
1905   {
1906     6,
1907     L" CMOS Configuration Error "
1908   },
1909   {
1910     7,
1911     L" Mouse and Keyboard Swapped "
1912   },
1913   {
1914     8,
1915     L" Keyboard Locked "
1916   },
1917   {
1918     9,
1919     L" Keyboard Not Functional "
1920   },
1921   {
1922     10,
1923     L" Keyboard Controller Not Functional "
1924   },
1925   {
1926     11,
1927     L" CMOS Memory Size Different "
1928   },
1929   {
1930     12,
1931     L" Memory Decreased in Size "
1932   },
1933   {
1934     13,
1935     L" Cache Memory Error "
1936   },
1937   {
1938     14,
1939     L" Floppy Drive 0 Error "
1940   },
1941   {
1942     15,
1943     L" Floppy Drive 1 Error "
1944   },
1945   {
1946     16,
1947     L" Floppy Controller Failure "
1948   },
1949   {
1950     17,
1951     L" Number of ATA Drives Reduced Error "
1952   },
1953   {
1954     18,
1955     L" CMOS Time Not Set "
1956   },
1957   {
1958     19,
1959     L" DDC Monitor Configuration Change "
1960   },
1961   {
1962     20,
1963     L" Reserved, set to 0 "
1964   },
1965   {
1966     21,
1967     L" Reserved, set to 0 "
1968   },
1969   {
1970     22,
1971     L" Reserved, set to 0 "
1972   },
1973   {
1974     23,
1975     L" Reserved, set to 0 "
1976   },
1977   {
1978     24,
1979     L" Second DWORD has valid data "
1980   },
1981   {
1982     25,
1983     L" Reserved, set to 0 "
1984   },
1985   {
1986     26,
1987     L" Reserved, set to 0 "
1988   },
1989   {
1990     27,
1991     L" Reserved, set to 0 "
1992   },
1993   {
1994     28,
1995     L" Normally 0; available for OEM assignment "
1996   },
1997   {
1998     29,
1999     L" Normally 0; available for OEM assignment "
2000   },
2001   {
2002     30,
2003     L" Normally 0; available for OEM assignment "
2004   },
2005   {
2006     31,
2007     L" Normally 0; available for OEM assignment "
2008   },
2009 };
2010 
2011 TABLE_ITEM  PostResultsBitmapDw2Table[] = {
2012   {
2013     0,
2014     L" Normally 0; available for OEM assignment "
2015   },
2016   {
2017     1,
2018     L" Normally 0; available for OEM assignment "
2019   },
2020   {
2021     2,
2022     L" Normally 0; available for OEM assignment "
2023   },
2024   {
2025     3,
2026     L" Normally 0; available for OEM assignment "
2027   },
2028   {
2029     4,
2030     L" Normally 0; available for OEM assignment "
2031   },
2032   {
2033     5,
2034     L" Normally 0; available for OEM assignment "
2035   },
2036   {
2037     6,
2038     L" Normally 0; available for OEM assignment "
2039   },
2040   {
2041     7,
2042     L" PCI Memory Conflict "
2043   },
2044   {
2045     8,
2046     L" PCI I/O Conflict "
2047   },
2048   {
2049     9,
2050     L" PCI IRQ Conflict "
2051   },
2052   {
2053     10,
2054     L" PNP Memory Conflict "
2055   },
2056   {
2057     11,
2058     L" PNP 32 bit Memory Conflict "
2059   },
2060   {
2061     12,
2062     L" PNP I/O Conflict "
2063   },
2064   {
2065     13,
2066     L" PNP IRQ Conflict "
2067   },
2068   {
2069     14,
2070     L" PNP DMA Conflict "
2071   },
2072   {
2073     15,
2074     L" Bad PNP Serial ID Checksum "
2075   },
2076   {
2077     16,
2078     L" Bad PNP Resource Data Checksum "
2079   },
2080   {
2081     17,
2082     L" Static Resource Conflict "
2083   },
2084   {
2085     18,
2086     L" NVRAM Checksum Error, NVRAM Cleared "
2087   },
2088   {
2089     19,
2090     L" System Board Device Resource Conflict "
2091   },
2092   {
2093     20,
2094     L" Primary Output Device Not Found "
2095   },
2096   {
2097     21,
2098     L" Primary Input Device Not Found "
2099   },
2100   {
2101     22,
2102     L" Primary Boot Device Not Found "
2103   },
2104   {
2105     23,
2106     L" NVRAM Cleared By Jumper "
2107   },
2108   {
2109     24,
2110     L" NVRAM Data Invalid, NVRAM Cleared "
2111   },
2112   {
2113     25,
2114     L" FDC Resource Conflict "
2115   },
2116   {
2117     26,
2118     L" Primary ATA Controller Resource Conflict "
2119   },
2120   {
2121     27,
2122     L" Secondary ATA Controller Resource Conflict "
2123   },
2124   {
2125     28,
2126     L" Parallel Port Resource Conflict "
2127   },
2128   {
2129     29,
2130     L" Serial Port 1 Resource Conflict "
2131   },
2132   {
2133     30,
2134     L" Serial Port 2 Resource Conflict "
2135   },
2136   {
2137     31,
2138     L" Audio Resource Conflict "
2139   },
2140 };
2141 
2142 TABLE_ITEM  SELSysManagementTypesTable[] = {
2143   {
2144     0x01,
2145     L" +2.5V Out of range, #2 "
2146   },
2147   {
2148     0x02,
2149     L" +3.3V Out of range "
2150   },
2151   {
2152     0x03,
2153     L" +5V Out of range "
2154   },
2155   {
2156     0x04,
2157     L" -5V Out of range "
2158   },
2159   {
2160     0x05,
2161     L" +12V Out of range "
2162   },
2163   {
2164     0x06,
2165     L" -12V Out of range "
2166   },
2167   {
2168     0x0F07,
2169     L" Reserved for future out-of-range voltage levels "
2170   },
2171   {
2172     0x10,
2173     L" System board temperature out of range "
2174   },
2175   {
2176     0x11,
2177     L" Processor #1 temperature out of range "
2178   },
2179   {
2180     0x12,
2181     L" Processor #2 temperature out of range "
2182   },
2183   {
2184     0x13,
2185     L" Processor #3 temperature out of range "
2186   },
2187   {
2188     0x14,
2189     L" Processor #4 temperature out of range "
2190   },
2191   {
2192     0x1F15,
2193     L" Reserved for future out-of-range temperatures"
2194   },
2195   {
2196     0x2720,
2197     L" Fan n (n = 0 to 7) Out of range "
2198   },
2199   {
2200     0x2F28,
2201     L" Reserved for future assignment via this specification "
2202   },
2203   {
2204     0x30,
2205     L" Chassis secure switch activated "
2206   },
2207 };
2208 
2209 TABLE_ITEM  PMALocationTable[] = {
2210   {
2211     0x01,
2212     L"  Other"
2213   },
2214   {
2215     0x02,
2216     L"  Unknown"
2217   },
2218   {
2219     0x03,
2220     L"  System board or motherboard"
2221   },
2222   {
2223     0x04,
2224     L"  ISA add-on card"
2225   },
2226   {
2227     0x05,
2228     L"  EISA add-on card"
2229   },
2230   {
2231     0x06,
2232     L"  PCI add-on card"
2233   },
2234   {
2235     0x07,
2236     L"  MCA add-on card"
2237   },
2238   {
2239     0x08,
2240     L"  PCMCIA add-on card"
2241   },
2242   {
2243     0x09,
2244     L"  Proprietary add-on card"
2245   },
2246   {
2247     0x0A,
2248     L"  NuBus"
2249   },
2250   {
2251     0xA0,
2252     L"  PC-98/C20 add-on card"
2253   },
2254   {
2255     0xA1,
2256     L"  PC-98/C24 add-on card"
2257   },
2258   {
2259     0xA2,
2260     L"  PC-98/E add-on card"
2261   },
2262   {
2263     0xA3,
2264     L"  PC-98/Local bus add-on card"
2265   }
2266 };
2267 
2268 TABLE_ITEM  PMAUseTable[] = {
2269   {
2270     0x01,
2271     L" Other"
2272   },
2273   {
2274     0x02,
2275     L" Unknown"
2276   },
2277   {
2278     0x03,
2279     L" System memory"
2280   },
2281   {
2282     0x04,
2283     L" Video memory"
2284   },
2285   {
2286     0x05,
2287     L" Flash memory"
2288   },
2289   {
2290     0x06,
2291     L" Non-volatile RAM"
2292   },
2293   {
2294     0x07,
2295     L" Cache memory"
2296   }
2297 };
2298 
2299 TABLE_ITEM  PMAErrorCorrectionTypesTable[] = {
2300   {
2301     0x01,
2302     L"  Other"
2303   },
2304   {
2305     0x02,
2306     L"  Unknown"
2307   },
2308   {
2309     0x03,
2310     L"  None"
2311   },
2312   {
2313     0x04,
2314     L"  Parity"
2315   },
2316   {
2317     0x05,
2318     L"  Single-bit ECC"
2319   },
2320   {
2321     0x06,
2322     L"  Multi-bit ECC"
2323   },
2324   {
2325     0x07,
2326     L"  CRC"
2327   }
2328 };
2329 
2330 TABLE_ITEM  MemoryDeviceFormFactorTable[] = {
2331   {
2332     0x01,
2333     L"  Other"
2334   },
2335   {
2336     0x02,
2337     L"  Unknown"
2338   },
2339   {
2340     0x03,
2341     L"  SIMM"
2342   },
2343   {
2344     0x04,
2345     L"  SIP"
2346   },
2347   {
2348     0x05,
2349     L"  Chip"
2350   },
2351   {
2352     0x06,
2353     L"  DIP"
2354   },
2355   {
2356     0x07,
2357     L"  ZIP"
2358   },
2359   {
2360     0x08,
2361     L"  Proprietary Card"
2362   },
2363   {
2364     0x09,
2365     L"  DIMM"
2366   },
2367   {
2368     0x0A,
2369     L"  TSOP"
2370   },
2371   {
2372     0x0B,
2373     L"  Row of chips"
2374   },
2375   {
2376     0x0C,
2377     L"  RIMM"
2378   },
2379   {
2380     0x0D,
2381     L"  SODIMM"
2382   },
2383   {
2384     0x0E,
2385     L"  SRIMM"
2386   },
2387   {
2388     0x0F,
2389     L"  FB-DIMM"
2390   }
2391 };
2392 
2393 TABLE_ITEM  MemoryDeviceTypeTable[] = {
2394   {
2395     0x01,
2396     L"  Other"
2397   },
2398   {
2399     0x02,
2400     L"  Unknown"
2401   },
2402   {
2403     0x03,
2404     L"  DRAM"
2405   },
2406   {
2407     0x04,
2408     L"  EDRAM"
2409   },
2410   {
2411     0x05,
2412     L"  VRAM"
2413   },
2414   {
2415     0x06,
2416     L"  SRAM"
2417   },
2418   {
2419     0x07,
2420     L"  RAM"
2421   },
2422   {
2423     0x08,
2424     L"  ROM"
2425   },
2426   {
2427     0x09,
2428     L"  FLASH"
2429   },
2430   {
2431     0x0A,
2432     L"  EEPROM"
2433   },
2434   {
2435     0x0B,
2436     L"  FEPROM"
2437   },
2438   {
2439     0x0C,
2440     L"  EPROM"
2441   },
2442   {
2443     0x0D,
2444     L"  CDRAM"
2445   },
2446   {
2447     0x0E,
2448     L"  3DRAM"
2449   },
2450   {
2451     0x0F,
2452     L"  SDRAM"
2453   },
2454   {
2455     0x10,
2456     L"  SGRAM"
2457   },
2458   {
2459     0x11,
2460     L"  RDRAM"
2461   },
2462   {
2463     0x12,
2464     L"  DDR"
2465   },
2466   {
2467     0x13,
2468     L"  DDR2"
2469   },
2470   {
2471     0x14,
2472     L"  DDR2 FB-DIMM"
2473   },
2474   {
2475     0x18,
2476     L"  DDR3"
2477   },
2478   {
2479     0x19,
2480     L"  FBD2"
2481   },
2482   {
2483     0x1A,
2484     L"  DDR4"
2485   },
2486   {
2487     0x1B,
2488     L"  LPDDR"
2489   },
2490   {
2491     0x1C,
2492     L"  LPDDR2"
2493   },
2494   {
2495     0x1D,
2496     L"  LPDDR3"
2497   },
2498   {
2499     0x1E,
2500     L"  LPDDR4"
2501   },
2502   {
2503     0x1F,
2504     L"  Logical non-volatile device"
2505   }
2506 };
2507 
2508 TABLE_ITEM  MemoryDeviceTypeDetailTable[] = {
2509   {
2510     1,
2511     L" Other"
2512   },
2513   {
2514     2,
2515     L" Unknown"
2516   },
2517   {
2518     3,
2519     L" Fast-paged"
2520   },
2521   {
2522     4,
2523     L" Static column"
2524   },
2525   {
2526     5,
2527     L" Pseudo-STATIC"
2528   },
2529   {
2530     6,
2531     L" RAMBUS "
2532   },
2533   {
2534     7,
2535     L" Synchronous"
2536   },
2537   {
2538     8,
2539     L" CMOS"
2540   },
2541   {
2542     9,
2543     L" EDO"
2544   },
2545   {
2546     10,
2547     L" Window DRAM"
2548   },
2549   {
2550     11,
2551     L" Cache DRAM"
2552   },
2553   {
2554     12,
2555     L" Non-volatile"
2556   },
2557   {
2558     13,
2559     L" Registered(Buffered)"
2560   },
2561   {
2562     14,
2563     L" Unbuffered(Unregistered)"
2564   }
2565 };
2566 
2567 TABLE_ITEM  MemoryDeviceMemoryTechnologyTable[] = {
2568   {
2569     0x01,
2570     L" Other"
2571   },
2572   {
2573     0x02,
2574     L" Unknown"
2575   },
2576   {
2577     0x03,
2578     L" DRAM"
2579   },
2580   {
2581     0x04,
2582     L" NVDIMM-N"
2583   },
2584   {
2585     0x05,
2586     L" NVDIMM-F"
2587   },
2588   {
2589     0x06,
2590     L" NVDIMM-P"
2591   },
2592   {
2593     0x07,
2594     L" Intel persistent memory"
2595   }
2596 };
2597 
2598 TABLE_ITEM  MemoryDeviceMemoryOperatingModeCapabilityTable[] = {
2599   {
2600     1,
2601     L" Other"
2602   },
2603   {
2604     2,
2605     L" Unknown"
2606   },
2607   {
2608     3,
2609     L" Volatile memory"
2610   },
2611   {
2612     4,
2613     L" Byte-accessible persistent memory"
2614   },
2615   {
2616     5,
2617     L" Block-accessible persistent memory"
2618   }
2619 };
2620 
2621 
2622 TABLE_ITEM  MemoryErrorTypeTable[] = {
2623   {
2624     0x01,
2625     L"  Other"
2626   },
2627   {
2628     0x02,
2629     L"  Unknown"
2630   },
2631   {
2632     0x03,
2633     L"  OK"
2634   },
2635   {
2636     0x04,
2637     L"  Bad read"
2638   },
2639   {
2640     0x05,
2641     L"  Parity error"
2642   },
2643   {
2644     0x06,
2645     L"  Single-bit error"
2646   },
2647   {
2648     0x07,
2649     L"  Double-bit error"
2650   },
2651   {
2652     0x08,
2653     L"  Multi-bit error"
2654   },
2655   {
2656     0x09,
2657     L"  Nibble error"
2658   },
2659   {
2660     0x0A,
2661     L"  Checksum error"
2662   },
2663   {
2664     0x0B,
2665     L"  CRC error"
2666   },
2667   {
2668     0x0C,
2669     L"  Corrected single-bit error"
2670   },
2671   {
2672     0x0D,
2673     L"  Corrected error"
2674   },
2675   {
2676     0x0E,
2677     L"  Uncorrectable error"
2678   },
2679 };
2680 
2681 TABLE_ITEM  MemoryErrorGranularityTable[] = {
2682   {
2683     0x01,
2684     L"  Other"
2685   },
2686   {
2687     0x02,
2688     L"  Unknown"
2689   },
2690   {
2691     0x03,
2692     L"  Device level"
2693   },
2694   {
2695     0x04,
2696     L"  Memory partition level"
2697   },
2698 };
2699 
2700 TABLE_ITEM  MemoryErrorOperationTable[] = {
2701   {
2702     0x01,
2703     L"  Other"
2704   },
2705   {
2706     0x02,
2707     L"  Unknown"
2708   },
2709   {
2710     0x03,
2711     L"  Read"
2712   },
2713   {
2714     0x04,
2715     L"  Write"
2716   },
2717   {
2718     0x05,
2719     L"  Partial Write"
2720   },
2721 };
2722 
2723 TABLE_ITEM  PointingDeviceTypeTable[] = {
2724   {
2725     0x01,
2726     L"  Other"
2727   },
2728   {
2729     0x02,
2730     L"  Unknown"
2731   },
2732   {
2733     0x03,
2734     L"  Mouse"
2735   },
2736   {
2737     0x04,
2738     L"  Track Ball"
2739   },
2740   {
2741     0x05,
2742     L"  Track Point"
2743   },
2744   {
2745     0x06,
2746     L"  Glide Point"
2747   },
2748   {
2749     0x07,
2750     L"  Touch Pad"
2751   },
2752 };
2753 
2754 TABLE_ITEM  PointingDeviceInterfaceTable[] = {
2755   {
2756     0x01,
2757     L" Other"
2758   },
2759   {
2760     0x02,
2761     L" Unknown"
2762   },
2763   {
2764     0x03,
2765     L" Serial"
2766   },
2767   {
2768     0x04,
2769     L" PS/2"
2770   },
2771   {
2772     0x05,
2773     L" Infrared"
2774   },
2775   {
2776     0x06,
2777     L" HP-HIL"
2778   },
2779   {
2780     0x07,
2781     L" Bus mouse"
2782   },
2783   {
2784     0x08,
2785     L" ADB(Apple Desktop Bus"
2786   },
2787   {
2788     0xA0,
2789     L" Bus mouse DB-9"
2790   },
2791   {
2792     0xA1,
2793     L" Bus mouse mirco-DIN"
2794   },
2795   {
2796     0xA2,
2797     L" USB"
2798   },
2799 };
2800 
2801 TABLE_ITEM  PBDeviceChemistryTable[] = {
2802   {
2803     0x01,
2804     L" Other "
2805   },
2806   {
2807     0x02,
2808     L" Unknown "
2809   },
2810   {
2811     0x03,
2812     L" Lead Acid "
2813   },
2814   {
2815     0x04,
2816     L" Nickel Cadmium "
2817   },
2818   {
2819     0x05,
2820     L" Nickel metal hydride "
2821   },
2822   {
2823     0x06,
2824     L" Lithium-ion "
2825   },
2826   {
2827     0x07,
2828     L" Zinc air "
2829   },
2830   {
2831     0x08,
2832     L" Lithium Polymer "
2833   },
2834 };
2835 
2836 TABLE_ITEM  VPLocationTable[] = {
2837   {
2838     0x01,
2839     L" Other "
2840   },
2841   {
2842     0x02,
2843     L" Unknown "
2844   },
2845   {
2846     0x03,
2847     L" OK "
2848   },
2849   {
2850     0x04,
2851     L" Non-critical "
2852   },
2853   {
2854     0x05,
2855     L" Critical "
2856   },
2857   {
2858     0x06,
2859     L" Non-recoverable "
2860   },
2861 };
2862 
2863 TABLE_ITEM  VPStatusTable[] = {
2864   {
2865     0x01,
2866     L" Other "
2867   },
2868   {
2869     0x02,
2870     L" Unknown "
2871   },
2872   {
2873     0x03,
2874     L" Processor "
2875   },
2876   {
2877     0x04,
2878     L" Disk "
2879   },
2880   {
2881     0x05,
2882     L" Peripheral Bay "
2883   },
2884   {
2885     0x06,
2886     L" System Management Module "
2887   },
2888   {
2889     0x07,
2890     L" Motherboard "
2891   },
2892   {
2893     0x08,
2894     L" Memory Module "
2895   },
2896   {
2897     0x09,
2898     L" Processor Module "
2899   },
2900   {
2901     0x0A,
2902     L" Power Unit "
2903   },
2904   {
2905     0x0B,
2906     L" Add-in Card "
2907   },
2908 };
2909 
2910 TABLE_ITEM  CoolingDeviceStatusTable[] = {
2911   {
2912     0x01,
2913     L" Other "
2914   },
2915   {
2916     0x02,
2917     L" Unknown "
2918   },
2919   {
2920     0x03,
2921     L" OK "
2922   },
2923   {
2924     0x04,
2925     L" Non-critical "
2926   },
2927   {
2928     0x05,
2929     L" Critical "
2930   },
2931   {
2932     0x06,
2933     L" Non-recoverable "
2934   },
2935 };
2936 
2937 TABLE_ITEM  CoolingDeviceTypeTable[] = {
2938   {
2939     0x01,
2940     L" Other "
2941   },
2942   {
2943     0x02,
2944     L" Unknown "
2945   },
2946   {
2947     0x03,
2948     L" Fan "
2949   },
2950   {
2951     0x04,
2952     L" Centrifugal Blower "
2953   },
2954   {
2955     0x05,
2956     L" Chip Fan "
2957   },
2958   {
2959     0x06,
2960     L" Cabinet Fan "
2961   },
2962   {
2963     0x07,
2964     L" Power Supply Fan "
2965   },
2966   {
2967     0x08,
2968     L" Heat Pipe "
2969   },
2970   {
2971     0x09,
2972     L" Integrated Refrigeration "
2973   },
2974   {
2975     0x10,
2976     L" Active Cooling "
2977   },
2978   {
2979     0x11,
2980     L" Passive Cooling "
2981   },
2982 };
2983 
2984 TABLE_ITEM  TemperatureProbeStatusTable[] = {
2985   {
2986     0x01,
2987     L" Other "
2988   },
2989   {
2990     0x02,
2991     L" Unknown "
2992   },
2993   {
2994     0x03,
2995     L" OK "
2996   },
2997   {
2998     0x04,
2999     L" Non-critical "
3000   },
3001   {
3002     0x05,
3003     L" Critical "
3004   },
3005   {
3006     0x06,
3007     L" Non-recoverable "
3008   },
3009 };
3010 
3011 TABLE_ITEM  TemperatureProbeLocTable[] = {
3012   {
3013     0x01,
3014     L" Other "
3015   },
3016   {
3017     0x02,
3018     L" Unknown "
3019   },
3020   {
3021     0x03,
3022     L" Processor "
3023   },
3024   {
3025     0x04,
3026     L" Disk "
3027   },
3028   {
3029     0x05,
3030     L" Peripheral Bay "
3031   },
3032   {
3033     0x06,
3034     L" System Management Module "
3035   },
3036   {
3037     0x07,
3038     L" Motherboard "
3039   },
3040   {
3041     0x08,
3042     L" Memory Module "
3043   },
3044   {
3045     0x09,
3046     L" Processor Module "
3047   },
3048   {
3049     0x0A,
3050     L" Power Unit "
3051   },
3052   {
3053     0x0B,
3054     L" Add-in Card "
3055   },
3056 };
3057 
3058 TABLE_ITEM  ECPStatusTable[] = {
3059   {
3060     0x01,
3061     L" Other "
3062   },
3063   {
3064     0x02,
3065     L" Unknown "
3066   },
3067   {
3068     0x03,
3069     L" OK "
3070   },
3071   {
3072     0x04,
3073     L" Non-critical "
3074   },
3075   {
3076     0x05,
3077     L" Critical "
3078   },
3079   {
3080     0x06,
3081     L" Non-recoverable "
3082   },
3083 };
3084 
3085 TABLE_ITEM  ECPLocTable[] = {
3086   {
3087     0x01,
3088     L" Other "
3089   },
3090   {
3091     0x02,
3092     L" Unknown "
3093   },
3094   {
3095     0x03,
3096     L" Processor "
3097   },
3098   {
3099     0x04,
3100     L" Disk "
3101   },
3102   {
3103     0x05,
3104     L" Peripheral Bay "
3105   },
3106   {
3107     0x06,
3108     L" System Management Module "
3109   },
3110   {
3111     0x07,
3112     L" Motherboard "
3113   },
3114   {
3115     0x08,
3116     L" Memory Module "
3117   },
3118   {
3119     0x09,
3120     L" Processor Module "
3121   },
3122   {
3123     0x0A,
3124     L" Power Unit "
3125   },
3126   {
3127     0x0B,
3128     L" Add-in Card "
3129   },
3130 };
3131 
3132 TABLE_ITEM  MDTypeTable[] = {
3133   {
3134     0x01,
3135     L" Other "
3136   },
3137   {
3138     0x02,
3139     L" Unknown "
3140   },
3141   {
3142     0x03,
3143     L" National Semiconductor LM75 "
3144   },
3145   {
3146     0x04,
3147     L" National Semiconductor LM78 "
3148   },
3149   {
3150     0x05,
3151     L" National Semiconductor LM79 "
3152   },
3153   {
3154     0x06,
3155     L" National Semiconductor LM80 "
3156   },
3157   {
3158     0x07,
3159     L" National Semiconductor LM81 "
3160   },
3161   {
3162     0x08,
3163     L" Analog Devices ADM9240 "
3164   },
3165   {
3166     0x09,
3167     L" Dallas Semiconductor DS1780 "
3168   },
3169   {
3170     0x0A,
3171     L" Maxim 1617 "
3172   },
3173   {
3174     0x0B,
3175     L" Genesys GL518SM "
3176   },
3177   {
3178     0x0C,
3179     L" Winbond W83781D "
3180   },
3181   {
3182     0x0D,
3183     L" Holtek HT82H791 "
3184   },
3185 };
3186 
3187 TABLE_ITEM  MDAddressTypeTable[] = {
3188   {
3189     0x01,
3190     L" Other "
3191   },
3192   {
3193     0x02,
3194     L" Unknown "
3195   },
3196   {
3197     0x03,
3198     L" I/O Port "
3199   },
3200   {
3201     0x04,
3202     L" Memory "
3203   },
3204   {
3205     0x05,
3206     L" SM Bus "
3207   },
3208 };
3209 
3210 TABLE_ITEM  MemoryChannelTypeTable[] = {
3211   {
3212     0x01,
3213     L" Other "
3214   },
3215   {
3216     0x02,
3217     L" Unknown "
3218   },
3219   {
3220     0x03,
3221     L" RamBus "
3222   },
3223   {
3224     0x04,
3225     L" SyncLink "
3226   },
3227 };
3228 
3229 TABLE_ITEM  IPMIDIBMCInterfaceTypeTable[] = {
3230   {
3231     0x00,
3232     L" Unknown "
3233   },
3234   {
3235     0x01,
3236     L" KCS: Keyboard Controller Style "
3237   },
3238   {
3239     0x02,
3240     L" SMIC: Server Management Interface Chip "
3241   },
3242   {
3243     0x03,
3244     L" BT: Block Transfer "
3245   },
3246   {
3247     0x04,
3248     L" SSIF: SMBus System Interface "
3249   },
3250   {
3251     0xFF05,
3252     L" Reserved for future assignment by this specification "
3253   },
3254 };
3255 
3256 TABLE_ITEM  MCHostInterfaceTypeTable[] = {
3257   {
3258     0x3F00,
3259     L" MCTP Host Interface "
3260   },
3261   {
3262     0x40,
3263     L" Network Host Interface "
3264   },
3265   {
3266     0xF0,
3267     L" OEM defined "
3268   },
3269 };
3270 
3271 
3272 TABLE_ITEM  StructureTypeInfoTable[] = {
3273   {
3274     0,
3275     L" BIOS Information"
3276   },
3277   {
3278     1,
3279     L" System Information"
3280   },
3281   {
3282     2,
3283     L" Base Board Information"
3284   },
3285   {
3286     3,
3287     L" System Enclosure"
3288   },
3289   {
3290     4,
3291     L" Processor Information"
3292   },
3293   {
3294     5,
3295     L" Memory Controller Information "
3296   },
3297   {
3298     6,
3299     L" Memory Module Information "
3300   },
3301   {
3302     7,
3303     L" Cache Information "
3304   },
3305   {
3306     8,
3307     L" Port Connector Information "
3308   },
3309   {
3310     9,
3311     L" System Slots "
3312   },
3313   {
3314     10,
3315     L" On Board Devices Information  "
3316   },
3317   {
3318     11,
3319     L" OEM Strings"
3320   },
3321   {
3322     12,
3323     L" System Configuration Options "
3324   },
3325   {
3326     13,
3327     L" BIOS Language Information  "
3328   },
3329   {
3330     14,
3331     L" Group Associations "
3332   },
3333   {
3334     15,
3335     L" System Event Log "
3336   },
3337   {
3338     16,
3339     L" Physical Memory Array "
3340   },
3341   {
3342     17,
3343     L" Memory Device "
3344   },
3345   {
3346     18,
3347     L" 32-bit Memory Error Information "
3348   },
3349   {
3350     19,
3351     L" Memory Array Mapped Address "
3352   },
3353   {
3354     20,
3355     L" Memory Device Mapped Address  "
3356   },
3357   {
3358     21,
3359     L" Built-in Pointing Device "
3360   },
3361   {
3362     22,
3363     L" Portable Battery "
3364   },
3365   {
3366     23,
3367     L" System Reset "
3368   },
3369   {
3370     24,
3371     L" Hardware Security "
3372   },
3373   {
3374     25,
3375     L" System Power Controls "
3376   },
3377   {
3378     26,
3379     L" Voltage Probe "
3380   },
3381   {
3382     27,
3383     L" Cooling Device "
3384   },
3385   {
3386     28,
3387     L" Temperature Probe "
3388   },
3389   {
3390     29,
3391     L" Electrical Current Probe "
3392   },
3393   {
3394     30,
3395     L" Out-of-Band Remote Access  "
3396   },
3397   {
3398     31,
3399     L" Boot Integrity Services (BIS) Entry Point"
3400   },
3401   {
3402     32,
3403     L" System Boot Information "
3404   },
3405   {
3406     33,
3407     L" 64-bit Memory Error Information "
3408   },
3409   {
3410     34,
3411     L" Management Device "
3412   },
3413   {
3414     35,
3415     L" Management Device Component "
3416   },
3417   {
3418     36,
3419     L" Management Device Threshold Data "
3420   },
3421   {
3422     37,
3423     L" Memory Channel "
3424   },
3425   {
3426     38,
3427     L" IPMI Device Information "
3428   },
3429   {
3430     39,
3431     L" System Power Supply"
3432   },
3433   {
3434     40,
3435     L" Additional Information"
3436   },
3437   {
3438     41,
3439     L" Onboard Devices Extended Information"
3440   },
3441   {
3442     42,
3443     L" Management Controller Host Interface"
3444   },
3445   {
3446     43,
3447     L" TPM Device"
3448   },
3449   {
3450     0x7E,
3451     L" Inactive"
3452   },
3453   {
3454     0x7F,
3455     L" End-of-Table "
3456   },
3457 };
3458 
3459 
3460 /**
3461   Given a table and a Key, return the responding info.
3462 
3463   Notes:
3464     Table[Index].Key is change from UINT8 to UINT16,
3465     in order to deal with "0xaa - 0xbb".
3466 
3467     For example:
3468       DisplaySELVariableDataFormatTypes(UINT8 Type, UINT8 Option)
3469     has a item:
3470       "0x07-0x7F,   Unused"
3471     Now define Key = 0x7F07, that is to say: High = 0x7F, Low = 0x07.
3472     Then all the Key Value between Low and High gets the same string
3473     L"Unused".
3474 
3475   @param[in] Table     The begin address of table.
3476   @param[in] Number    The number of table items.
3477   @param[in] Key       The query Key.
3478   @param[in, out] Info Input as empty buffer; output as data buffer.
3479   @param[in] InfoLen   The max number of characters for Info.
3480 
3481   @return the found Key and Info is valid.
3482   @retval QUERY_TABLE_UNFOUND and Info should be NULL.
3483 **/
3484 UINT8
QueryTable(IN TABLE_ITEM * Table,IN UINTN Number,IN UINT8 Key,IN OUT CHAR16 * Info,IN UINTN InfoLen)3485 QueryTable (
3486   IN  TABLE_ITEM    *Table,
3487   IN  UINTN         Number,
3488   IN  UINT8         Key,
3489   IN  OUT CHAR16    *Info,
3490   IN  UINTN         InfoLen
3491   )
3492 {
3493   UINTN Index;
3494   //
3495   // High byte and Low byte of word
3496   //
3497   UINT8 High;
3498   UINT8 Low;
3499 
3500   for (Index = 0; Index < Number; Index++) {
3501     High  = (UINT8) (Table[Index].Key >> 8);
3502     Low   = (UINT8) (Table[Index].Key & 0x00FF);
3503 
3504     //
3505     // Check if Key is in the range
3506     // or if Key == Value in the table
3507     //
3508     if ((High > Low && Key >= Low && Key <= High)
3509       || (Table[Index].Key == Key)) {
3510       StrnCpyS (Info, InfoLen, Table[Index].Info, InfoLen - 1);
3511       StrnCatS (Info, InfoLen, L"\n", InfoLen - 1 - StrLen(Info));
3512       return Key;
3513     }
3514   }
3515 
3516   StrCpyS (Info, InfoLen, L"Undefined Value\n");
3517   return QUERY_TABLE_UNFOUND;
3518 }
3519 
3520 /**
3521   Given a table of bit info and a Key, return the responding info to the Key.
3522 
3523   @param[in] Table     Point to a table which maintains a map of 'bit' to 'message'.
3524   @param[in] Number    Number of table items.
3525   @param[in] Bits      The Key of query the bit map information.
3526 **/
3527 VOID
PrintBitsInfo(IN TABLE_ITEM * Table,IN UINTN Number,IN UINT32 Bits)3528 PrintBitsInfo (
3529   IN  TABLE_ITEM    *Table,
3530   IN  UINTN         Number,
3531   IN  UINT32        Bits
3532   )
3533 {
3534   //
3535   // Get certain bit of 'Value':
3536   //
3537 #define BIT(Value, bit) ((Value) & ((UINT32) 1) << (bit))
3538   //
3539   // Clear certain bit of 'Value':
3540   //
3541 #define CLR_BIT(Value, bit) ((Value) -= (BIT (Value, bit)))
3542 
3543   UINTN   Index;
3544   UINT32  Value;
3545   BOOLEAN FirstInfo;
3546 
3547   FirstInfo = TRUE;
3548   Value   = Bits;
3549   //
3550   // query the table and print information
3551   //
3552   for (Index = 0; Index < Number; Index++) {
3553     if (BIT (Value, Table[Index].Key) != 0) {
3554       if (!FirstInfo) {
3555         //
3556         // If it is not first info, print the separator first.
3557         //
3558         Print (L" | ");
3559       }
3560       Print (Table[Index].Info);
3561 
3562       FirstInfo = FALSE;
3563       //
3564       // clear the bit, for reserved bits test
3565       //
3566       CLR_BIT (Value, Table[Index].Key);
3567     }
3568   }
3569 
3570   //
3571   // There is no any info if FirstInfo is still TRUE.
3572   //
3573   if (FirstInfo) {
3574     ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_NO_INFO), gShellDebug1HiiHandle);
3575   }
3576 
3577   if (Value != 0) {
3578     ShellPrintHiiEx(-1,-1,NULL,
3579       STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_BITS_SET),
3580       gShellDebug1HiiHandle,
3581       Value
3582      );
3583   }
3584 
3585   Print (L"\n");
3586 }
3587 //
3588 // //////////////////////////////////////////////////////////////////
3589 //
3590 // Following uses QueryTable functions to simplify the coding.
3591 // QueryTable(), PrintBitsInfo()
3592 //
3593 //
3594 #define PRINT_TABLE_ITEM(Table, Key) \
3595   do { \
3596     UINTN   Num; \
3597     CHAR16  Info[66]; \
3598     Num = sizeof (Table) / sizeof (TABLE_ITEM); \
3599     ZeroMem (Info, sizeof (Info)); \
3600     QueryTable (Table, Num, Key, Info, sizeof(Info)/sizeof(Info[0])); \
3601     Print (Info); \
3602   } while (0);
3603 
3604 #define PRINT_BITS_INFO(Table, bits) \
3605   do { \
3606     UINTN Num; \
3607     Num = sizeof (Table) / sizeof (TABLE_ITEM); \
3608     PrintBitsInfo (Table, Num, (UINT32) bits); \
3609   } while (0);
3610 
3611 /**
3612   Display System Information (Type 1) Type.
3613 
3614   @param[in] Type           The key of the structure.
3615   @param[in] Option         The optional information.
3616 **/
3617 VOID
DisplaySystemWakeupType(IN UINT8 Type,IN UINT8 Option)3618 DisplaySystemWakeupType (
3619   IN UINT8 Type,
3620   IN UINT8 Option
3621   )
3622 {
3623   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_WAKEUP_TYPE), gShellDebug1HiiHandle);
3624   PRINT_INFO_OPTION (Type, Option);
3625   PRINT_TABLE_ITEM (SystemWakeupTypeTable, Type);
3626 }
3627 
3628 /**
3629   Display Base Board (Type 2) Feature Flags.
3630 
3631   @param[in] FeatureFlags   The key of the structure.
3632   @param[in] Option         The optional information.
3633 **/
3634 VOID
DisplayBaseBoardFeatureFlags(IN UINT8 FeatureFlags,IN UINT8 Option)3635 DisplayBaseBoardFeatureFlags (
3636   IN UINT8 FeatureFlags,
3637   IN UINT8 Option
3638   )
3639 {
3640   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BASE_BOARD_FEATURE_FLAGS), gShellDebug1HiiHandle);
3641   PRINT_INFO_OPTION (FeatureFlags, Option);
3642   PRINT_BITS_INFO (BaseBoardFeatureFlagsTable, FeatureFlags);
3643 }
3644 
3645 /**
3646   Display Base Board (Type 2) Board Type.
3647 
3648   @param[in] Type           The key of the structure.
3649   @param[in] Option         The optional information.
3650 **/
3651 VOID
DisplayBaseBoardBoardType(IN UINT8 Type,IN UINT8 Option)3652 DisplayBaseBoardBoardType(
3653   IN UINT8 Type,
3654   IN UINT8 Option
3655   )
3656 {
3657   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BASE_BOARD_BOARD_TYPE), gShellDebug1HiiHandle);
3658   PRINT_INFO_OPTION (Type, Option);
3659   PRINT_TABLE_ITEM (BaseBoardBoardTypeTable, Type);
3660 }
3661 
3662 /**
3663   Display System Enclosure (Type 3) Enclosure Type.
3664 
3665   @param[in] Type           The key of the structure.
3666   @param[in] Option         The optional information.
3667 **/
3668 VOID
DisplaySystemEnclosureType(IN UINT8 Type,IN UINT8 Option)3669 DisplaySystemEnclosureType (
3670   IN UINT8 Type,
3671   IN UINT8 Option
3672   )
3673 {
3674   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_TYPE), gShellDebug1HiiHandle);
3675   PRINT_INFO_OPTION (Type, Option);
3676   //
3677   // query table and print info
3678   //
3679   PRINT_TABLE_ITEM (SystemEnclosureTypeTable, Type);
3680 
3681   if (BIT (Type, 7) != 0) {
3682     ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CHASSIS_LOCK_PRESENT), gShellDebug1HiiHandle);
3683   }
3684 }
3685 
3686 /**
3687   Display System Enclosure (Type 3) Enclosure Status.
3688 
3689   @param[in] Status         The key of the structure.
3690   @param[in] Option         The optional information.
3691 **/
3692 VOID
DisplaySystemEnclosureStatus(IN UINT8 Status,IN UINT8 Option)3693 DisplaySystemEnclosureStatus (
3694   IN UINT8 Status,
3695   IN UINT8 Option
3696   )
3697 {
3698   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_STATUS), gShellDebug1HiiHandle);
3699   PRINT_INFO_OPTION (Status, Option);
3700   PRINT_TABLE_ITEM (SystemEnclosureStatusTable, Status);
3701 }
3702 
3703 /**
3704   Display System Enclosure (Type 3) Security Status.
3705 
3706   @param[in] Status         The key of the structure.
3707   @param[in] Option         The optional information.
3708 **/
3709 VOID
DisplaySESecurityStatus(IN UINT8 Status,IN UINT8 Option)3710 DisplaySESecurityStatus (
3711   IN UINT8 Status,
3712   IN UINT8 Option
3713   )
3714 {
3715   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_CHASSIS_SECURITY), gShellDebug1HiiHandle);
3716   PRINT_INFO_OPTION (Status, Option);
3717   PRINT_TABLE_ITEM (SESecurityStatusTable, Status);
3718 }
3719 
3720 /**
3721   Display Processor Information (Type 4) Type.
3722 
3723   @param[in] Type           The key of the structure.
3724   @param[in] Option         The optional information.
3725 **/
3726 VOID
DisplayProcessorType(IN UINT8 Type,IN UINT8 Option)3727 DisplayProcessorType (
3728   IN UINT8 Type,
3729   IN UINT8 Option
3730   )
3731 {
3732   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_TYPE), gShellDebug1HiiHandle);
3733   PRINT_INFO_OPTION (Type, Option);
3734   PRINT_TABLE_ITEM (ProcessorTypeTable, Type);
3735 }
3736 
3737 /**
3738   Display Processor Information (Type 4) Upgrade.
3739 
3740   @param[in] Upgrade        The key of the structure.
3741   @param[in] Option         The optional information.
3742 **/
3743 VOID
DisplayProcessorUpgrade(IN UINT8 Upgrade,IN UINT8 Option)3744 DisplayProcessorUpgrade (
3745   IN UINT8 Upgrade,
3746   IN UINT8 Option
3747   )
3748 {
3749   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_UPDATE), gShellDebug1HiiHandle);
3750   PRINT_INFO_OPTION (Upgrade, Option);
3751   PRINT_TABLE_ITEM (ProcessorUpgradeTable, Upgrade);
3752 }
3753 
3754 /**
3755   Display Processor Information (Type 4) Characteristics.
3756 
3757   @param[in] Type           The key of the structure.
3758   @param[in] Option         The optional information.
3759 **/
3760 VOID
DisplayProcessorCharacteristics(IN UINT16 Type,IN UINT8 Option)3761 DisplayProcessorCharacteristics (
3762   IN UINT16 Type,
3763   IN UINT8 Option
3764   )
3765 {
3766   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PROC_CHARACTERISTICS), gShellDebug1HiiHandle);
3767   PRINT_INFO_OPTION (Type, Option);
3768   PRINT_BITS_INFO (ProcessorCharacteristicsTable, Type);
3769 }
3770 
3771 /**
3772   Display Memory Controller Information (Type 5) method.
3773 
3774   @param[in] Method         The key of the structure.
3775   @param[in] Option         The optional information.
3776 **/
3777 VOID
DisplayMcErrorDetectMethod(IN UINT8 Method,IN UINT8 Option)3778 DisplayMcErrorDetectMethod (
3779   IN UINT8 Method,
3780   IN UINT8 Option
3781   )
3782 {
3783   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DETECTMETHOD), gShellDebug1HiiHandle);
3784   PRINT_INFO_OPTION (Method, Option);
3785   PRINT_TABLE_ITEM (McErrorDetectMethodTable, Method);
3786 }
3787 
3788 /**
3789   Display Memory Controller Information (Type 5) Capability.
3790 
3791   @param[in] Capability     The key of the structure.
3792   @param[in] Option         The optional information.
3793 **/
3794 VOID
DisplayMcErrorCorrectCapability(IN UINT8 Capability,IN UINT8 Option)3795 DisplayMcErrorCorrectCapability (
3796   IN UINT8 Capability,
3797   IN UINT8 Option
3798   )
3799 {
3800   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CORRECT_CAPABILITY), gShellDebug1HiiHandle);
3801   PRINT_INFO_OPTION (Capability, Option);
3802   PRINT_BITS_INFO (McErrorCorrectCapabilityTable, Capability);
3803 }
3804 
3805 /**
3806   Display Memory Controller Information (Type 5) Support.
3807 
3808   @param[in] Support        The key of the structure.
3809   @param[in] Option         The optional information.
3810 **/
3811 VOID
DisplayMcInterleaveSupport(IN UINT8 Support,IN UINT8 Option)3812 DisplayMcInterleaveSupport (
3813   IN UINT8 Support,
3814   IN UINT8 Option
3815   )
3816 {
3817   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_INTERLEAVE_SUPPORT), gShellDebug1HiiHandle);
3818   PRINT_INFO_OPTION (Support, Option);
3819   PRINT_TABLE_ITEM (McInterleaveSupportTable, Support);
3820 }
3821 
3822 /**
3823   Display Memory Controller Information (Type 5) speeds.
3824 
3825   @param[in] Speed          The key of the structure.
3826   @param[in] Option         The optional information.
3827 **/
3828 VOID
DisplayMcMemorySpeeds(IN UINT16 Speed,IN UINT8 Option)3829 DisplayMcMemorySpeeds (
3830   IN UINT16  Speed,
3831   IN UINT8   Option
3832   )
3833 {
3834   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MEMORY_SPEED), gShellDebug1HiiHandle);
3835   PRINT_INFO_OPTION (Speed, Option);
3836   PRINT_BITS_INFO (McMemorySpeedsTable, Speed);
3837 }
3838 
3839 /**
3840   Display Memory Controller Information (Type 5) voltage.
3841 
3842   @param[in] Voltage        The key of the structure.
3843   @param[in] Option         The optional information.
3844 **/
3845 VOID
DisplayMemoryModuleVoltage(IN UINT8 Voltage,IN UINT8 Option)3846 DisplayMemoryModuleVoltage (
3847   IN UINT8 Voltage,
3848   IN UINT8 Option
3849   )
3850 {
3851   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_REQUIRED_VOLTAGES), gShellDebug1HiiHandle);
3852   PRINT_INFO_OPTION (Voltage, Option);
3853   PRINT_BITS_INFO (MemoryModuleVoltageTable, Voltage);
3854 }
3855 
3856 /**
3857   Display Memory Module Information (Type 6) type.
3858 
3859   @param[in] Type           The key of the structure.
3860   @param[in] Option         The optional information.
3861 **/
3862 VOID
DisplayMmMemoryType(IN UINT16 Type,IN UINT8 Option)3863 DisplayMmMemoryType (
3864   IN UINT16  Type,
3865   IN UINT8   Option
3866   )
3867 {
3868   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_TYPE), gShellDebug1HiiHandle);
3869   PRINT_INFO_OPTION (Type, Option);
3870   PRINT_BITS_INFO (MmMemoryTypeTable, Type);
3871 }
3872 
3873 /**
3874   Display Memory Module Information (Type 6) status.
3875 
3876   @param[in] Status         The key of the structure.
3877   @param[in] Option         The optional information.
3878 **/
3879 VOID
DisplayMmErrorStatus(IN UINT8 Status,IN UINT8 Option)3880 DisplayMmErrorStatus (
3881   IN UINT8 Status,
3882   IN UINT8 Option
3883   )
3884 {
3885   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_MODULE_ERROR_STATUS), gShellDebug1HiiHandle);
3886   PRINT_INFO_OPTION (Status, Option);
3887   PRINT_BITS_INFO (MmErrorStatusTable, Status);
3888 }
3889 
3890 /**
3891   Display Cache Information (Type 7) SRAM Type.
3892 
3893   @param[in] Type           The key of the structure.
3894   @param[in] Option         The optional information.
3895 **/
3896 VOID
DisplayCacheSRAMType(IN UINT16 Type,IN UINT8 Option)3897 DisplayCacheSRAMType (
3898   IN UINT16  Type,
3899   IN UINT8   Option
3900   )
3901 {
3902   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SRAM_TYPE), gShellDebug1HiiHandle);
3903   PRINT_INFO_OPTION ((UINT8) Type, Option);
3904   PRINT_BITS_INFO (CacheSRAMTypeTable, (UINT8) Type);
3905 }
3906 
3907 /**
3908   Display Cache Information (Type 7) correcting Type.
3909 
3910   @param[in] Type           The key of the structure.
3911   @param[in] Option         The optional information.
3912 **/
3913 VOID
DisplayCacheErrCorrectingType(IN UINT8 Type,IN UINT8 Option)3914 DisplayCacheErrCorrectingType (
3915   IN UINT8 Type,
3916   IN UINT8 Option
3917   )
3918 {
3919   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ERROR_CORRECTING), gShellDebug1HiiHandle);
3920   PRINT_INFO_OPTION (Type, Option);
3921   PRINT_TABLE_ITEM (CacheErrCorrectingTypeTable, Type);
3922 }
3923 
3924 /**
3925   Display Cache Information (Type 7) Type.
3926 
3927   @param[in] Type           The key of the structure.
3928   @param[in] Option         The optional information.
3929 **/
3930 VOID
DisplayCacheSystemCacheType(IN UINT8 Type,IN UINT8 Option)3931 DisplayCacheSystemCacheType (
3932   IN UINT8 Type,
3933   IN UINT8 Option
3934   )
3935 {
3936   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_SYSTEM_TYPE), gShellDebug1HiiHandle);
3937   PRINT_INFO_OPTION (Type, Option);
3938   PRINT_TABLE_ITEM (CacheSystemCacheTypeTable, Type);
3939 }
3940 
3941 /**
3942   Display Cache Information (Type 7) Associativity.
3943 
3944   @param[in] Associativity  The key of the structure.
3945   @param[in] Option         The optional information.
3946 **/
3947 VOID
DisplayCacheAssociativity(IN UINT8 Associativity,IN UINT8 Option)3948 DisplayCacheAssociativity (
3949   IN UINT8 Associativity,
3950   IN UINT8 Option
3951   )
3952 {
3953   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_CACHE_ASSOCIATIVITY), gShellDebug1HiiHandle);
3954   PRINT_INFO_OPTION (Associativity, Option);
3955   PRINT_TABLE_ITEM (CacheAssociativityTable, Associativity);
3956 }
3957 
3958 /**
3959   Display Port Connector Information  (Type 8) type.
3960 
3961   @param[in] Type       The key of the structure.
3962   @param[in] Option     The optional information.
3963 **/
3964 VOID
DisplayPortConnectorType(IN UINT8 Type,IN UINT8 Option)3965 DisplayPortConnectorType (
3966   IN UINT8 Type,
3967   IN UINT8 Option
3968   )
3969 {
3970   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_CONNECTOR_TYPE), gShellDebug1HiiHandle);
3971   PRINT_INFO_OPTION (Type, Option);
3972   PRINT_TABLE_ITEM (PortConnectorTypeTable, Type);
3973 }
3974 
3975 /**
3976   Display Port Connector Information  (Type 8) port type.
3977 
3978   @param[in] Type       The key of the structure.
3979   @param[in] Option     The optional information.
3980 **/
3981 VOID
DisplayPortType(IN UINT8 Type,IN UINT8 Option)3982 DisplayPortType (
3983   IN UINT8 Type,
3984   IN UINT8 Option
3985   )
3986 {
3987   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORT_TYPE), gShellDebug1HiiHandle);
3988   PRINT_INFO_OPTION (Type, Option);
3989   PRINT_TABLE_ITEM (PortTypeTable, Type);
3990 }
3991 
3992 /**
3993   Display System Slots (Type 9) slot type.
3994 
3995   @param[in] Type       The key of the structure.
3996   @param[in] Option     The optional information.
3997 **/
3998 VOID
DisplaySystemSlotType(IN UINT8 Type,IN UINT8 Option)3999 DisplaySystemSlotType (
4000   IN UINT8 Type,
4001   IN UINT8 Option
4002   )
4003 {
4004   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_TYPE), gShellDebug1HiiHandle);
4005   PRINT_INFO_OPTION (Type, Option);
4006   PRINT_TABLE_ITEM (SystemSlotTypeTable, Type);
4007 }
4008 
4009 /**
4010   Display System Slots (Type 9) data bus width.
4011 
4012   @param[in] Width      The key of the structure.
4013   @param[in] Option     The optional information.
4014 **/
4015 VOID
DisplaySystemSlotDataBusWidth(IN UINT8 Width,IN UINT8 Option)4016 DisplaySystemSlotDataBusWidth (
4017   IN UINT8 Width,
4018   IN UINT8 Option
4019   )
4020 {
4021   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_DATA), gShellDebug1HiiHandle);
4022   PRINT_INFO_OPTION (Width, Option);
4023   PRINT_TABLE_ITEM (SystemSlotDataBusWidthTable, Width);
4024 }
4025 
4026 /**
4027   Display System Slots (Type 9) usage information.
4028 
4029   @param[in] Usage      The key of the structure.
4030   @param[in] Option     The optional information.
4031 **/
4032 VOID
DisplaySystemSlotCurrentUsage(IN UINT8 Usage,IN UINT8 Option)4033 DisplaySystemSlotCurrentUsage (
4034   IN UINT8 Usage,
4035   IN UINT8 Option
4036   )
4037 {
4038   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_CURRENT_USAGE), gShellDebug1HiiHandle);
4039   PRINT_INFO_OPTION (Usage, Option);
4040   PRINT_TABLE_ITEM (SystemSlotCurrentUsageTable, Usage);
4041 }
4042 
4043 /**
4044   Display System Slots (Type 9) slot length.
4045 
4046   @param[in] Length     The key of the structure.
4047   @param[in] Option     The optional information.
4048 **/
4049 VOID
DisplaySystemSlotLength(IN UINT8 Length,IN UINT8 Option)4050 DisplaySystemSlotLength (
4051   IN UINT8 Length,
4052   IN UINT8 Option
4053   )
4054 {
4055   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_LENGTH), gShellDebug1HiiHandle);
4056   PRINT_INFO_OPTION (Length, Option);
4057   PRINT_TABLE_ITEM (SystemSlotLengthTable, Length);
4058 }
4059 
4060 /**
4061   Display System Slots (Type 9) characteristics.
4062 
4063   @param[in] Chara1     The key of the structure.
4064   @param[in] Option     The optional information.
4065 **/
4066 VOID
DisplaySlotCharacteristics1(IN UINT8 Chara1,IN UINT8 Option)4067 DisplaySlotCharacteristics1 (
4068   IN UINT8 Chara1,
4069   IN UINT8 Option
4070   )
4071 {
4072   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS), gShellDebug1HiiHandle);
4073   PRINT_INFO_OPTION (Chara1, Option);
4074   PRINT_BITS_INFO (SlotCharacteristics1Table, Chara1);
4075 }
4076 
4077 /**
4078   Display System Slots (Type 9) characteristics.
4079 
4080   @param[in] Chara2     The key of the structure.
4081   @param[in] Option     The optional information.
4082 **/
4083 VOID
DisplaySlotCharacteristics2(IN UINT8 Chara2,IN UINT8 Option)4084 DisplaySlotCharacteristics2 (
4085   IN UINT8 Chara2,
4086   IN UINT8 Option
4087   )
4088 {
4089   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS_2), gShellDebug1HiiHandle);
4090   PRINT_INFO_OPTION (Chara2, Option);
4091   PRINT_BITS_INFO (SlotCharacteristics2Table, Chara2);
4092 }
4093 
4094 /**
4095   Display On Board Devices Information (Type 10) types.
4096 
4097   @param[in] Type       The key of the structure.
4098   @param[in] Option     The optional information.
4099 **/
4100 VOID
DisplayOnboardDeviceTypes(IN UINT8 Type,IN UINT8 Option)4101 DisplayOnboardDeviceTypes (
4102   IN UINT8 Type,
4103   IN UINT8 Option
4104   )
4105 {
4106   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ONBOARD_DEVICE_TYPE), gShellDebug1HiiHandle);
4107   PRINT_INFO_OPTION (Type, Option);
4108   PRINT_TABLE_ITEM (OnboardDeviceTypesTable, Type);
4109 }
4110 
4111 /**
4112   Display System Event Log (Type 15) types.
4113 
4114   @param[in] Type       The key of the structure.
4115   @param[in] Option     The optional information.
4116 **/
4117 VOID
DisplaySELTypes(IN UINT8 Type,IN UINT8 Option)4118 DisplaySELTypes (
4119   IN UINT8 Type,
4120   IN UINT8 Option
4121   )
4122 {
4123   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_EVENT_LOG_TYPE), gShellDebug1HiiHandle);
4124   PRINT_INFO_OPTION (Type, Option);
4125   PRINT_TABLE_ITEM (SELTypesTable, Type);
4126 }
4127 
4128 /**
4129   Display System Event Log (Type 15) format type.
4130 
4131   @param[in] Type       The key of the structure.
4132   @param[in] Option     The optional information.
4133 **/
4134 VOID
DisplaySELVarDataFormatType(IN UINT8 Type,IN UINT8 Option)4135 DisplaySELVarDataFormatType (
4136   IN UINT8 Type,
4137   IN UINT8 Option
4138   )
4139 {
4140   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_EVENT_LOG_VAR_DATA_FORMAT), gShellDebug1HiiHandle);
4141   PRINT_INFO_OPTION (Type, Option);
4142   PRINT_TABLE_ITEM (SELVarDataFormatTypeTable, Type);
4143 }
4144 
4145 /**
4146   Display System Event Log (Type 15) dw1.
4147 
4148   @param[in] Key        The key of the structure.
4149   @param[in] Option     The optional information.
4150 **/
4151 VOID
DisplayPostResultsBitmapDw1(IN UINT32 Key,IN UINT8 Option)4152 DisplayPostResultsBitmapDw1 (
4153   IN UINT32  Key,
4154   IN UINT8   Option
4155   )
4156 {
4157   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_BITMAP), gShellDebug1HiiHandle);
4158   PRINT_INFO_OPTION (Key, Option);
4159   PRINT_BITS_INFO (PostResultsBitmapDw1Table, Key);
4160 }
4161 
4162 /**
4163   Display System Event Log (Type 15) dw2.
4164 
4165   @param[in] Key        The key of the structure.
4166   @param[in] Option     The optional information.
4167 **/
4168 VOID
DisplayPostResultsBitmapDw2(IN UINT32 Key,IN UINT8 Option)4169 DisplayPostResultsBitmapDw2 (
4170   IN UINT32  Key,
4171   IN UINT8   Option
4172   )
4173 {
4174   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POST_RESULTS_SECOND_DWORD), gShellDebug1HiiHandle);
4175   PRINT_INFO_OPTION (Key, Option);
4176   PRINT_BITS_INFO (PostResultsBitmapDw2Table, Key);
4177 }
4178 
4179 /**
4180   Display System Event Log (Type 15) type.
4181 
4182   @param[in] SMType     The key of the structure.
4183   @param[in] Option     The optional information.
4184 **/
4185 VOID
DisplaySELSysManagementTypes(IN UINT32 SMType,IN UINT8 Option)4186 DisplaySELSysManagementTypes (
4187   IN UINT32  SMType,
4188   IN UINT8   Option
4189   )
4190 {
4191   UINT8       Temp;
4192 
4193   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_TYPES), gShellDebug1HiiHandle);
4194   PRINT_INFO_OPTION (SMType, Option);
4195 
4196   //
4197   // Deal with wide range Value
4198   //
4199   if (SMType >= 0x80000000) {
4200     ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_OEM_ASSIGNED), gShellDebug1HiiHandle);
4201   } else if (SMType >= 0x00020000) {
4202     ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gShellDebug1HiiHandle);
4203   } else if (SMType >= 0x00010000) {
4204     ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_MANAGEMENT_PROBE), gShellDebug1HiiHandle);
4205   } else if (SMType >= 0x31) {
4206     ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_RSVD_FOR_FUTURE_ASSIGN), gShellDebug1HiiHandle);
4207   } else {
4208     //
4209     // Deal with One byte data
4210     //
4211     Temp = (UINT8) (SMType & 0x3F);
4212     PRINT_TABLE_ITEM (SELSysManagementTypesTable, Temp);
4213   }
4214 }
4215 
4216 /**
4217   Display Physical Memory Array (Type 16) Location.
4218 
4219   @param[in] Location   The key of the structure.
4220   @param[in] Option     The optional information.
4221 **/
4222 VOID
DisplayPMALocation(IN UINT8 Location,IN UINT8 Option)4223 DisplayPMALocation (
4224   IN UINT8 Location,
4225   IN UINT8 Option
4226   )
4227 {
4228   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_LOCATION), gShellDebug1HiiHandle);
4229   PRINT_INFO_OPTION (Location, Option);
4230   PRINT_TABLE_ITEM (PMALocationTable, Location);
4231 }
4232 
4233 /**
4234   Display Physical Memory Array (Type 16) Use.
4235 
4236   @param[in] Use        The key of the structure.
4237   @param[in] Option     The optional information.
4238 **/
4239 VOID
DisplayPMAUse(IN UINT8 Use,IN UINT8 Option)4240 DisplayPMAUse (
4241   IN UINT8 Use,
4242   IN UINT8 Option
4243   )
4244 {
4245   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_USE), gShellDebug1HiiHandle);
4246   PRINT_INFO_OPTION (Use, Option);
4247   PRINT_TABLE_ITEM (PMAUseTable, Use);
4248 }
4249 
4250 /**
4251   Display Physical Memory Array (Type 16) Types.
4252 
4253   @param[in] Type       The key of the structure.
4254   @param[in] Option     The optional information.
4255 **/
4256 VOID
DisplayPMAErrorCorrectionTypes(IN UINT8 Type,IN UINT8 Option)4257 DisplayPMAErrorCorrectionTypes (
4258   IN UINT8 Type,
4259   IN UINT8 Option
4260   )
4261 {
4262   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PHYS_MEM_ARRAY_ERROR), gShellDebug1HiiHandle);
4263   PRINT_INFO_OPTION (Type, Option);
4264   PRINT_TABLE_ITEM (PMAErrorCorrectionTypesTable, Type);
4265 }
4266 
4267 /**
4268   Display Memory Device (Type 17) form factor.
4269 
4270   @param[in] FormFactor The key of the structure.
4271   @param[in] Option     The optional information.
4272 **/
4273 VOID
DisplayMemoryDeviceFormFactor(IN UINT8 FormFactor,IN UINT8 Option)4274 DisplayMemoryDeviceFormFactor (
4275   IN UINT8 FormFactor,
4276   IN UINT8 Option
4277   )
4278 {
4279   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_FORM_FACTOR), gShellDebug1HiiHandle);
4280   PRINT_INFO_OPTION (FormFactor, Option);
4281   PRINT_TABLE_ITEM (MemoryDeviceFormFactorTable, FormFactor);
4282 }
4283 
4284 /**
4285   Display Memory Device (Type 17) type.
4286 
4287   @param[in] Type     The key of the structure.
4288   @param[in] Option   The optional information.
4289 **/
4290 VOID
DisplayMemoryDeviceType(IN UINT8 Type,IN UINT8 Option)4291 DisplayMemoryDeviceType (
4292   IN UINT8 Type,
4293   IN UINT8 Option
4294   )
4295 {
4296   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE), gShellDebug1HiiHandle);
4297   PRINT_INFO_OPTION (Type, Option);
4298   PRINT_TABLE_ITEM (MemoryDeviceTypeTable, Type);
4299 }
4300 
4301 /**
4302   Display Memory Device (Type 17) details.
4303 
4304   @param[in] Para     The key of the structure.
4305   @param[in] Option   The optional information.
4306 **/
4307 VOID
DisplayMemoryDeviceTypeDetail(IN UINT16 Para,IN UINT8 Option)4308 DisplayMemoryDeviceTypeDetail (
4309   IN UINT16  Para,
4310   IN UINT8   Option
4311   )
4312 {
4313   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_TYPE_DETAIL), gShellDebug1HiiHandle);
4314   PRINT_INFO_OPTION (Para, Option);
4315   PRINT_BITS_INFO (MemoryDeviceTypeDetailTable, Para);
4316 }
4317 
4318 /**
4319   Display Memory Device (Type 17) memory technology.
4320 
4321   @param[in] Para     The key of the structure.
4322   @param[in] Option   The optional information.
4323 **/
4324 VOID
DisplayMemoryDeviceMemoryTechnology(IN UINT8 Para,IN UINT8 Option)4325 DisplayMemoryDeviceMemoryTechnology (
4326   IN UINT8  Para,
4327   IN UINT8  Option
4328   )
4329 {
4330   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_MEMORY_TECHNOLOGY), gShellDebug1HiiHandle);
4331   PRINT_INFO_OPTION (Para, Option);
4332   PRINT_TABLE_ITEM (MemoryDeviceMemoryTechnologyTable, Para);
4333 }
4334 
4335 /**
4336   Display Memory Device (Type 17) memory operating mode capability.
4337 
4338   @param[in] Para     The key of the structure.
4339   @param[in] Option   The optional information.
4340 **/
4341 VOID
DisplayMemoryDeviceMemoryOperatingModeCapability(IN UINT16 Para,IN UINT8 Option)4342 DisplayMemoryDeviceMemoryOperatingModeCapability (
4343   IN UINT16  Para,
4344   IN UINT8   Option
4345   )
4346 {
4347   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_DEVICE_MEM_OPER_MODE_CAPA), gShellDebug1HiiHandle);
4348   PRINT_INFO_OPTION (Para, Option);
4349   PRINT_BITS_INFO (MemoryDeviceMemoryOperatingModeCapabilityTable, Para);
4350 }
4351 
4352 /**
4353   Display 32-bit Memory Error Information (Type 18) type.
4354 
4355   @param[in] ErrorType  The key of the structure.
4356   @param[in] Option     The optional information.
4357 **/
4358 VOID
DisplayMemoryErrorType(IN UINT8 ErrorType,IN UINT8 Option)4359 DisplayMemoryErrorType (
4360   IN UINT8 ErrorType,
4361   IN UINT8 Option
4362   )
4363 {
4364   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_INFO), gShellDebug1HiiHandle);
4365   PRINT_INFO_OPTION (ErrorType, Option);
4366   PRINT_TABLE_ITEM (MemoryErrorTypeTable, ErrorType);
4367 }
4368 
4369 /**
4370   Display 32-bit Memory Error Information (Type 18) error granularity.
4371 
4372   @param[in] Granularity  The key of the structure.
4373   @param[in] Option       The optional information.
4374 **/
4375 VOID
DisplayMemoryErrorGranularity(IN UINT8 Granularity,IN UINT8 Option)4376 DisplayMemoryErrorGranularity (
4377   IN UINT8 Granularity,
4378   IN UINT8 Option
4379   )
4380 {
4381   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_GRANULARITY), gShellDebug1HiiHandle);
4382   PRINT_INFO_OPTION (Granularity, Option);
4383   PRINT_TABLE_ITEM (MemoryErrorGranularityTable, Granularity);
4384 }
4385 
4386 /**
4387   Display 32-bit Memory Error Information (Type 18) error information.
4388 
4389   @param[in] Operation  The key of the structure.
4390   @param[in] Option     The optional information.
4391 **/
4392 VOID
DisplayMemoryErrorOperation(IN UINT8 Operation,IN UINT8 Option)4393 DisplayMemoryErrorOperation (
4394   IN UINT8 Operation,
4395   IN UINT8 Option
4396   )
4397 {
4398   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_ERROR_OP), gShellDebug1HiiHandle);
4399   PRINT_INFO_OPTION (Operation, Option);
4400   PRINT_TABLE_ITEM (MemoryErrorOperationTable, Operation);
4401 }
4402 
4403 /**
4404   Display Built-in Pointing Device (Type 21) type information.
4405 
4406   @param[in] Type     The key of the structure.
4407   @param[in] Option   The optional information.
4408 **/
4409 VOID
DisplayPointingDeviceType(IN UINT8 Type,IN UINT8 Option)4410 DisplayPointingDeviceType (
4411   IN UINT8 Type,
4412   IN UINT8 Option
4413   )
4414 {
4415   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_TYPE), gShellDebug1HiiHandle);
4416   PRINT_INFO_OPTION (Type, Option);
4417   PRINT_TABLE_ITEM (PointingDeviceTypeTable, Type);
4418 }
4419 
4420 /**
4421   Display Built-in Pointing Device (Type 21) information.
4422 
4423   @param[in] Interface  The key of the structure.
4424   @param[in] Option     The optional information.
4425 **/
4426 VOID
DisplayPointingDeviceInterface(IN UINT8 Interface,IN UINT8 Option)4427 DisplayPointingDeviceInterface (
4428   IN UINT8   Interface,
4429   IN UINT8   Option
4430   )
4431 {
4432   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_POINTING_DEVICE_INTERFACE), gShellDebug1HiiHandle);
4433   PRINT_INFO_OPTION (Interface, Option);
4434   PRINT_TABLE_ITEM (PointingDeviceInterfaceTable, Interface);
4435 }
4436 
4437 /**
4438   Display Portable Battery  (Type 22) information.
4439 
4440   @param[in] Key      The key of the structure.
4441   @param[in] Option   The optional information.
4442 **/
4443 VOID
DisplayPBDeviceChemistry(IN UINT8 Key,IN UINT8 Option)4444 DisplayPBDeviceChemistry (
4445   IN UINT8 Key,
4446   IN UINT8 Option
4447   )
4448 {
4449   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_PORTABLE_BATT_DEV_CHEM), gShellDebug1HiiHandle);
4450   PRINT_INFO_OPTION (Key, Option);
4451   PRINT_TABLE_ITEM (PBDeviceChemistryTable, Key);
4452 }
4453 
4454 /**
4455   Display Voltage Probe (Type 26) location information.
4456 
4457   @param[in] Key      The key of the structure.
4458   @param[in] Option   The optional information.
4459 **/
4460 VOID
DisplayVPLocation(IN UINT8 Key,IN UINT8 Option)4461 DisplayVPLocation (
4462   IN UINT8 Key,
4463   IN UINT8 Option
4464   )
4465 {
4466   UINT8       Loc;
4467 
4468   Loc = (UINT8) ((Key & 0xE0) >> 5);
4469   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gShellDebug1HiiHandle);
4470   PRINT_INFO_OPTION (Loc, Option);
4471   PRINT_TABLE_ITEM (VPLocationTable, Loc);
4472 }
4473 
4474 /**
4475   Display Voltage Probe (Type 26) status ype information.
4476 
4477   @param[in] Key      The key of the structure.
4478   @param[in] Option   The optional information.
4479 **/
4480 VOID
DisplayVPStatus(IN UINT8 Key,IN UINT8 Option)4481 DisplayVPStatus (
4482   IN UINT8 Key,
4483   IN UINT8 Option
4484   )
4485 {
4486   UINT8       Status;
4487 
4488   Status = (UINT8) (Key & 0x1F);
4489   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_STATUS), gShellDebug1HiiHandle);
4490   PRINT_INFO_OPTION (Status, Option);
4491   PRINT_TABLE_ITEM (VPStatusTable, Status);
4492 }
4493 
4494 /**
4495   Display Cooling (Type 27) status information.
4496 
4497   @param[in] Key      The key of the structure.
4498   @param[in] Option   The optional information.
4499 **/
4500 VOID
DisplayCoolingDeviceStatus(IN UINT8 Key,IN UINT8 Option)4501 DisplayCoolingDeviceStatus (
4502   IN UINT8 Key,
4503   IN UINT8 Option
4504   )
4505 {
4506   UINT8       Status;
4507 
4508   Status = (UINT8) ((Key & 0xE0) >> 5);
4509   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_STATUS), gShellDebug1HiiHandle);
4510   PRINT_INFO_OPTION (Status, Option);
4511   PRINT_TABLE_ITEM (CoolingDeviceStatusTable, Status);
4512 }
4513 
4514 /**
4515   Display Cooling (Type 27) type information.
4516 
4517   @param[in] Key      The key of the structure.
4518   @param[in] Option   The optional information.
4519 **/
4520 VOID
DisplayCoolingDeviceType(IN UINT8 Key,IN UINT8 Option)4521 DisplayCoolingDeviceType (
4522   IN UINT8 Key,
4523   IN UINT8 Option
4524   )
4525 {
4526   UINT8       Type;
4527 
4528   Type = (UINT8) (Key & 0x1F);
4529   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_COOLING_DEV_TYPE), gShellDebug1HiiHandle);
4530   PRINT_INFO_OPTION (Type, Option);
4531   PRINT_TABLE_ITEM (CoolingDeviceTypeTable, Type);
4532 }
4533 
4534 /**
4535   Display Temperature Probe (Type 28) status information.
4536 
4537   @param[in] Key      The key of the structure.
4538   @param[in] Option   The optional information.
4539 **/
4540 VOID
DisplayTemperatureProbeStatus(IN UINT8 Key,IN UINT8 Option)4541 DisplayTemperatureProbeStatus (
4542   IN UINT8 Key,
4543   IN UINT8 Option
4544   )
4545 {
4546   UINT8       Status;
4547 
4548   Status = (UINT8) ((Key & 0xE0) >> 5);
4549   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_TEMP_PROBE), gShellDebug1HiiHandle);
4550   PRINT_INFO_OPTION (Status, Option);
4551   PRINT_TABLE_ITEM (TemperatureProbeStatusTable, Status);
4552 }
4553 
4554 /**
4555   Display Temperature Probe  (Type 28) location information.
4556 
4557   @param[in] Key      The key of the structure.
4558   @param[in] Option   The optional information.
4559 **/
4560 VOID
DisplayTemperatureProbeLoc(IN UINT8 Key,IN UINT8 Option)4561 DisplayTemperatureProbeLoc (
4562   IN UINT8 Key,
4563   IN UINT8 Option
4564   )
4565 {
4566   UINT8       Loc;
4567 
4568   Loc = (UINT8) (Key & 0x1F);
4569   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_VOLTAGE_PROBE_LOC), gShellDebug1HiiHandle);
4570   PRINT_INFO_OPTION (Loc, Option);
4571   PRINT_TABLE_ITEM (TemperatureProbeLocTable, Loc);
4572 }
4573 
4574 /**
4575   Display Electrical Current Probe (Type 29)  status information.
4576 
4577   @param[in] Key      The key of the structure.
4578   @param[in] Option   The optional information.
4579 **/
4580 VOID
DisplayECPStatus(IN UINT8 Key,IN UINT8 Option)4581 DisplayECPStatus (
4582   IN UINT8 Key,
4583   IN UINT8 Option
4584   )
4585 {
4586   UINT8       Status;
4587 
4588   Status = (UINT8) ((Key & 0xE0) >> 5);
4589   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_STATUS), gShellDebug1HiiHandle);
4590   PRINT_INFO_OPTION (Status, Option);
4591   PRINT_TABLE_ITEM (ECPStatusTable, Status);
4592 }
4593 
4594 /**
4595   Display Type 29 information.
4596 
4597   @param[in] Key      The key of the structure.
4598   @param[in] Option   The optional information.
4599 **/
4600 VOID
DisplayECPLoc(IN UINT8 Key,IN UINT8 Option)4601 DisplayECPLoc (
4602   IN UINT8 Key,
4603   IN UINT8 Option
4604   )
4605 {
4606   UINT8       Loc;
4607 
4608   Loc = (UINT8) (Key & 0x1F);
4609   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_ELEC_PROBE_LOC), gShellDebug1HiiHandle);
4610   PRINT_INFO_OPTION (Loc, Option);
4611   PRINT_TABLE_ITEM (ECPLocTable, Loc);
4612 }
4613 
4614 /**
4615   Display Management Device (Type 34) Type.
4616 
4617   @param[in] Key      The key of the structure.
4618   @param[in] Option   The optional information.
4619 **/
4620 VOID
DisplayMDType(IN UINT8 Key,IN UINT8 Option)4621 DisplayMDType (
4622   IN UINT8 Key,
4623   IN UINT8 Option
4624   )
4625 {
4626   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_TYPE), gShellDebug1HiiHandle);
4627   PRINT_INFO_OPTION (Key, Option);
4628   PRINT_TABLE_ITEM (MDTypeTable, Key);
4629 }
4630 
4631 /**
4632   Display Management Device (Type 34) Address Type.
4633 
4634   @param[in] Key      The key of the structure.
4635   @param[in] Option   The optional information.
4636 **/
4637 VOID
DisplayMDAddressType(IN UINT8 Key,IN UINT8 Option)4638 DisplayMDAddressType (
4639   IN UINT8 Key,
4640   IN UINT8 Option
4641   )
4642 {
4643   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MANAGEMENT_DEV_ADDR_TYPE), gShellDebug1HiiHandle);
4644   PRINT_INFO_OPTION (Key, Option);
4645   PRINT_TABLE_ITEM (MDAddressTypeTable, Key);
4646 }
4647 
4648 /**
4649   Display Memory Channel (Type 37) information.
4650 
4651   @param[in] Key      The key of the structure.
4652   @param[in] Option   The optional information.
4653 **/
4654 VOID
DisplayMemoryChannelType(IN UINT8 Key,IN UINT8 Option)4655 DisplayMemoryChannelType (
4656   IN UINT8 Key,
4657   IN UINT8 Option
4658   )
4659 {
4660   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MEM_CHANNEL_TYPE), gShellDebug1HiiHandle);
4661   PRINT_INFO_OPTION (Key, Option);
4662   PRINT_TABLE_ITEM (MemoryChannelTypeTable, Key);
4663 }
4664 
4665 /**
4666   Display IPMI Device Information (Type 38) information.
4667 
4668   @param[in] Key      The key of the structure.
4669   @param[in] Option   The optional information.
4670 **/
4671 VOID
DisplayIPMIDIBMCInterfaceType(IN UINT8 Key,IN UINT8 Option)4672 DisplayIPMIDIBMCInterfaceType (
4673   IN UINT8 Key,
4674   IN UINT8 Option
4675   )
4676 {
4677   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_BMC_INTERFACE_TYPE), gShellDebug1HiiHandle);
4678   PRINT_INFO_OPTION (Key, Option);
4679   PRINT_TABLE_ITEM (IPMIDIBMCInterfaceTypeTable, Key);
4680 }
4681 
4682 /**
4683   Display Management Controller Host Interface (Type 42) information.
4684 
4685   @param[in] Key      The key of the structure.
4686   @param[in] Option   The optional information.
4687 **/
4688 VOID
DisplayMCHostInterfaceType(IN UINT8 Key,IN UINT8 Option)4689 DisplayMCHostInterfaceType (
4690   IN UINT8 Key,
4691   IN UINT8 Option
4692   )
4693 {
4694   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_MC_HOST_INTERFACE_TYPE), gShellDebug1HiiHandle);
4695   PRINT_INFO_OPTION (Key, Option);
4696   PRINT_TABLE_ITEM (MCHostInterfaceTypeTable, Key);
4697 }
4698 
4699 /**
4700   Display the structure type information.
4701 
4702   @param[in] Key      The key of the structure.
4703   @param[in] Option   The optional information.
4704 **/
4705 VOID
DisplayStructureTypeInfo(IN UINT8 Key,IN UINT8 Option)4706 DisplayStructureTypeInfo (
4707   IN UINT8 Key,
4708   IN UINT8 Option
4709   )
4710 {
4711   //
4712   // display
4713   //
4714   ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_QUERYTABLE_STRUCT_TYPE), gShellDebug1HiiHandle);
4715   PRINT_INFO_OPTION (Key, Option);
4716   PRINT_TABLE_ITEM (StructureTypeInfoTable, Key);
4717 }
4718