47 if (mSmbiosTable ==
NULL) {
51 if (EFI_ERROR (Status)) {
59 mSmbiosStruct->Raw = (UINT8 *)(
UINTN)(mSmbiosTable->TableAddress);
89 if (mSmbios64BitTable ==
NULL) {
93 if (EFI_ERROR (Status)) {
101 mSmbios64BitStruct->Raw = (UINT8 *)(
UINTN)(mSmbios64BitTable->TableAddress);
118 if (mSmbiosTable !=
NULL) {
136 if (mSmbios64BitTable !=
NULL) {
137 mSmbios64BitTable =
NULL;
156 *EntryPointStructure = mSmbiosTable;
172 *EntryPointStructure = mSmbios64BitTable;
187 IN UINT16 StringNumber
193 ASSERT (Smbios !=
NULL);
198 String = (CHAR8 *)(Smbios->Raw + Smbios->Hdr->Length);
203 for (Index = 1; Index <= StringNumber; Index++) {
204 if (StringNumber == Index) {
211 for ( ; *String != 0; String++) {
222 Smbios->Raw = (UINT8 *)++String;
248 IN OUT UINT16 *Handle,
257 if (*Handle == INVALID_HANDLE) {
258 *Handle = mSmbiosStruct->Hdr->Handle;
259 return DMI_INVALID_HANDLE;
262 if ((Buffer ==
NULL) || (Length ==
NULL)) {
264 return DMI_INVALID_HANDLE;
268 Smbios.Hdr = mSmbiosStruct->Hdr;
269 SmbiosEnd.Raw = Smbios.Raw + mSmbiosTable->TableLength;
270 while (Smbios.Raw < SmbiosEnd.Raw) {
271 if (Smbios.Hdr->Handle == *Handle) {
280 *Length = (UINT16)(Smbios.Raw - Raw);
285 if (Smbios.Raw < SmbiosEnd.Raw) {
286 *Handle = Smbios.Hdr->Handle;
288 *Handle = INVALID_HANDLE;
300 *Handle = INVALID_HANDLE;
301 return DMI_INVALID_HANDLE;
322 IN OUT UINT16 *Handle,
331 if (*Handle == INVALID_HANDLE) {
332 *Handle = mSmbios64BitStruct->Hdr->Handle;
333 return DMI_INVALID_HANDLE;
336 if ((Buffer ==
NULL) || (Length ==
NULL)) {
338 return DMI_INVALID_HANDLE;
342 Smbios.Hdr = mSmbios64BitStruct->Hdr;
344 SmbiosEnd.Raw = Smbios.Raw + mSmbios64BitTableLength;
345 while (Smbios.Raw < SmbiosEnd.Raw) {
346 if (Smbios.Hdr->Handle == *Handle) {
355 *Length = (UINT16)(Smbios.Raw - Raw);
360 if (Smbios.Raw < SmbiosEnd.Raw) {
361 *Handle = Smbios.Hdr->Handle;
363 *Handle = INVALID_HANDLE;
375 *Handle = INVALID_HANDLE;
376 return DMI_INVALID_HANDLE;
EFI_STATUS LibSmbiosInit(VOID)
EFI_STATUS LibGetSmbios64BitStructure(IN OUT UINT16 *Handle, OUT UINT8 **Buffer, OUT UINT16 *Length)
VOID LibSmbios64BitGetEPS(OUT SMBIOS_TABLE_3_0_ENTRY_POINT **EntryPointStructure)
EFI_STATUS LibGetSmbiosStructure(IN OUT UINT16 *Handle, OUT UINT8 **Buffer, OUT UINT16 *Length)
EFI_STATUS LibSmbios64BitInit(VOID)
CHAR8 * LibGetSmbiosString(IN SMBIOS_STRUCTURE_POINTER *Smbios, IN UINT16 StringNumber)
VOID LibSmbios64BitCleanup(VOID)
VOID LibSmbiosCleanup(VOID)
VOID LibSmbiosGetEPS(OUT SMBIOS_TABLE_ENTRY_POINT **EntryPointStructure)
EFI_STATUS EFIAPI ShellPrintHiiEx(IN INT32 Col OPTIONAL, IN INT32 Row OPTIONAL, IN CONST CHAR8 *Language OPTIONAL, IN CONST EFI_STRING_ID HiiFormatStringId, IN CONST EFI_HII_HANDLE HiiFormatHandle,...)
EFI_STATUS GetSystemConfigurationTable(IN EFI_GUID *TableGuid, IN OUT VOID **Table)