Rework AcpChecksumTable() routine into AcpValidateAcpiTable()

This commit is contained in:
Rafal Kupiec 2024-06-03 23:31:33 +02:00
parent 54b7e46f1b
commit db5d6c42c9
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
2 changed files with 14 additions and 14 deletions

View File

@ -159,7 +159,7 @@ AcGetAcpiTable(IN CONST UINT Signature,
if(TableHeader->Signature != ACPI_FADT_SIGNATURE || TableHeader->Revision > 2)
{
/* Validate table checksum */
if(AcpChecksumTable(TableHeader, TableHeader->Length) != 0)
if(!AcpValidateAcpiTable(TableHeader, TableHeader->Length))
{
/* Checksum mismatch, return error */
return STATUS_EFI_CRC_ERROR;
@ -230,7 +230,7 @@ AcGetRsdpTable(OUT PVOID *AcpiTable)
/* Get RSDP (ACPI 1.0) table from system configuration tables */
Status = XtLdrProtocol->Util.GetConfigurationTable(&AcpiGuid, &RsdpTable);
if(Status != STATUS_EFI_SUCCESS || AcpChecksumTable(RsdpTable, 20) != 0)
if(Status != STATUS_EFI_SUCCESS || !AcpValidateAcpiTable(RsdpTable, 20))
{
/* RSDP not found or checksum mismatch */
*AcpiTable = NULL;
@ -262,7 +262,7 @@ AcGetSMBiosTable(OUT PVOID *SmBiosTable)
/* Get SMBIOS table from system configuration tables */
Status = XtLdrProtocol->Util.GetConfigurationTable(&SmBiosGuid, (PVOID)&SmBios);
if(Status != STATUS_EFI_SUCCESS || AcpChecksumTable(SmBios, SmBios->Length) != 0)
if(Status != STATUS_EFI_SUCCESS || !AcpValidateAcpiTable(SmBios, SmBios->Length))
{
/* SMBIOS not found or checksum mismatch */
*SmBiosTable = NULL;
@ -294,7 +294,7 @@ AcGetSMBios3Table(OUT PVOID *SmBiosTable)
/* Get SMBIOS3 table from system configuration tables */
Status = XtLdrProtocol->Util.GetConfigurationTable(&SmBios3Guid, (PVOID)&SmBios);
if(Status != STATUS_EFI_SUCCESS || AcpChecksumTable(SmBios, SmBios->Length) != 0)
if(Status != STATUS_EFI_SUCCESS || !AcpValidateAcpiTable(SmBios, SmBios->Length))
{
/* SMBIOS3 not found or checksum mismatch */
*SmBiosTable = NULL;
@ -326,7 +326,7 @@ AcGetXsdpTable(OUT PVOID *AcpiTable)
/* Get XSDP (ACPI 2.0) from system configuration tables */
Status = XtLdrProtocol->Util.GetConfigurationTable(&AcpiGuid, &XsdpTable);
if(Status != STATUS_EFI_SUCCESS || AcpChecksumTable(XsdpTable, 36) != 0)
if(Status != STATUS_EFI_SUCCESS || !AcpValidateAcpiTable(XsdpTable, 36))
{
/* XSDP not found or checksum mismatch */
*AcpiTable = NULL;
@ -339,7 +339,7 @@ AcGetXsdpTable(OUT PVOID *AcpiTable)
}
/**
* Checksums a given ACPI table.
* Validates given ACPI table by calculating its checksum.
*
* @param Buffer
* Supplies a pointer to the table to checksum.
@ -347,12 +347,12 @@ AcGetXsdpTable(OUT PVOID *AcpiTable)
* @param Size
* Supplies the size of the table, in bytes.
*
* @return This routine returns the calculated checksum.
* @return This routine returns TRUE if the table is valid, or FALSE otherwise.
*/
XTCDECL
UCHAR
AcpChecksumTable(IN PVOID Buffer,
IN UINT_PTR Size)
BOOLEAN
AcpValidateAcpiTable(IN PVOID Buffer,
IN UINT_PTR Size)
{
PUCHAR Pointer;
UCHAR Sum;
@ -370,7 +370,7 @@ AcpChecksumTable(IN PVOID Buffer,
}
/* Return calculated checksum */
return Sum;
return (Sum == 0) ? TRUE : FALSE;
}
/**

View File

@ -45,9 +45,9 @@ EFI_STATUS
AcGetXsdpTable(OUT PVOID *AcpiTable);
XTCDECL
UCHAR
AcpChecksumTable(IN PVOID Buffer,
IN UINT_PTR Size);
BOOLEAN
AcpValidateAcpiTable(IN PVOID Buffer,
IN UINT_PTR Size);
XTCDECL
EFI_STATUS