]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.h
adacc41cf3cd50e9b47c7a39f4d340ac6c31a5e0
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / SmbiosView / QueryTable.h
1 /** @file
2 Build a table, each item is (key, info) pair.
3 and give a interface of query a string out of a table.
4
5 Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef _SMBIOS_QUERY_TABLE_H
17 #define _SMBIOS_QUERY_TABLE_H
18
19 #define QUERY_TABLE_UNFOUND 0xFF
20
21 typedef struct TABLE_ITEM {
22 UINT16 Key;
23 CHAR16 *Info;
24 } TABLE_ITEM;
25
26 //
27 // Print info by option
28 //
29 #define PRINT_INFO_OPTION(Value, Option) \
30 do { \
31 if (Option == SHOW_NONE) { \
32 return ; \
33 } \
34 if (Option < SHOW_DETAIL) { \
35 Print (L"0x%x\n", Value); \
36 return ; \
37 } \
38 } while (0);
39
40 UINT8
41 QueryTable (
42 IN TABLE_ITEM *Table,
43 IN UINTN Number,
44 IN UINT8 Key,
45 IN OUT CHAR16 *Info
46 );
47
48 VOID
49 PrintBitsInfo (
50 IN TABLE_ITEM *Table,
51 IN UINTN Number,
52 IN UINT32 Bits
53 );
54
55 //
56 // Display the element detail information
57 //
58 VOID
59 DisplayStructureTypeInfo (
60 UINT8 Key,
61 UINT8 Option
62 );
63
64 //
65 // System Information (Type 1)
66 //
67 VOID
68 DisplaySystemWakeupType (
69 UINT8 Type,
70 UINT8 Option
71 );
72
73 //
74 // System Enclosure (Type 3)
75 //
76 VOID
77 DisplaySystemEnclosureType (
78 UINT8 Type,
79 UINT8 Option
80 );
81 VOID
82 DisplaySystemEnclosureStatus (
83 UINT8 Status,
84 UINT8 Option
85 );
86 VOID
87 DisplaySESecurityStatus (
88 UINT8 Status,
89 UINT8 Option
90 );
91
92 //
93 // Processor Information (Type 4)
94 //
95 VOID
96 DisplayProcessorType (
97 UINT8 Type,
98 UINT8 Option
99 );
100 VOID
101 DisplayProcessorUpgrade (
102 UINT8 Upgrade,
103 UINT8 Option
104 );
105
106 //
107 // Memory Controller Information (Type 5)
108 //
109 VOID
110 DisplayMcErrorDetectMethod (
111 UINT8 Method,
112 UINT8 Option
113 );
114 VOID
115 DisplayMcErrorCorrectCapability (
116 UINT8 Capability,
117 UINT8 Option
118 );
119 VOID
120 DisplayMcInterleaveSupport (
121 UINT8 Support,
122 UINT8 Option
123 );
124 VOID
125 DisplayMcMemorySpeeds (
126 UINT16 Speed,
127 UINT8 Option
128 );
129 VOID
130 DisplayMemoryModuleVoltage (
131 UINT8 Voltage,
132 UINT8 Option
133 );
134
135 //
136 // Memory Module Information (Type 6)
137 //
138 VOID
139 DisplayMmMemoryType (
140 UINT16 Type,
141 UINT8 Option
142 );
143 VOID
144 DisplayMmErrorStatus (
145 UINT8 Status,
146 UINT8 Option
147 );
148
149 //
150 // Cache Information (Type 7)
151 //
152 VOID
153 DisplayCacheSRAMType (
154 UINT16 Type,
155 UINT8 Option
156 );
157 VOID
158 DisplayCacheErrCorrectingType (
159 UINT8 Type,
160 UINT8 Option
161 );
162 VOID
163 DisplayCacheSystemCacheType (
164 UINT8 Type,
165 UINT8 Option
166 );
167 VOID
168 DisplayCacheAssociativity (
169 UINT8 Associativity,
170 UINT8 Option
171 );
172
173 //
174 // Port Connector Information (Type 8)
175 //
176 VOID
177 DisplayPortConnectorType (
178 UINT8 Type,
179 UINT8 Option
180 );
181 VOID
182 DisplayPortType (
183 UINT8 Type,
184 UINT8 Option
185 );
186
187 //
188 // System Slots (Type 9)
189 //
190 VOID
191 DisplaySystemSlotType (
192 UINT8 Type,
193 UINT8 Option
194 );
195 VOID
196 DisplaySystemSlotDataBusWidth (
197 UINT8 Width,
198 UINT8 Option
199 );
200 VOID
201 DisplaySystemSlotCurrentUsage (
202 UINT8 Usage,
203 UINT8 Option
204 );
205 VOID
206 DisplaySystemSlotLength (
207 UINT8 Length,
208 UINT8 Option
209 );
210 VOID
211 DisplaySlotCharacteristics1 (
212 UINT8 Chara1,
213 UINT8 Option
214 );
215 VOID
216 DisplaySlotCharacteristics2 (
217 UINT8 Chara2,
218 UINT8 Option
219 );
220
221 //
222 // On Board Devices Information (Type 10)
223 //
224 VOID
225 DisplayOnboardDeviceTypes (
226 UINT8 Type,
227 UINT8 Option
228 );
229
230 //
231 // System Event Log (Type 15)
232 //
233 VOID
234 DisplaySELTypes (
235 UINT8 Type,
236 UINT8 Option
237 );
238 VOID
239 DisplaySELVarDataFormatType (
240 UINT8 Type,
241 UINT8 Option
242 );
243 VOID
244 DisplayPostResultsBitmapDw1 (
245 UINT32 Key,
246 UINT8 Option
247 );
248 VOID
249 DisplayPostResultsBitmapDw2 (
250 UINT32 Key,
251 UINT8 Option
252 );
253 VOID
254 DisplaySELSysManagementTypes (
255 UINT32 SMType,
256 UINT8 Option
257 );
258
259 //
260 // Physical Memory Array (Type 16)
261 //
262 VOID
263 DisplayPMALocation (
264 UINT8 Location,
265 UINT8 Option
266 );
267 VOID
268 DisplayPMAUse (
269 UINT8 Use,
270 UINT8 Option
271 );
272 VOID
273 DisplayPMAErrorCorrectionTypes (
274 UINT8 Type,
275 UINT8 Option
276 );
277
278 //
279 // Memory Device (Type 17)
280 //
281 VOID
282 DisplayMemoryDeviceFormFactor (
283 UINT8 FormFactor,
284 UINT8 Option
285 );
286 VOID
287 DisplayMemoryDeviceType (
288 UINT8 Type,
289 UINT8 Option
290 );
291 VOID
292 DisplayMemoryDeviceTypeDetail (
293 UINT16 Parameter,
294 UINT8 Option
295 );
296
297 //
298 // 32-bit Memory Error Information (Type 18)
299 //
300 VOID
301 DisplayMemoryErrorType (
302 UINT8 ErrorType,
303 UINT8 Option
304 );
305 VOID
306 DisplayMemoryErrorGranularity (
307 UINT8 Granularity,
308 UINT8 Option
309 );
310 VOID
311 DisplayMemoryErrorOperation (
312 UINT8 Operation,
313 UINT8 Option
314 );
315
316 //
317 // Memory Array Mapped Address (Type 19)
318 // Memory Device Mapped Address (Type 20)
319 //
320 // Built-in Pointing Device (Type 21)
321 //
322 VOID
323 DisplayPointingDeviceType (
324 UINT8 Type,
325 UINT8 Option
326 );
327 VOID
328 DisplayPointingDeviceInterface (
329 UINT8 Interface,
330 UINT8 Option
331 );
332
333 //
334 // Portable Battery (Type 22)
335 //
336 VOID
337 DisplayPBDeviceChemistry (
338 UINT8 Key,
339 UINT8 Option
340 );
341
342 //
343 // Voltage Probe (Type 26)
344 //
345 VOID
346 DisplayVPLocation (
347 UINT8 Key,
348 UINT8 Option
349 );
350 VOID
351 DisplayVPStatus (
352 UINT8 Key,
353 UINT8 Option
354 );
355
356 //
357 // Voltage Probe (Type 27)
358 //
359 VOID
360 DisplayCoolingDeviceStatus (
361 UINT8 Key,
362 UINT8 Option
363 );
364 VOID
365 DisplayCoolingDeviceType (
366 UINT8 Key,
367 UINT8 Option
368 );
369
370 //
371 // Temperature Probe (Type 28)
372 //
373 VOID
374 DisplayTemperatureProbeStatus (
375 UINT8 Key,
376 UINT8 Option
377 );
378 VOID
379 DisplayTemperatureProbeLoc (
380 UINT8 Key,
381 UINT8 Option
382 );
383
384 //
385 // Electrical Current Probe (Type 29)
386 //
387 VOID
388 DisplayECPStatus (
389 UINT8 Key,
390 UINT8 Option
391 );
392 VOID
393 DisplayECPLoc (
394 UINT8 Key,
395 UINT8 Option
396 );
397
398 //
399 // Management Device (Type 34)
400 //
401 VOID
402 DisplayMDType (
403 UINT8 Key,
404 UINT8 Option
405 );
406 VOID
407 DisplayMDAddressType (
408 UINT8 Key,
409 UINT8 Option
410 );
411
412 //
413 // Memory Channel (Type 37)
414 //
415 VOID
416 DisplayMemoryChannelType (
417 UINT8 Key,
418 UINT8 Option
419 );
420
421 //
422 // IPMI Device Information (Type 38)
423 //
424 VOID
425 DisplayIPMIDIBMCInterfaceType (
426 UINT8 Key,
427 UINT8 Option
428 );
429
430 #endif