mirror of https://github.com/acidanthera/audk.git
ShellPkg: update smbiosview for SMBIOS 3.0.
smbiosview can dump 64-bit entry point and table as long as SMBIOS 3.0 table exists in system configuration table. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Elvin Li <elvin.li@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17060 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
ba9d087b8f
commit
ec8a502e66
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
API for SMBIOS table.
|
||||
|
||||
Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 2015, 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
|
||||
|
@ -19,9 +19,13 @@
|
|||
#include "SmbiosView.h"
|
||||
|
||||
STATIC UINT8 mInit = 0;
|
||||
STATIC SMBIOS_TABLE_ENTRY_POINT *mSmbiosTable = NULL;
|
||||
STATIC UINT8 m64Init = 0;
|
||||
STATIC SMBIOS_TABLE_ENTRY_POINT *mSmbiosTable = NULL;
|
||||
STATIC SMBIOS_TABLE_3_0_ENTRY_POINT *mSmbios64BitTable = NULL;
|
||||
STATIC SMBIOS_STRUCTURE_POINTER m_SmbiosStruct;
|
||||
STATIC SMBIOS_STRUCTURE_POINTER *mSmbiosStruct = &m_SmbiosStruct;
|
||||
STATIC SMBIOS_STRUCTURE_POINTER m_Smbios64BitStruct;
|
||||
STATIC SMBIOS_STRUCTURE_POINTER *mSmbios64BitStruct = &m_Smbios64BitStruct;
|
||||
|
||||
/**
|
||||
Init the SMBIOS VIEW API's environment.
|
||||
|
@ -47,7 +51,6 @@ LibSmbiosInit (
|
|||
Status = GetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID**)&mSmbiosTable);
|
||||
|
||||
if (mSmbiosTable == NULL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_CANNOT_GET_TABLE), gShellDebug1HiiHandle);
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
@ -64,6 +67,46 @@ LibSmbiosInit (
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Init the SMBIOS VIEW API's environment.
|
||||
|
||||
@retval EFI_SUCCESS Successful to init the SMBIOS VIEW Lib.
|
||||
**/
|
||||
EFI_STATUS
|
||||
LibSmbios64BitInit (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// Init only once
|
||||
//
|
||||
if (m64Init == 1) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
//
|
||||
// Get SMBIOS table from System Configure table
|
||||
//
|
||||
Status = GetSystemConfigurationTable (&gEfiSmbios3TableGuid, (VOID**)&mSmbios64BitTable);
|
||||
|
||||
if (mSmbios64BitTable == NULL) {
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_GET_TABLE_ERROR), gShellDebug1HiiHandle, Status);
|
||||
return Status;
|
||||
}
|
||||
//
|
||||
// Init SMBIOS structure table address
|
||||
//
|
||||
mSmbios64BitStruct->Raw = (UINT8 *) (UINTN) (mSmbios64BitTable->TableAddress);
|
||||
|
||||
m64Init = 1;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Cleanup the Smbios information.
|
||||
**/
|
||||
|
@ -82,6 +125,24 @@ LibSmbiosCleanup (
|
|||
mInit = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
Cleanup the Smbios information.
|
||||
**/
|
||||
VOID
|
||||
LibSmbios64BitCleanup (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
//
|
||||
// Release resources
|
||||
//
|
||||
if (mSmbios64BitTable != NULL) {
|
||||
mSmbios64BitTable = NULL;
|
||||
}
|
||||
|
||||
m64Init = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
Get the entry point structure for the table.
|
||||
|
||||
|
@ -98,6 +159,22 @@ LibSmbiosGetEPS (
|
|||
*EntryPointStructure = mSmbiosTable;
|
||||
}
|
||||
|
||||
/**
|
||||
Get the entry point structure for the table.
|
||||
|
||||
@param[out] EntryPointStructure The pointer to populate.
|
||||
**/
|
||||
VOID
|
||||
LibSmbios64BitGetEPS (
|
||||
OUT SMBIOS_TABLE_3_0_ENTRY_POINT **EntryPointStructure
|
||||
)
|
||||
{
|
||||
//
|
||||
// return SMBIOS Table address
|
||||
//
|
||||
*EntryPointStructure = mSmbios64BitTable;
|
||||
}
|
||||
|
||||
/**
|
||||
Return SMBIOS string for the given string number.
|
||||
|
||||
|
@ -222,3 +299,75 @@ LibGetSmbiosStructure (
|
|||
return DMI_INVALID_HANDLE;
|
||||
}
|
||||
|
||||
/**
|
||||
Get SMBIOS structure for the given Handle,
|
||||
Handle is changed to the next handle or 0xFFFF when the end is
|
||||
reached or the handle is not found.
|
||||
|
||||
@param[in, out] Handle 0xFFFF: get the first structure
|
||||
Others: get a structure according to this value.
|
||||
@param[out] Buffer The pointer to the pointer to the structure.
|
||||
@param[out] Length Length of the structure.
|
||||
|
||||
@retval DMI_SUCCESS Handle is updated with next structure handle or
|
||||
0xFFFF(end-of-list).
|
||||
|
||||
@retval DMI_INVALID_HANDLE Handle is updated with first structure handle or
|
||||
0xFFFF(end-of-list).
|
||||
**/
|
||||
EFI_STATUS
|
||||
LibGetSmbios64BitStructure (
|
||||
IN OUT UINT16 *Handle,
|
||||
OUT UINT8 **Buffer,
|
||||
OUT UINT16 *Length
|
||||
)
|
||||
{
|
||||
SMBIOS_STRUCTURE_POINTER Smbios;
|
||||
SMBIOS_STRUCTURE_POINTER SmbiosEnd;
|
||||
UINT8 *Raw;
|
||||
|
||||
if (*Handle == INVALID_HANDLE) {
|
||||
*Handle = mSmbios64BitStruct->Hdr->Handle;
|
||||
return DMI_INVALID_HANDLE;
|
||||
}
|
||||
|
||||
if ((Buffer == NULL) || (Length == NULL)) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_NO_BUFF_LEN_SPEC), gShellDebug1HiiHandle);
|
||||
return DMI_INVALID_HANDLE;
|
||||
}
|
||||
|
||||
*Length = 0;
|
||||
Smbios.Hdr = mSmbios64BitStruct->Hdr;
|
||||
|
||||
SmbiosEnd.Raw = Smbios.Raw + mSmbios64BitTableLength;
|
||||
while (Smbios.Raw < SmbiosEnd.Raw) {
|
||||
if (Smbios.Hdr->Handle == *Handle) {
|
||||
Raw = Smbios.Raw;
|
||||
//
|
||||
// Walk to next structure
|
||||
//
|
||||
LibGetSmbiosString (&Smbios, (UINT16) (-1));
|
||||
//
|
||||
// Length = Next structure head - this structure head
|
||||
//
|
||||
*Length = (UINT16) (Smbios.Raw - Raw);
|
||||
*Buffer = Raw;
|
||||
//
|
||||
// update with the next structure handle.
|
||||
//
|
||||
if (Smbios.Raw < SmbiosEnd.Raw) {
|
||||
*Handle = Smbios.Hdr->Handle;
|
||||
} else {
|
||||
*Handle = INVALID_HANDLE;
|
||||
}
|
||||
return DMI_SUCCESS;
|
||||
}
|
||||
//
|
||||
// Walk to next structure
|
||||
//
|
||||
LibGetSmbiosString (&Smbios, (UINT16) (-1));
|
||||
}
|
||||
|
||||
*Handle = INVALID_HANDLE;
|
||||
return DMI_INVALID_HANDLE;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
API for SMBIOS Plug and Play functions, access to SMBIOS table and structures.
|
||||
|
||||
Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 2015, 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
|
||||
|
@ -40,7 +40,7 @@
|
|||
#define EFI_SMBIOSERR_UNSUPPORTED EFI_SMBIOSERR (4)
|
||||
|
||||
/**
|
||||
Init the SMBIOS VIEW API's environment.
|
||||
Init the SMBIOS VIEW API's environment for the 32-bit table..
|
||||
|
||||
@retval EFI_SUCCESS Successful to init the SMBIOS VIEW Lib.
|
||||
**/
|
||||
|
@ -49,6 +49,16 @@ LibSmbiosInit (
|
|||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Init the SMBIOS VIEW API's environment for the 64-bit table..
|
||||
|
||||
@retval EFI_SUCCESS Successful to init the SMBIOS VIEW Lib.
|
||||
**/
|
||||
EFI_STATUS
|
||||
LibSmbios64BitInit (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Cleanup the Smbios information.
|
||||
**/
|
||||
|
@ -57,6 +67,14 @@ LibSmbiosCleanup (
|
|||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Cleanup the Smbios information.
|
||||
**/
|
||||
VOID
|
||||
LibSmbios64BitCleanup (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get the entry point structure for the table.
|
||||
|
||||
|
@ -67,6 +85,16 @@ LibSmbiosGetEPS (
|
|||
OUT SMBIOS_TABLE_ENTRY_POINT **EntryPointStructure
|
||||
);
|
||||
|
||||
/**
|
||||
Get the entry point structure for the 64-bit table.
|
||||
|
||||
@param[out] EntryPointStructure The pointer to populate.
|
||||
**/
|
||||
VOID
|
||||
LibSmbios64BitGetEPS (
|
||||
OUT SMBIOS_TABLE_3_0_ENTRY_POINT **EntryPointStructure
|
||||
);
|
||||
|
||||
/**
|
||||
Return SMBIOS string for the given string number.
|
||||
|
||||
|
@ -105,4 +133,27 @@ LibGetSmbiosStructure (
|
|||
OUT UINT16 *Length
|
||||
);
|
||||
|
||||
/**
|
||||
Get SMBIOS structure for the given Handle in 64-bit table,
|
||||
Handle is changed to the next handle or 0xFFFF when the end is
|
||||
reached or the handle is not found.
|
||||
|
||||
@param[in, out] Handle 0xFFFF: get the first structure
|
||||
Others: get a structure according to this value.
|
||||
@param[out] Buffer The pointer to the pointer to the structure.
|
||||
@param[out] Length Length of the structure.
|
||||
|
||||
@retval DMI_SUCCESS Handle is updated with next structure handle or
|
||||
0xFFFF(end-of-list).
|
||||
|
||||
@retval DMI_INVALID_HANDLE Handle is updated with first structure handle or
|
||||
0xFFFF(end-of-list).
|
||||
**/
|
||||
EFI_STATUS
|
||||
LibGetSmbios64BitStructure (
|
||||
IN OUT UINT16 *Handle,
|
||||
OUT UINT8 **Buffer,
|
||||
OUT UINT16 *Length
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -199,6 +199,75 @@ SmbiosPrintEPSInfo (
|
|||
Print (L"\n");
|
||||
}
|
||||
|
||||
/**
|
||||
Print the info of 64-bit EPS(Entry Point Structure).
|
||||
|
||||
@param[in] SmbiosTable Pointer to the SMBIOS table entry point.
|
||||
@param[in] Option Display option.
|
||||
**/
|
||||
VOID
|
||||
Smbios64BitPrintEPSInfo (
|
||||
IN SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTable,
|
||||
IN UINT8 Option
|
||||
)
|
||||
{
|
||||
UINT8 Anchor[5];
|
||||
|
||||
if (SmbiosTable == NULL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_SMBIOSTABLE_NULL), gShellDebug1HiiHandle);
|
||||
return ;
|
||||
}
|
||||
|
||||
if (Option == SHOW_NONE) {
|
||||
return ;
|
||||
}
|
||||
|
||||
if (Option >= SHOW_NORMAL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_64_BIT_ENTRY_POINT_SIGN), gShellDebug1HiiHandle);
|
||||
|
||||
MemToString (Anchor, SmbiosTable->AnchorString, 5);
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ANCHOR_STR), gShellDebug1HiiHandle, Anchor);
|
||||
|
||||
ShellPrintHiiEx(-1,-1,NULL,
|
||||
STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_EPS_CHECKSUM),
|
||||
gShellDebug1HiiHandle,
|
||||
SmbiosTable->EntryPointStructureChecksum
|
||||
);
|
||||
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_LEN), gShellDebug1HiiHandle, SmbiosTable->EntryPointLength);
|
||||
|
||||
ShellPrintHiiEx(-1,-1,NULL,
|
||||
STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VERSION),
|
||||
gShellDebug1HiiHandle,
|
||||
SmbiosTable->MajorVersion,
|
||||
SmbiosTable->MinorVersion
|
||||
);
|
||||
|
||||
ShellPrintHiiEx(-1,-1,NULL,
|
||||
STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DOCREV),
|
||||
gShellDebug1HiiHandle,
|
||||
SmbiosTable->DocRev
|
||||
);
|
||||
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_MAX_SIZE), gShellDebug1HiiHandle, SmbiosTable->TableMaximumSize);
|
||||
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TABLE_ADDR), gShellDebug1HiiHandle, SmbiosTable->TableAddress);
|
||||
|
||||
}
|
||||
//
|
||||
// If SHOW_ALL, also print followings.
|
||||
//
|
||||
if (Option >= SHOW_DETAIL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,
|
||||
STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENTRY_POINT_REVISION),
|
||||
gShellDebug1HiiHandle,
|
||||
SmbiosTable->EntryPointRevision
|
||||
);
|
||||
}
|
||||
|
||||
Print (L"\n");
|
||||
}
|
||||
|
||||
/**
|
||||
This function print the content of the structure pointed by Struct.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Module to clarify the element info of the smbios structure.
|
||||
|
||||
Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 2015, 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
|
||||
|
@ -46,6 +46,18 @@ SmbiosPrintEPSInfo (
|
|||
IN UINT8 Option
|
||||
);
|
||||
|
||||
/**
|
||||
Print the info of 64-bit EPS(Entry Point Structure).
|
||||
|
||||
@param[in] SmbiosTable Pointer to the SMBIOS table entry point.
|
||||
@param[in] Option Display option.
|
||||
**/
|
||||
VOID
|
||||
Smbios64BitPrintEPSInfo (
|
||||
IN SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTable,
|
||||
IN UINT8 Option
|
||||
);
|
||||
|
||||
/**
|
||||
This function print the content of the structure pointed by Struct.
|
||||
|
||||
|
|
|
@ -21,10 +21,14 @@
|
|||
|
||||
UINT8 gShowType = SHOW_DETAIL;
|
||||
STATIC STRUCTURE_STATISTICS *mStatisticsTable = NULL;
|
||||
STATIC STRUCTURE_STATISTICS *mSmbios64BitStatisticsTable = NULL;
|
||||
|
||||
UINT8 SmbiosMajorVersion;
|
||||
UINT8 SmbiosMinorVersion;
|
||||
|
||||
UINTN mNumberOfSmbios64BitStructures;
|
||||
UINTN mSmbios64BitTableLength;
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-t", TypeValue},
|
||||
{L"-h", TypeValue},
|
||||
|
@ -49,15 +53,18 @@ ShellCommandRunSmbiosView (
|
|||
UINT8 StructType;
|
||||
UINT16 StructHandle;
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status1;
|
||||
EFI_STATUS Status2;
|
||||
BOOLEAN RandomView;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
CONST CHAR16 *Temp;
|
||||
|
||||
mStatisticsTable = NULL;
|
||||
Package = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
mStatisticsTable = NULL;
|
||||
mSmbios64BitStatisticsTable = NULL;
|
||||
Package = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
|
@ -92,57 +99,103 @@ ShellCommandRunSmbiosView (
|
|||
|
||||
//
|
||||
// Init Lib
|
||||
|
||||
Status = LibSmbiosInit ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
//
|
||||
// build statistics table
|
||||
//
|
||||
Status = InitSmbiosTableStatistics ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
Status1 = LibSmbiosInit ();
|
||||
Status2 = LibSmbios64BitInit ();
|
||||
if (EFI_ERROR (Status1) && EFI_ERROR (Status2)) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_CANNOT_GET_TABLE), gShellDebug1HiiHandle);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
StructType = STRUCTURE_TYPE_RANDOM;
|
||||
RandomView = TRUE;
|
||||
//
|
||||
// Initialize the StructHandle to be the first handle
|
||||
//
|
||||
StructHandle = INVALID_HANDLE;
|
||||
LibGetSmbiosStructure (&StructHandle, NULL, NULL);
|
||||
|
||||
Temp = ShellCommandLineGetValue(Package, L"-t");
|
||||
if (Temp != NULL) {
|
||||
StructType = (UINT8) ShellStrToUintn (Temp);
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetValue(Package, L"-h");
|
||||
if (Temp != NULL) {
|
||||
RandomView = FALSE;
|
||||
StructHandle = (UINT16) ShellStrToUintn(Temp);
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag(Package, L"-s")) {
|
||||
Status = DisplayStatisticsTable (SHOW_DETAIL);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
goto Done;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag(Package, L"-a")) {
|
||||
gShowType = SHOW_ALL;
|
||||
}
|
||||
//
|
||||
// Show SMBIOS structure information
|
||||
//
|
||||
Status = SMBiosView (StructType, StructHandle, gShowType, RandomView);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
|
||||
if (!EFI_ERROR (Status1)) {
|
||||
//
|
||||
// Initialize the StructHandle to be the first handle
|
||||
//
|
||||
StructHandle = INVALID_HANDLE;
|
||||
LibGetSmbiosStructure (&StructHandle, NULL, NULL);
|
||||
|
||||
Temp = ShellCommandLineGetValue(Package, L"-h");
|
||||
if (Temp != NULL) {
|
||||
RandomView = FALSE;
|
||||
StructHandle = (UINT16) ShellStrToUintn(Temp);
|
||||
}
|
||||
//
|
||||
// build statistics table
|
||||
//
|
||||
Status = InitSmbiosTableStatistics ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag(Package, L"-s")) {
|
||||
Status = DisplayStatisticsTable (SHOW_DETAIL);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
goto Show64Bit;
|
||||
}
|
||||
|
||||
//
|
||||
// Show SMBIOS structure information
|
||||
//
|
||||
Status = SMBiosView (StructType, StructHandle, gShowType, RandomView);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
}
|
||||
|
||||
Show64Bit:
|
||||
if (!EFI_ERROR (Status2)) {
|
||||
//
|
||||
// build statistics table
|
||||
//
|
||||
Status = InitSmbios64BitTableStatistics ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
//
|
||||
// Initialize the StructHandle to be the first handle
|
||||
//
|
||||
StructHandle = INVALID_HANDLE;
|
||||
LibGetSmbios64BitStructure (&StructHandle, NULL, NULL);
|
||||
|
||||
Temp = ShellCommandLineGetValue(Package, L"-h");
|
||||
if (Temp != NULL) {
|
||||
RandomView = FALSE;
|
||||
StructHandle = (UINT16) ShellStrToUintn(Temp);
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag(Package, L"-s")) {
|
||||
Status = DisplaySmbios64BitStatisticsTable (SHOW_DETAIL);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
goto Done;
|
||||
}
|
||||
|
||||
//
|
||||
// Show SMBIOS structure information
|
||||
//
|
||||
Status = SMBios64View (StructType, StructHandle, gShowType, RandomView);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -158,11 +211,20 @@ Done:
|
|||
mStatisticsTable = NULL;
|
||||
}
|
||||
|
||||
if (mSmbios64BitStatisticsTable != NULL) {
|
||||
//
|
||||
// Release statistics table
|
||||
//
|
||||
FreePool (mSmbios64BitStatisticsTable);
|
||||
mSmbios64BitStatisticsTable = NULL;
|
||||
}
|
||||
|
||||
if (Package != NULL) {
|
||||
ShellCommandLineFreeVarList (Package);
|
||||
}
|
||||
|
||||
LibSmbiosCleanup ();
|
||||
LibSmbios64BitCleanup ();
|
||||
|
||||
return ShellStatus;
|
||||
}
|
||||
|
@ -341,6 +403,179 @@ SMBiosView (
|
|||
return EFI_BAD_BUFFER_SIZE;
|
||||
}
|
||||
|
||||
/**
|
||||
Query all structures Data from SMBIOS table and Display
|
||||
the information to users as required display option.
|
||||
|
||||
@param[in] QueryType Structure type to view.
|
||||
@param[in] QueryHandle Structure handle to view.
|
||||
@param[in] Option Display option: none,outline,normal,detail.
|
||||
@param[in] RandomView Support for -h parameter.
|
||||
|
||||
@retval EFI_SUCCESS print is successful.
|
||||
@retval EFI_BAD_BUFFER_SIZE structure is out of the range of SMBIOS table.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
SMBios64View (
|
||||
IN UINT8 QueryType,
|
||||
IN UINT16 QueryHandle,
|
||||
IN UINT8 Option,
|
||||
IN BOOLEAN RandomView
|
||||
)
|
||||
{
|
||||
UINT16 Handle;
|
||||
UINT8 *Buffer;
|
||||
UINT16 Length;
|
||||
UINTN Index;
|
||||
SMBIOS_STRUCTURE_POINTER SmbiosStruct;
|
||||
SMBIOS_TABLE_3_0_ENTRY_POINT *SMBiosTable;
|
||||
|
||||
SMBiosTable = NULL;
|
||||
LibSmbios64BitGetEPS (&SMBiosTable);
|
||||
if (SMBiosTable == NULL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), gShellDebug1HiiHandle);
|
||||
return EFI_BAD_BUFFER_SIZE;
|
||||
}
|
||||
|
||||
if (CompareMem (SMBiosTable->AnchorString, "_SM3_", 5) == 0) {
|
||||
//
|
||||
// Have got SMBIOS table
|
||||
//
|
||||
Smbios64BitPrintEPSInfo (SMBiosTable, Option);
|
||||
|
||||
SmbiosMajorVersion = SMBiosTable->MajorVersion;
|
||||
SmbiosMinorVersion = SMBiosTable->MinorVersion;
|
||||
|
||||
ShellPrintEx(-1,-1,L"=========================================================\n");
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERY_STRUCT_COND), gShellDebug1HiiHandle);
|
||||
|
||||
if (QueryType == STRUCTURE_TYPE_RANDOM) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYTYPE_RANDOM), gShellDebug1HiiHandle);
|
||||
} else {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYTYPE), gShellDebug1HiiHandle, QueryType);
|
||||
}
|
||||
|
||||
if (RandomView) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYHANDLE_RANDOM), gShellDebug1HiiHandle);
|
||||
} else {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_QUERYHANDLE), gShellDebug1HiiHandle, QueryHandle);
|
||||
}
|
||||
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SHOWTYPE), gShellDebug1HiiHandle);
|
||||
ShellPrintEx(-1,-1,GetShowTypeString (gShowType));
|
||||
ShellPrintEx(-1,-1,L"\n\n");
|
||||
|
||||
/*
|
||||
//
|
||||
// Get internal commands, such as change options.
|
||||
//
|
||||
Status = WaitEnter ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
if (Status == EFI_ABORTED) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
*/
|
||||
|
||||
//
|
||||
// Searching and display structure info
|
||||
//
|
||||
Handle = QueryHandle;
|
||||
for (Index = 0; Index < mNumberOfSmbios64BitStructures; Index++) {
|
||||
//
|
||||
// if reach the end of table, break..
|
||||
//
|
||||
if (Handle == INVALID_HANDLE) {
|
||||
break;
|
||||
}
|
||||
//
|
||||
// handle then point to the next!
|
||||
//
|
||||
if (LibGetSmbios64BitStructure (&Handle, &Buffer, &Length) != DMI_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
|
||||
SmbiosStruct.Raw = Buffer;
|
||||
|
||||
//
|
||||
// if QueryType==Random, print this structure.
|
||||
// if QueryType!=Random, but Hdr->Type==QueryType, also print it.
|
||||
// only if QueryType != Random and Hdr->Type != QueryType, skiped it.
|
||||
//
|
||||
if (QueryType != STRUCTURE_TYPE_RANDOM && SmbiosStruct.Hdr->Type != QueryType) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ShellPrintEx(-1,-1,L"\n=========================================================\n");
|
||||
ShellPrintHiiEx(-1,-1,NULL,
|
||||
STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_TYPE_HANDLE_DUMP_STRUCT),
|
||||
gShellDebug1HiiHandle,
|
||||
SmbiosStruct.Hdr->Type,
|
||||
SmbiosStruct.Hdr->Handle
|
||||
);
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INDEX_LENGTH), gShellDebug1HiiHandle, Index, Length);
|
||||
//
|
||||
// Addr of structure in structure in table
|
||||
//
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ADDR), gShellDebug1HiiHandle, (UINTN) Buffer);
|
||||
DumpHex (0, 0, Length, Buffer);
|
||||
|
||||
/*
|
||||
//
|
||||
// Get internal commands, such as change options.
|
||||
//
|
||||
Status = WaitEnter ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
if (Status == EFI_ABORTED) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
*/
|
||||
|
||||
if (gShowType != SHOW_NONE) {
|
||||
//
|
||||
// Print structure information
|
||||
//
|
||||
SmbiosPrintStructure (&SmbiosStruct, gShowType);
|
||||
ShellPrintEx(-1,-1,L"\n");
|
||||
|
||||
/*
|
||||
//
|
||||
// Get internal commands, such as change options.
|
||||
//
|
||||
Status = WaitEnter ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
if (Status == EFI_ABORTED) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
*/
|
||||
}
|
||||
if (!RandomView) {
|
||||
break;
|
||||
}
|
||||
//
|
||||
// Support Execution Interrupt.
|
||||
//
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
return EFI_ABORTED;
|
||||
}
|
||||
}
|
||||
|
||||
ShellPrintEx(-1,-1,L"\n=========================================================\n");
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return EFI_BAD_BUFFER_SIZE;
|
||||
}
|
||||
|
||||
/**
|
||||
Function to initialize the global mStatisticsTable object.
|
||||
|
||||
|
@ -429,6 +664,153 @@ InitSmbiosTableStatistics (
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
@param[in] Smbios64EntryPoint SMBIOS 64-bit entry point.
|
||||
@param[out] NumberOfSmbios64Structures The number of structures in 64-bit SMBIOS table.
|
||||
@param[out] Smbios64TableLength The total length of 64-bit SMBIOS table.
|
||||
|
||||
@retval EFI_SUCCESS Calculation was successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
CalculateSmbios64BitStructureCountAndLength (
|
||||
SMBIOS_TABLE_3_0_ENTRY_POINT *Smbios64EntryPoint,
|
||||
UINTN *NumberOfSmbios64Structures,
|
||||
UINTN *Smbios64TableLength
|
||||
)
|
||||
{
|
||||
SMBIOS_STRUCTURE_POINTER Smbios;
|
||||
UINT8 *Raw;
|
||||
|
||||
*Smbios64TableLength = 0;
|
||||
*NumberOfSmbios64Structures = 0;
|
||||
|
||||
Smbios.Raw = (UINT8 *)(UINTN)(Smbios64EntryPoint->TableAddress);
|
||||
while (TRUE) {
|
||||
if (Smbios.Hdr->Type == 127) {
|
||||
//
|
||||
// Reach the end of table type 127
|
||||
//
|
||||
(*NumberOfSmbios64Structures)++;
|
||||
(*Smbios64TableLength) += sizeof (SMBIOS_STRUCTURE);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
Raw = Smbios.Raw;
|
||||
//
|
||||
// Walk to next structure
|
||||
//
|
||||
LibGetSmbiosString (&Smbios, (UINT16) (-1));
|
||||
//
|
||||
// Length = Next structure head - this structure head
|
||||
//
|
||||
(*Smbios64TableLength) += (UINTN) (Smbios.Raw - Raw);
|
||||
if ((*Smbios64TableLength) > Smbios64EntryPoint->TableMaximumSize) {
|
||||
//
|
||||
// The actual table length exceeds maximum table size,
|
||||
// There should be something wrong with SMBIOS table.
|
||||
//
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
(*NumberOfSmbios64Structures)++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Function to initialize the global mSmbios64BitStatisticsTable object.
|
||||
|
||||
@retval EFI_SUCCESS print is successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
InitSmbios64BitTableStatistics (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
UINT16 Handle;
|
||||
UINT8 *Buffer;
|
||||
UINT16 Length;
|
||||
UINT16 Offset;
|
||||
UINT16 Index;
|
||||
EFI_STATUS Status;
|
||||
SMBIOS_STRUCTURE_POINTER SmbiosStruct;
|
||||
SMBIOS_TABLE_3_0_ENTRY_POINT *SMBiosTable;
|
||||
STRUCTURE_STATISTICS *StatisticsPointer;
|
||||
|
||||
SMBiosTable = NULL;
|
||||
LibSmbios64BitGetEPS (&SMBiosTable);
|
||||
if (SMBiosTable == NULL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), gShellDebug1HiiHandle);
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
if (CompareMem (SMBiosTable->AnchorString, "_SM3_", 5) != 0) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_SMBIOS_TABLE), gShellDebug1HiiHandle);
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
//
|
||||
// Allocate memory to mSmbios64BitStatisticsTable
|
||||
//
|
||||
if (mSmbios64BitStatisticsTable != NULL) {
|
||||
FreePool (mSmbios64BitStatisticsTable);
|
||||
mSmbios64BitStatisticsTable = NULL;
|
||||
}
|
||||
//
|
||||
// Calculate number of smbios structures
|
||||
//
|
||||
Status = CalculateSmbios64BitStructureCountAndLength (SMBiosTable, &mNumberOfSmbios64BitStructures, &mSmbios64BitTableLength);
|
||||
if ((EFI_ERROR (Status)) || (mSmbios64BitTableLength > SMBiosTable->TableMaximumSize)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
mSmbios64BitStatisticsTable = (STRUCTURE_STATISTICS *) AllocateZeroPool (mNumberOfSmbios64BitStructures * sizeof (STRUCTURE_STATISTICS));
|
||||
|
||||
if (mSmbios64BitStatisticsTable == NULL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_OUT_OF_MEM), gShellDebug1HiiHandle);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
Offset = 0;
|
||||
StatisticsPointer = mSmbios64BitStatisticsTable;
|
||||
|
||||
//
|
||||
// search from the first one
|
||||
//
|
||||
Handle = INVALID_HANDLE;
|
||||
LibGetSmbios64BitStructure (&Handle, NULL, NULL);
|
||||
for (Index = 1; Index <= mNumberOfSmbios64BitStructures; Index++) {
|
||||
//
|
||||
// If reach the end of table, break..
|
||||
//
|
||||
if (Handle == INVALID_HANDLE) {
|
||||
break;
|
||||
}
|
||||
//
|
||||
// After LibGetSmbios64BitStructure(), handle then point to the next!
|
||||
//
|
||||
if (LibGetSmbios64BitStructure (&Handle, &Buffer, &Length) != DMI_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
|
||||
SmbiosStruct.Raw = Buffer;
|
||||
|
||||
//
|
||||
// general statistics
|
||||
//
|
||||
StatisticsPointer->Index = Index;
|
||||
StatisticsPointer->Type = SmbiosStruct.Hdr->Type;
|
||||
StatisticsPointer->Handle = SmbiosStruct.Hdr->Handle;
|
||||
StatisticsPointer->Length = Length;
|
||||
StatisticsPointer->Addr = Offset;
|
||||
|
||||
Offset = (UINT16) (Offset + Length);
|
||||
|
||||
StatisticsPointer = &mSmbios64BitStatisticsTable[Index];
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Function to display the global mStatisticsTable object.
|
||||
|
||||
|
@ -510,6 +892,87 @@ DisplayStatisticsTable (
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Function to display the global mSmbios64BitStatisticsTable object.
|
||||
|
||||
@param[in] Option ECHO, NORMAL, or DETAIL control the amount of detail displayed.
|
||||
|
||||
@retval EFI_SUCCESS print is successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
DisplaySmbios64BitStatisticsTable (
|
||||
IN UINT8 Option
|
||||
)
|
||||
{
|
||||
UINTN Index;
|
||||
UINTN Num;
|
||||
STRUCTURE_STATISTICS *StatisticsPointer;
|
||||
SMBIOS_TABLE_3_0_ENTRY_POINT *SMBiosTable;
|
||||
|
||||
SMBiosTable = NULL;
|
||||
if (Option < SHOW_OUTLINE) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
//
|
||||
// display EPS information firstly
|
||||
//
|
||||
LibSmbios64BitGetEPS (&SMBiosTable);
|
||||
if (SMBiosTable == NULL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_TABLE), gShellDebug1HiiHandle);
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
ShellPrintEx(-1,-1,L"\n============================================================\n");
|
||||
Smbios64BitPrintEPSInfo (SMBiosTable, Option);
|
||||
|
||||
if (Option < SHOW_NORMAL) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
if (mSmbios64BitStatisticsTable == NULL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_STATS), gShellDebug1HiiHandle);
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
ShellPrintEx(-1,-1,L"============================================================\n");
|
||||
StatisticsPointer = &mSmbios64BitStatisticsTable[0];
|
||||
Num = mNumberOfSmbios64BitStructures;
|
||||
//
|
||||
// display statistics table content
|
||||
//
|
||||
for (Index = 1; Index <= Num; Index++) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_INDEX), gShellDebug1HiiHandle, StatisticsPointer->Index);
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_TYPE), gShellDebug1HiiHandle, StatisticsPointer->Type);
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_HANDLE), gShellDebug1HiiHandle, StatisticsPointer->Handle);
|
||||
if (Option >= SHOW_DETAIL) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_OFFSET), gShellDebug1HiiHandle, StatisticsPointer->Addr);
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_LENGTH), gShellDebug1HiiHandle, StatisticsPointer->Length);
|
||||
}
|
||||
|
||||
ShellPrintEx(-1,-1,L"\n");
|
||||
StatisticsPointer = &mSmbios64BitStatisticsTable[Index];
|
||||
/*
|
||||
//
|
||||
// Display 20 lines and wait for a page break
|
||||
//
|
||||
if (Index % 20 == 0) {
|
||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_SMBIOSVIEW_ENTER_CONTINUE), gShellDebug1HiiHandle);
|
||||
Status = WaitEnter ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
if (Status == EFI_ABORTED) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
function to return a string of the detail level.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Tools of clarify the content of the smbios table.
|
||||
|
||||
Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2005 - 2015, 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
|
||||
|
@ -47,6 +47,27 @@ SMBiosView (
|
|||
IN BOOLEAN RandomView
|
||||
);
|
||||
|
||||
/**
|
||||
Query all structures Data from SMBIOS table and Display
|
||||
the information to users as required display option.
|
||||
|
||||
@param[in] QueryType Structure type to view.
|
||||
@param[in] QueryHandle Structure handle to view.
|
||||
@param[in] Option Display option: none,outline,normal,detail.
|
||||
@param[in] RandomView Support for -h parameter.
|
||||
|
||||
@retval EFI_SUCCESS print is successful.
|
||||
@retval EFI_BAD_BUFFER_SIZE structure is out of the range of SMBIOS table.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
SMBios64View (
|
||||
IN UINT8 QueryType,
|
||||
IN UINT16 QueryHandle,
|
||||
IN UINT8 Option,
|
||||
IN BOOLEAN RandomView
|
||||
);
|
||||
|
||||
/**
|
||||
Function to initialize the global mStatisticsTable object.
|
||||
|
||||
|
@ -58,6 +79,17 @@ InitSmbiosTableStatistics (
|
|||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Function to initialize the global mSmbios64BitStatisticsTable object.
|
||||
|
||||
@retval EFI_SUCCESS print is successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
InitSmbios64BitTableStatistics (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Function to display the global mStatisticsTable object.
|
||||
|
||||
|
@ -71,6 +103,19 @@ DisplayStatisticsTable (
|
|||
IN UINT8 Option
|
||||
);
|
||||
|
||||
/**
|
||||
Function to display the global mSmbios64BitStatisticsTable object.
|
||||
|
||||
@param[in] Option ECHO, NORMAL, or DETAIL control the amount of detail displayed.
|
||||
|
||||
@retval EFI_SUCCESS print is successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
DisplaySmbios64BitStatisticsTable (
|
||||
IN UINT8 Option
|
||||
);
|
||||
|
||||
/**
|
||||
function to return a string of the detail level.
|
||||
|
||||
|
@ -86,4 +131,6 @@ GetShowTypeString (
|
|||
|
||||
extern UINT8 gShowType;
|
||||
|
||||
extern UINTN mSmbios64BitTableLength;
|
||||
|
||||
#endif
|
||||
|
|
Binary file not shown.
|
@ -129,6 +129,7 @@
|
|||
[Guids]
|
||||
gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## GUID
|
||||
gEfiSmbiosTableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
||||
gEfiSmbios3TableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
||||
gEfiMpsTableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
||||
gEfiSalSystemTableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
||||
gEfiAcpi10TableGuid ## SOMETIMES_CONSUMES ## SystemTable
|
||||
|
|
Loading…
Reference in New Issue