QueryTable.h revision 5d73d92f560b079f41f62e91d15ddc1fda897867
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
21typedef 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
40UINT8
41QueryTable (
42  IN  TABLE_ITEM    *Table,
43  IN  UINTN         Number,
44  IN  UINT8         Key,
45  IN  OUT CHAR16    *Info
46  );
47
48VOID
49PrintBitsInfo (
50  IN  TABLE_ITEM    *Table,
51  IN  UINTN         Number,
52  IN  UINT32        Bits
53  );
54
55//
56// Display the element detail information
57//
58VOID
59DisplayStructureTypeInfo (
60  UINT8 Key,
61  UINT8 Option
62  );
63
64//
65// System Information (Type 1)
66//
67VOID
68DisplaySystemWakeupType (
69  UINT8 Type,
70  UINT8 Option
71  );
72
73//
74// System Enclosure (Type 3)
75//
76VOID
77DisplaySystemEnclosureType (
78  UINT8 Type,
79  UINT8 Option
80  );
81VOID
82DisplaySystemEnclosureStatus (
83  UINT8 Status,
84  UINT8 Option
85  );
86VOID
87DisplaySESecurityStatus (
88  UINT8 Status,
89  UINT8 Option
90  );
91
92//
93// Processor Information (Type 4)
94//
95VOID
96DisplayProcessorType (
97  UINT8 Type,
98  UINT8 Option
99  );
100VOID
101DisplayProcessorUpgrade (
102  UINT8 Upgrade,
103  UINT8 Option
104  );
105
106//
107// Memory Controller Information (Type 5)
108//
109VOID
110DisplayMcErrorDetectMethod (
111  UINT8 Method,
112  UINT8 Option
113  );
114VOID
115DisplayMcErrorCorrectCapability (
116  UINT8 Capability,
117  UINT8 Option
118  );
119VOID
120DisplayMcInterleaveSupport (
121  UINT8 Support,
122  UINT8 Option
123  );
124VOID
125DisplayMcMemorySpeeds (
126  UINT16  Speed,
127  UINT8   Option
128  );
129VOID
130DisplayMemoryModuleVoltage (
131  UINT8 Voltage,
132  UINT8 Option
133  );
134
135//
136// Memory Module Information (Type 6)
137//
138VOID
139DisplayMmMemoryType (
140  UINT16  Type,
141  UINT8   Option
142  );
143VOID
144DisplayMmErrorStatus (
145  UINT8 Status,
146  UINT8 Option
147  );
148
149//
150// Cache Information (Type 7)
151//
152VOID
153DisplayCacheSRAMType (
154  UINT16  Type,
155  UINT8   Option
156  );
157VOID
158DisplayCacheErrCorrectingType (
159  UINT8 Type,
160  UINT8 Option
161  );
162VOID
163DisplayCacheSystemCacheType (
164  UINT8 Type,
165  UINT8 Option
166  );
167VOID
168DisplayCacheAssociativity (
169  UINT8 Associativity,
170  UINT8 Option
171  );
172
173//
174// Port Connector Information  (Type 8)
175//
176VOID
177DisplayPortConnectorType (
178  UINT8 Type,
179  UINT8 Option
180  );
181VOID
182DisplayPortType (
183  UINT8 Type,
184  UINT8 Option
185  );
186
187//
188// System Slots (Type 9)
189//
190VOID
191DisplaySystemSlotType (
192  UINT8 Type,
193  UINT8 Option
194  );
195VOID
196DisplaySystemSlotDataBusWidth (
197  UINT8 Width,
198  UINT8 Option
199  );
200VOID
201DisplaySystemSlotCurrentUsage (
202  UINT8 Usage,
203  UINT8 Option
204  );
205VOID
206DisplaySystemSlotLength (
207  UINT8 Length,
208  UINT8 Option
209  );
210VOID
211DisplaySlotCharacteristics1 (
212  UINT8 Chara1,
213  UINT8 Option
214  );
215VOID
216DisplaySlotCharacteristics2 (
217  UINT8 Chara2,
218  UINT8 Option
219  );
220
221//
222// On Board Devices Information (Type 10)
223//
224VOID
225DisplayOnboardDeviceTypes (
226  UINT8 Type,
227  UINT8 Option
228  );
229
230//
231// System Event Log (Type 15)
232//
233VOID
234DisplaySELTypes (
235  UINT8 Type,
236  UINT8 Option
237  );
238VOID
239DisplaySELVarDataFormatType (
240  UINT8 Type,
241  UINT8 Option
242  );
243VOID
244DisplayPostResultsBitmapDw1 (
245  UINT32  Key,
246  UINT8   Option
247  );
248VOID
249DisplayPostResultsBitmapDw2 (
250  UINT32  Key,
251  UINT8   Option
252  );
253VOID
254DisplaySELSysManagementTypes (
255  UINT32  SMType,
256  UINT8   Option
257  );
258
259//
260// Physical Memory Array (Type 16)
261//
262VOID
263DisplayPMALocation (
264  UINT8 Location,
265  UINT8 Option
266  );
267VOID
268DisplayPMAUse (
269  UINT8 Use,
270  UINT8 Option
271  );
272VOID
273DisplayPMAErrorCorrectionTypes (
274  UINT8 Type,
275  UINT8 Option
276  );
277
278//
279// Memory Device (Type 17)
280//
281VOID
282DisplayMemoryDeviceFormFactor (
283  UINT8 FormFactor,
284  UINT8 Option
285  );
286VOID
287DisplayMemoryDeviceType (
288  UINT8 Type,
289  UINT8 Option
290  );
291VOID
292DisplayMemoryDeviceTypeDetail (
293  UINT16  Parameter,
294  UINT8   Option
295  );
296
297//
298// 32-bit Memory Error Information (Type 18)
299//
300VOID
301DisplayMemoryErrorType (
302  UINT8 ErrorType,
303  UINT8 Option
304  );
305VOID
306DisplayMemoryErrorGranularity (
307  UINT8 Granularity,
308  UINT8 Option
309  );
310VOID
311DisplayMemoryErrorOperation (
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//
322VOID
323DisplayPointingDeviceType (
324  UINT8 Type,
325  UINT8 Option
326  );
327VOID
328DisplayPointingDeviceInterface (
329  UINT8   Interface,
330  UINT8   Option
331  );
332
333//
334// Portable Battery  (Type 22)
335//
336VOID
337DisplayPBDeviceChemistry (
338  UINT8 Key,
339  UINT8 Option
340  );
341
342//
343// Voltage Probe (Type 26)
344//
345VOID
346DisplayVPLocation (
347  UINT8 Key,
348  UINT8 Option
349  );
350VOID
351DisplayVPStatus (
352  UINT8 Key,
353  UINT8 Option
354  );
355
356//
357// Voltage Probe (Type 27)
358//
359VOID
360DisplayCoolingDeviceStatus (
361  UINT8 Key,
362  UINT8 Option
363  );
364VOID
365DisplayCoolingDeviceType (
366  UINT8 Key,
367  UINT8 Option
368  );
369
370//
371// Temperature Probe  (Type 28)
372//
373VOID
374DisplayTemperatureProbeStatus (
375  UINT8 Key,
376  UINT8 Option
377  );
378VOID
379DisplayTemperatureProbeLoc (
380  UINT8 Key,
381  UINT8 Option
382  );
383
384//
385// Electrical Current Probe (Type 29)
386//
387VOID
388DisplayECPStatus (
389  UINT8 Key,
390  UINT8 Option
391  );
392VOID
393DisplayECPLoc (
394  UINT8 Key,
395  UINT8 Option
396  );
397
398//
399// Management Device  (Type 34)
400//
401VOID
402DisplayMDType (
403  UINT8 Key,
404  UINT8 Option
405  );
406VOID
407DisplayMDAddressType (
408  UINT8 Key,
409  UINT8 Option
410  );
411
412//
413// Memory Channel  (Type 37)
414//
415VOID
416DisplayMemoryChannelType (
417  UINT8 Key,
418  UINT8 Option
419  );
420
421//
422// IPMI Device Information  (Type 38)
423//
424VOID
425DisplayIPMIDIBMCInterfaceType (
426  UINT8 Key,
427  UINT8 Option
428  );
429
430#endif
431