Implementation in
"MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c":
InstallAcpiTable()
SetAcpiTable(... Checksum=TRUE ...)
AddTableToList(... Checksum=TRUE ...)
AcpiPlatformChecksum()
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13543
6f19259b-4bc3-4df7-8a09-
765794883524
-/**\r
- This function calculates and updates an UINT8 checksum.\r
-\r
- @param Buffer Pointer to buffer to checksum\r
- @param Size Number of bytes to checksum\r
-\r
-**/\r
-VOID\r
-AcpiPlatformChecksum (\r
- IN UINT8 *Buffer,\r
- IN UINTN Size\r
- )\r
-{\r
- UINTN ChecksumOffset;\r
-\r
- ChecksumOffset = OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER, Checksum);\r
-\r
- //\r
- // Set checksum to 0 first\r
- //\r
- Buffer[ChecksumOffset] = 0;\r
-\r
- //\r
- // Update checksum value\r
- //\r
- Buffer[ChecksumOffset] = CalculateCheckSum8(Buffer, Size);\r
-}\r
-\r
/**\r
Find ACPI tables in an FV and parses them. This function is useful for QEMU and KVM.\r
\r
/**\r
Find ACPI tables in an FV and parses them. This function is useful for QEMU and KVM.\r
\r
TableSize = ((EFI_ACPI_DESCRIPTION_HEADER *) CurrentTable)->Length;\r
ASSERT (Size >= TableSize);\r
\r
TableSize = ((EFI_ACPI_DESCRIPTION_HEADER *) CurrentTable)->Length;\r
ASSERT (Size >= TableSize);\r
\r
- //\r
- // Checksum ACPI table\r
- //\r
- AcpiPlatformChecksum ((UINT8*)CurrentTable, TableSize);\r
-\r
//\r
// Install ACPI table\r
//\r
//\r
// Install ACPI table\r
//\r