THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
\r
- Module Name: MemoryAllocationLib.c\r
-\r
**/\r
\r
\r
+#include <PiPei.h>\r
+\r
+\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/PeiServicesTablePointerLib.h>\r
+#include <Library/PeiServicesLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/DebugLib.h>\r
+\r
+#include "MemoryAllocationLibInternals.h"\r
+\r
/**\r
Allocates one or more 4KB pages of a certain memory type.\r
\r
{\r
EFI_STATUS Status;\r
EFI_PHYSICAL_ADDRESS Memory; \r
- EFI_PEI_SERVICES **PeiServices;\r
\r
if (Pages == 0) {\r
return NULL;\r
}\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
- Status = (*PeiServices)->AllocatePages (PeiServices, MemoryType, Pages, &Memory);\r
+ Status = PeiServicesAllocatePages (MemoryType, Pages, &Memory);\r
if (EFI_ERROR (Status)) {\r
Memory = 0;\r
}\r
)\r
{\r
EFI_STATUS Status;\r
- EFI_PEI_SERVICES **PeiServices;\r
VOID *Buffer;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
-\r
- Status = (*PeiServices)->AllocatePool (PeiServices, AllocationSize, &Buffer);\r
+ Status = PeiServicesAllocatePool (AllocationSize, &Buffer);\r
if (EFI_ERROR (Status)) {\r
Buffer = NULL;\r
}\r
allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there\r
is not enough memory remaining to satisfy the request, then NULL is returned.\r
If Buffer is NULL, then ASSERT().\r
- If AllocationSize is greater than (MAX_ADDRESS \96 Buffer + 1), then ASSERT(). \r
+ If AllocationSize is greater than (MAX_ADDRESS ? Buffer + 1), then ASSERT(). \r
\r
@param PoolType The type of pool to allocate.\r
@param AllocationSize The number of bytes to allocate and zero.\r
allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there\r
is not enough memory remaining to satisfy the request, then NULL is returned.\r
If Buffer is NULL, then ASSERT().\r
- If AllocationSize is greater than (MAX_ADDRESS \96 Buffer + 1), then ASSERT(). \r
+ If AllocationSize is greater than (MAX_ADDRESS ? Buffer + 1), then ASSERT(). \r
\r
@param AllocationSize The number of bytes to allocate and zero.\r
@param Buffer The buffer to copy to the allocated buffer.\r
allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there\r
is not enough memory remaining to satisfy the request, then NULL is returned.\r
If Buffer is NULL, then ASSERT().\r
- If AllocationSize is greater than (MAX_ADDRESS \96 Buffer + 1), then ASSERT(). \r
+ If AllocationSize is greater than (MAX_ADDRESS ? Buffer + 1), then ASSERT(). \r
\r
@param AllocationSize The number of bytes to allocate and zero.\r
@param Buffer The buffer to copy to the allocated buffer.\r
allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there\r
is not enough memory remaining to satisfy the request, then NULL is returned.\r
If Buffer is NULL, then ASSERT().\r
- If AllocationSize is greater than (MAX_ADDRESS \96 Buffer + 1), then ASSERT(). \r
+ If AllocationSize is greater than (MAX_ADDRESS ? Buffer + 1), then ASSERT(). \r
\r
@param AllocationSize The number of bytes to allocate and zero.\r
@param Buffer The buffer to copy to the allocated buffer.\r
// PEI phase does not support to free pool, so leave it as NOP.\r
//\r
}\r
+\r
+\r
+VOID\r
+EFIAPI\r
+SafeFreePool (\r
+ IN VOID *Buffer\r
+ )\r
+{\r
+ //\r
+ // PEI phase does not support to free pool, so leave it as NOP.\r
+ //\r
+}\r
+\r