QueryTable.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
/** @file
Build a table, each item is (key, info) pair.
and give a interface of query a string out of a table.
Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _SMBIOS_QUERY_TABLE_H_
#define _SMBIOS_QUERY_TABLE_H_
#define QUERY_TABLE_UNFOUND 0xFF
typedef struct TABLE_ITEM {
} TABLE_ITEM;
//
// Print info by option
//
do { \
return ; \
} \
if (Option < SHOW_DETAIL) { \
return ; \
} \
} while (0);
/**
Given a table and a Key, return the responding info.
Notes:
Table[Index].Key is change from UINT8 to UINT16,
in order to deal with "0xaa - 0xbb".
For example:
DisplaySELVariableDataFormatTypes(UINT8 Type, UINT8 Option)
has a item:
"0x07-0x7F, Unused"
Now define Key = 0x7F07, that is to say: High = 0x7F, Low = 0x07.
Then all the Key Value between Low and High gets the same string
L"Unused".
@param[in] Table The begin address of table.
@param[in] Number The number of table items.
@param[in] Key The query Key.
@param[in, out] Info Input as empty buffer; output as data buffer.
@param[in] InfoLen The max number of characters for Info.
@return the found Key and Info is valid.
@retval QUERY_TABLE_UNFOUND and Info should be NULL.
**/
);
/**
Display the structure type information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Information (Type 1) Type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Enclosure (Type 3) Enclosure Type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Enclosure (Type 3) Enclosure Status.
@param[in] Status The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Enclosure (Type 3) Security Status.
@param[in] Status The key of the structure.
@param[in] Option The optional information.
**/
)
;
/**
Display Processor Information (Type 4) Type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Processor Information (Type 4) Upgrade.
@param[in] Upgrade The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Controller Information (Type 5) method.
@param[in] Method The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Controller Information (Type 5) Capability.
@param[in] Capability The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Controller Information (Type 5) Support.
@param[in] Support The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Controller Information (Type 5) speeds.
@param[in] Speed The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Controller Information (Type 5) voltage.
@param[in] Voltage The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Module Information (Type 6) type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Module Information (Type 6) status.
@param[in] Status The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Cache Information (Type 7) SRAM Type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Cache Information (Type 7) correcting Type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Cache Information (Type 7) Type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Cache Information (Type 7) Associativity.
@param[in] Associativity The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Port Connector Information (Type 8) type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Port Connector Information (Type 8) port type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Slots (Type 9) slot type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Slots (Type 9) data bus width.
@param[in] Width The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Slots (Type 9) usage information.
@param[in] Usage The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Slots (Type 9) slot length.
@param[in] Length The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Slots (Type 9) characteristics.
@param[in] Chara1 The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Slots (Type 9) characteristics.
@param[in] Chara2 The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display On Board Devices Information (Type 10) types.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Event Log (Type 15) types.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Event Log (Type 15) format type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Event Log (Type 15) dw1.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Event Log (Type 15) dw2.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display System Event Log (Type 15) type.
@param[in] SMType The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Physical Memory Array (Type 16) Location.
@param[in] Location The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Physical Memory Array (Type 16) Use.
@param[in] Use The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Physical Memory Array (Type 16) Types.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Device (Type 17) form factor.
@param[in] FormFactor The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Device (Type 17) type.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Device (Type 17) details.
@param[in] Para The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display 32-bit Memory Error Information (Type 18) type.
@param[in] ErrorType The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display 32-bit Memory Error Information (Type 18) error granularity.
@param[in] Granularity The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display 32-bit Memory Error Information (Type 18) error information.
@param[in] Operation The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Built-in Pointing Device (Type 21) type information.
@param[in] Type The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Built-in Pointing Device (Type 21) information.
@param[in] Interface The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Portable Battery (Type 22) information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Voltage Probe (Type 26) location information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Voltage Probe (Type 26) status ype information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Cooling (Type 27) status information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Cooling (Type 27) type information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Temperature Probe (Type 28) status information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Temperature Probe (Type 28) location information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Electrical Current Probe (Type 29) status information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Electrical Current Probe (Type 29) location information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Management Device (Type 34) information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display Memory Channel (Type 37) information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
/**
Display IPMI Device Information (Type 38) information.
@param[in] Key The key of the structure.
@param[in] Option The optional information.
**/
);
#endif