/* If Buffer was not allocated with a pool allocation function in the Memory Allocation Library, then ASSERT(). */
VOID EFIAPI FreePool(IN VOID *Buffer)
/* If Buffer was not allocated with a pool allocation function in the Memory Allocation Library, then ASSERT(). */
VOID EFIAPI FreePool(IN VOID *Buffer)
{
  EFI_STATUS  Status;
  if (BufferInSmram (Buffer)) {
    Status = gSmst->SmmFreePool (Buffer);
  } else {
    Status = gBS->FreePool (Buffer);
  }
  ASSERT_EFI_ERROR (Status);
}