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