\r
**/\r
\r
+#include <Library/UefiBootServicesTableLib.h>\r
#include "FaultTolerantWrite.h"\r
EFI_EVENT mFvbRegistration = NULL;\r
\r
\r
return EFI_SUCCESS;\r
}\r
+\r
+/**\r
+ Internal implementation of CRC32. Depending on the execution context\r
+ (traditional SMM or DXE vs standalone MM), this function is implemented\r
+ via a call to the CalculateCrc32 () boot service, or via a library\r
+ call.\r
+\r
+ If Buffer is NULL, then ASSERT().\r
+ If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().\r
+\r
+ @param[in] Buffer A pointer to the buffer on which the 32-bit CRC is to be computed.\r
+ @param[in] Length The number of bytes in the buffer Data.\r
+\r
+ @retval Crc32 The 32-bit CRC was computed for the data buffer.\r
+\r
+**/\r
+UINT32\r
+FtwCalculateCrc32 (\r
+ IN VOID *Buffer,\r
+ IN UINTN Length\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ UINT32 ReturnValue;\r
+\r
+ Status = gBS->CalculateCrc32 (Buffer, Length, &ReturnValue);\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
+ return ReturnValue;\r
+}\r