mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-30 17:14:07 +02:00
cleanup SmbiosLib.h definitions, and the code that depends on them.
signed-off-by:andrewfish reviewed-by:mikekinney git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12970 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
eefe286b7b
commit
8fa6b23c49
@ -22,15 +22,42 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include <Protocol/Smbios.h>
|
#include <Protocol/Smbios.h>
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Cache copy of the SMBIOS Protocol pointer
|
||||||
|
///
|
||||||
|
extern EFI_SMBIOS_PROTOCOL *gSmbios;
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Template for SMBIOS table initialization.
|
||||||
|
/// The SMBIOS_TABLE_STRING types in the formated area must match the
|
||||||
|
/// StringArray sequene.
|
||||||
|
///
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
//
|
||||||
|
// formatted area of a given SMBIOS record
|
||||||
|
//
|
||||||
SMBIOS_STRUCTURE *Entry;
|
SMBIOS_STRUCTURE *Entry;
|
||||||
|
//
|
||||||
|
// NULL terminated array of ASCII strings to be added to the SMBIOS record.
|
||||||
|
//
|
||||||
CHAR8 **StringArray;
|
CHAR8 **StringArray;
|
||||||
} SMBIOS_TEMPLATE_ENTRY;
|
} SMBIOS_TEMPLATE_ENTRY;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create an initial SMBIOS Table from an array of SMBIOS_TEMPLATE_ENTRY
|
||||||
|
entries. SMBIOS_TEMPLATE_ENTRY.NULL indicates the end of the table.
|
||||||
|
|
||||||
|
@param Template Array of SMBIOS_TEMPLATE_ENTRY entries.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS New SMBIOS tables were created.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES New SMBIOS tables were not created.
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
InitializeSmbiosTableFromTemplate (
|
EFIAPI
|
||||||
IN SMBIOS_TEMPLATE_ENTRY *template
|
SmbiosLibInitializeFromTemplate (
|
||||||
|
IN SMBIOS_TEMPLATE_ENTRY *Template
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -61,15 +88,17 @@ InitializeSmbiosTableFromTemplate (
|
|||||||
@param StringArray Array of strings to convert to an SMBIOS string pack.
|
@param StringArray Array of strings to convert to an SMBIOS string pack.
|
||||||
NULL is OK.
|
NULL is OK.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS New SmbiosEntry was added to SMBIOS table.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES SmbiosEntry was not added.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
CreateSmbiosEntry (
|
EFIAPI
|
||||||
|
SmbiosLibCreateEntry (
|
||||||
IN SMBIOS_STRUCTURE *SmbiosEntry,
|
IN SMBIOS_STRUCTURE *SmbiosEntry,
|
||||||
IN CHAR8 **StringArray
|
IN CHAR8 **StringArray
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Update the string associated with an existing SMBIOS record.
|
Update the string associated with an existing SMBIOS record.
|
||||||
|
|
||||||
@ -86,7 +115,8 @@ CreateSmbiosEntry (
|
|||||||
@retval EFI_NOT_FOUND The StringNumber.is not valid for this SMBIOS record.
|
@retval EFI_NOT_FOUND The StringNumber.is not valid for this SMBIOS record.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SmbiosUpdateString (
|
EFIAPI
|
||||||
|
SmbiosLibUpdateString (
|
||||||
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
||||||
IN SMBIOS_TABLE_STRING StringNumber,
|
IN SMBIOS_TABLE_STRING StringNumber,
|
||||||
IN CHAR8 *String
|
IN CHAR8 *String
|
||||||
@ -108,7 +138,8 @@ SmbiosUpdateString (
|
|||||||
@retval EFI_NOT_FOUND The StringNumber.is not valid for this SMBIOS record.
|
@retval EFI_NOT_FOUND The StringNumber.is not valid for this SMBIOS record.
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SmbiosUpdateUnicodeString (
|
EFIAPI
|
||||||
|
SmbiosLibUpdateUnicodeString (
|
||||||
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
||||||
IN SMBIOS_TABLE_STRING StringNumber,
|
IN SMBIOS_TABLE_STRING StringNumber,
|
||||||
IN CHAR16 *String
|
IN CHAR16 *String
|
||||||
@ -124,7 +155,7 @@ SmbiosUpdateUnicodeString (
|
|||||||
@retval Other Pointer to matching SMBIOS string.
|
@retval Other Pointer to matching SMBIOS string.
|
||||||
**/
|
**/
|
||||||
CHAR8 *
|
CHAR8 *
|
||||||
SmbiosReadString (
|
SmbiosLibReadString (
|
||||||
IN SMBIOS_STRUCTURE *Header,
|
IN SMBIOS_STRUCTURE *Header,
|
||||||
IN UINTN Instance
|
IN UINTN Instance
|
||||||
);
|
);
|
||||||
@ -142,7 +173,7 @@ SmbiosReadString (
|
|||||||
**/
|
**/
|
||||||
SMBIOS_STRUCTURE *
|
SMBIOS_STRUCTURE *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
SmbiosGetRecord (
|
SmbiosLibGetRecord (
|
||||||
IN EFI_SMBIOS_TYPE Type,
|
IN EFI_SMBIOS_TYPE Type,
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
OUT EFI_SMBIOS_HANDLE *SmbiosHandle
|
OUT EFI_SMBIOS_HANDLE *SmbiosHandle
|
||||||
@ -160,17 +191,11 @@ SmbiosGetRecord (
|
|||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
SmbiosRemove (
|
SmbiosLibRemove (
|
||||||
OUT EFI_SMBIOS_HANDLE SmbiosHandle
|
OUT EFI_SMBIOS_HANDLE SmbiosHandle
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
SmbiosGetVersion (
|
|
||||||
OUT UINT8 *SmbiosMajorVersion,
|
|
||||||
OUT UINT8 *SmbiosMinorVersion
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -28,9 +28,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
EFI_SMBIOS_PROTOCOL *gSmbios = NULL;
|
EFI_SMBIOS_PROTOCOL *gSmbios = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create an initial SMBIOS Table from an array of SMBIOS_TEMPLATE_ENTRY
|
||||||
|
entries. SMBIOS_TEMPLATE_ENTRY.NULL indicates the end of the table.
|
||||||
|
|
||||||
|
@param Template Array of SMBIOS_TEMPLATE_ENTRY entries.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS New SMBIOS tables were created.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES New SMBIOS tables were not created.
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InitializeSmbiosTableFromTemplate (
|
SmbiosLibInitializeFromTemplate (
|
||||||
IN SMBIOS_TEMPLATE_ENTRY *Template
|
IN SMBIOS_TEMPLATE_ENTRY *Template
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -42,7 +51,7 @@ InitializeSmbiosTableFromTemplate (
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (Index = 0; Template[Index].Entry != NULL; Index++) {
|
for (Index = 0; Template[Index].Entry != NULL; Index++) {
|
||||||
Status = CreateSmbiosEntry (Template[Index].Entry, Template[Index].StringArray);
|
Status = SmbiosLibCreateEntry (Template[Index].Entry, Template[Index].StringArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
@ -79,7 +88,7 @@ InitializeSmbiosTableFromTemplate (
|
|||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
CreateSmbiosEntry (
|
SmbiosLibCreateEntry (
|
||||||
IN SMBIOS_STRUCTURE *SmbiosEntry,
|
IN SMBIOS_STRUCTURE *SmbiosEntry,
|
||||||
IN CHAR8 **StringArray
|
IN CHAR8 **StringArray
|
||||||
)
|
)
|
||||||
@ -156,7 +165,7 @@ CreateSmbiosEntry (
|
|||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
SmbiosUpdateString (
|
SmbiosLibUpdateString (
|
||||||
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
||||||
IN SMBIOS_TABLE_STRING StringNumber,
|
IN SMBIOS_TABLE_STRING StringNumber,
|
||||||
IN CHAR8 *String
|
IN CHAR8 *String
|
||||||
@ -195,7 +204,7 @@ SmbiosUpdateString (
|
|||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
SmbiosUpdateUnicodeString (
|
SmbiosLibUpdateUnicodeString (
|
||||||
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
IN EFI_SMBIOS_HANDLE SmbiosHandle,
|
||||||
IN SMBIOS_TABLE_STRING StringNumber,
|
IN SMBIOS_TABLE_STRING StringNumber,
|
||||||
IN CHAR16 *String
|
IN CHAR16 *String
|
||||||
@ -238,7 +247,7 @@ SmbiosUpdateUnicodeString (
|
|||||||
@retval Other Pointer to matching SMBIOS string.
|
@retval Other Pointer to matching SMBIOS string.
|
||||||
**/
|
**/
|
||||||
CHAR8 *
|
CHAR8 *
|
||||||
SmbiosReadString (
|
SmbiosLibReadString (
|
||||||
IN SMBIOS_STRUCTURE *Header,
|
IN SMBIOS_STRUCTURE *Header,
|
||||||
IN UINTN Instance
|
IN UINTN Instance
|
||||||
)
|
)
|
||||||
@ -273,7 +282,7 @@ SmbiosReadString (
|
|||||||
**/
|
**/
|
||||||
SMBIOS_STRUCTURE *
|
SMBIOS_STRUCTURE *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
SmbiosGetRecord (
|
SmbiosLibGetRecord (
|
||||||
IN EFI_SMBIOS_TYPE Type,
|
IN EFI_SMBIOS_TYPE Type,
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
OUT EFI_SMBIOS_HANDLE *SmbiosHandle
|
OUT EFI_SMBIOS_HANDLE *SmbiosHandle
|
||||||
@ -311,7 +320,7 @@ SmbiosGetRecord (
|
|||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
SmbiosRemove (
|
SmbiosLibRemove (
|
||||||
OUT EFI_SMBIOS_HANDLE SmbiosHandle
|
OUT EFI_SMBIOS_HANDLE SmbiosHandle
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -319,26 +328,9 @@ SmbiosRemove (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
SmbiosGetVersion (
|
|
||||||
OUT UINT8 *SmbiosMajorVersion,
|
|
||||||
OUT UINT8 *SmbiosMinorVersion
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (SmbiosMajorVersion != NULL) {
|
|
||||||
*SmbiosMajorVersion = gSmbios->MajorVersion;
|
|
||||||
}
|
|
||||||
if (SmbiosMinorVersion != NULL) {
|
|
||||||
*SmbiosMinorVersion = gSmbios->MinorVersion;
|
|
||||||
}
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
|
|
||||||
@param ImageHandle ImageHandle of the loaded driver.
|
@param ImageHandle ImageHandle of the loaded driver.
|
||||||
@param SystemTable Pointer to the EFI System Table.
|
@param SystemTable Pointer to the EFI System Table.
|
||||||
|
|
||||||
|
@ -48,13 +48,13 @@ CreatePlatformSmbiosMemoryRecords (
|
|||||||
EFI_SMBIOS_HANDLE PhyscialMemoryArrayHandle;
|
EFI_SMBIOS_HANDLE PhyscialMemoryArrayHandle;
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
EFI_SMBIOS_HANDLE SmbiosHandle;
|
||||||
|
|
||||||
Smbios16.Hdr = SmbiosGetRecord (EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, 0, &PhyscialMemoryArrayHandle);
|
Smbios16.Hdr = SmbiosLibGetRecord (EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, 0, &PhyscialMemoryArrayHandle);
|
||||||
if (Smbios16.Hdr == NULL) {
|
if (Smbios16.Hdr == NULL) {
|
||||||
// Only make a Type19 entry if a Type16 entry exists.
|
// Only make a Type19 entry if a Type16 entry exists.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Smbios17.Hdr = SmbiosGetRecord (EFI_SMBIOS_TYPE_MEMORY_DEVICE, 0, &SmbiosHandle);
|
Smbios17.Hdr = SmbiosLibGetRecord (EFI_SMBIOS_TYPE_MEMORY_DEVICE, 0, &SmbiosHandle);
|
||||||
if (Smbios17.Hdr == NULL) {
|
if (Smbios17.Hdr == NULL) {
|
||||||
// if type17 exits update with type16 Smbios handle
|
// if type17 exits update with type16 Smbios handle
|
||||||
Smbios17.Type17->MemoryArrayHandle = PhyscialMemoryArrayHandle;
|
Smbios17.Type17->MemoryArrayHandle = PhyscialMemoryArrayHandle;
|
||||||
@ -70,7 +70,7 @@ CreatePlatformSmbiosMemoryRecords (
|
|||||||
HobPtr.ResourceDescriptor->PhysicalStart +
|
HobPtr.ResourceDescriptor->PhysicalStart +
|
||||||
HobPtr.ResourceDescriptor->ResourceLength - 1;
|
HobPtr.ResourceDescriptor->ResourceLength - 1;
|
||||||
|
|
||||||
CreateSmbiosEntry ((SMBIOS_STRUCTURE *)&gSmbiosType19Template, NULL);
|
SmbiosLibCreateEntry ((SMBIOS_STRUCTURE *)&gSmbiosType19Template, NULL);
|
||||||
}
|
}
|
||||||
HobPtr.Raw = GET_NEXT_HOB (HobPtr);
|
HobPtr.Raw = GET_NEXT_HOB (HobPtr);
|
||||||
}
|
}
|
||||||
@ -96,32 +96,27 @@ PlatfomrSmbiosDriverEntryPoint (
|
|||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
EFI_SMBIOS_HANDLE SmbiosHandle;
|
||||||
SMBIOS_STRUCTURE_POINTER Smbios;
|
SMBIOS_STRUCTURE_POINTER Smbios;
|
||||||
UINT8 SmbiosMajorVersion;
|
|
||||||
UINT8 SmbiosMinorVersion;
|
|
||||||
|
|
||||||
Status = SmbiosGetVersion (&SmbiosMajorVersion, &SmbiosMinorVersion);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
// Phase 0 - Patch table to make SMBIOS 2.7 structures smaller to conform
|
// Phase 0 - Patch table to make SMBIOS 2.7 structures smaller to conform
|
||||||
// to an early version of the specification.
|
// to an early version of the specification.
|
||||||
|
|
||||||
// Phase 1 - Initialize SMBIOS tables from template
|
// Phase 1 - Initialize SMBIOS tables from template
|
||||||
Status = InitializeSmbiosTableFromTemplate (gSmbiosTemplate);
|
Status = SmbiosLibInitializeFromTemplate (gSmbiosTemplate);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
// Phase 2 - Patch SMBIOS table entries
|
// Phase 2 - Patch SMBIOS table entries
|
||||||
|
|
||||||
Smbios.Hdr = SmbiosGetRecord (EFI_SMBIOS_TYPE_BIOS_INFORMATION, 0, &SmbiosHandle);
|
Smbios.Hdr = SmbiosLibGetRecord (EFI_SMBIOS_TYPE_BIOS_INFORMATION, 0, &SmbiosHandle);
|
||||||
if (Smbios.Type0 != NULL) {
|
if (Smbios.Type0 != NULL) {
|
||||||
// 64K * (n+1) bytes
|
// 64K * (n+1) bytes
|
||||||
Smbios.Type0->BiosSize = (UINT8)DivU64x32 (FixedPcdGet64 (PcdEmuFirmwareFdSize), 64*1024) - 1;
|
Smbios.Type0->BiosSize = (UINT8)DivU64x32 (FixedPcdGet64 (PcdEmuFirmwareFdSize), 64*1024) - 1;
|
||||||
|
|
||||||
SmbiosUpdateUnicodeString (
|
SmbiosLibUpdateUnicodeString (
|
||||||
SmbiosHandle,
|
SmbiosHandle,
|
||||||
Smbios.Type0->BiosVersion,
|
Smbios.Type0->BiosVersion,
|
||||||
(CHAR16 *) PcdGetPtr (PcdFirmwareVersionString)
|
(CHAR16 *) PcdGetPtr (PcdFirmwareVersionString)
|
||||||
);
|
);
|
||||||
SmbiosUpdateUnicodeString (
|
SmbiosLibUpdateUnicodeString (
|
||||||
SmbiosHandle,
|
SmbiosHandle,
|
||||||
Smbios.Type0->BiosReleaseDate,
|
Smbios.Type0->BiosReleaseDate,
|
||||||
(CHAR16 *) PcdGetPtr (PcdFirmwareReleaseDateString)
|
(CHAR16 *) PcdGetPtr (PcdFirmwareReleaseDateString)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user