]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Dxe/Library/Library.c
Clean up DxeCore to remove duplicate memory allocation & device path utility services...
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / Library / Library.c
index 18f0a9f589838154cebe6817069a8e77e00fa374..911fbb70b8a6f84d8fdeaeecdb42f299a7bd9d8d 100644 (file)
@@ -12,7 +12,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 **/\r
 \r
-#include <DxeMain.h>\r
+#include "DxeMain.h"\r
 \r
 UINTN mErrorLevel = DEBUG_ERROR | DEBUG_LOAD;\r
 \r
@@ -82,128 +82,9 @@ CoreReportProgressCode (
 }\r
 \r
 \r
-\r
-/**\r
-  Allocate pool of type EfiBootServicesData, the size is specified with AllocationSize.\r
-\r
-  @param  AllocationSize     Size to allocate.\r
-\r
-  @return Pointer of the allocated pool.\r
-\r
-**/\r
-VOID *\r
-CoreAllocateBootServicesPool (\r
-  IN  UINTN   AllocationSize\r
-  )\r
-{\r
-  VOID  *Memory;\r
-\r
-  CoreAllocatePool (EfiBootServicesData, AllocationSize, &Memory);\r
-  return Memory;\r
-}\r
-\r
-\r
-\r
-/**\r
-  Allocate pool of type EfiBootServicesData and zero it, the size is specified with AllocationSize.\r
-\r
-  @param  AllocationSize     Size to allocate.\r
-\r
-  @return Pointer of the allocated pool.\r
-\r
-**/\r
-VOID *\r
-CoreAllocateZeroBootServicesPool (\r
-  IN  UINTN   AllocationSize\r
-  )\r
-{\r
-  VOID  *Memory;\r
-\r
-  Memory = CoreAllocateBootServicesPool (AllocationSize);\r
-  ZeroMem (Memory, (Memory == NULL) ? 0 : AllocationSize);\r
-  return Memory;\r
-}\r
-\r
-\r
-\r
-/**\r
-  Allocate pool of specified size with EfiBootServicesData type, and copy specified buffer to this pool.\r
-\r
-  @param  AllocationSize     Size to allocate.\r
-  @param  Buffer             Specified buffer that will be copy to the allocated\r
-                             pool\r
-\r
-  @return Pointer of the allocated pool.\r
-\r
-**/\r
-VOID *\r
-CoreAllocateCopyPool (\r
-  IN  UINTN   AllocationSize,\r
-  IN  VOID    *Buffer\r
-  )\r
-{\r
-  VOID  *Memory;\r
-\r
-  Memory = CoreAllocateBootServicesPool (AllocationSize);\r
-  CopyMem (Memory, Buffer, (Memory == NULL) ? 0 : AllocationSize);\r
-\r
-  return Memory;\r
-}\r
-\r
-\r
-\r
-\r
-/**\r
-  Allocate pool of type EfiRuntimeServicesData, the size is specified with AllocationSize.\r
-\r
-  @param  AllocationSize     Size to allocate.\r
-\r
-  @return Pointer of the allocated pool.\r
-\r
-**/\r
-VOID *\r
-CoreAllocateRuntimePool (\r
-  IN  UINTN   AllocationSize\r
-  )\r
-{\r
-  VOID  *Memory;\r
-\r
-  CoreAllocatePool (EfiRuntimeServicesData, AllocationSize, &Memory);\r
-  return Memory;\r
-}\r
-\r
-\r
-/**\r
-  Allocate pool of specified size with EfiRuntimeServicesData type, and copy specified buffer to this pool.\r
-\r
-  @param  AllocationSize     Size to allocate.\r
-  @param  Buffer             Specified buffer that will be copy to the allocated\r
-                             pool\r
-\r
-  @return Pointer of the allocated pool.\r
-\r
-**/\r
-VOID *\r
-CoreAllocateRuntimeCopyPool (\r
-  IN  UINTN   AllocationSize,\r
-  IN  VOID    *Buffer\r
-  )\r
-{\r
-  VOID  *Memory;\r
-\r
-  Memory = CoreAllocateRuntimePool (AllocationSize);\r
-  CopyMem (Memory, Buffer, (Memory == NULL) ? 0 : AllocationSize);\r
-\r
-  return Memory;\r
-}\r
-\r
-\r
-\r
 //\r
 // Lock Stuff\r
 //\r
-\r
-\r
 /**\r
   Initialize a basic mutual exclusion lock.   Each lock\r
   provides mutual exclusion access at it's task priority\r
@@ -290,159 +171,6 @@ CoreReleaseLock (
 }\r
 \r
 \r
-\r
-/**\r
-  Calculate the size of a whole device path.\r
-\r
-  @param  DevicePath         The pointer to the device path data.\r
-\r
-  @return Size of device path data structure..\r
-\r
-**/\r
-UINTN\r
-CoreDevicePathSize (\r
-  IN EFI_DEVICE_PATH_PROTOCOL  *DevicePath\r
-  )\r
-{\r
-  EFI_DEVICE_PATH_PROTOCOL     *Start;\r
-\r
-  if (DevicePath == NULL) {\r
-    return 0;\r
-  }\r
-\r
-  //\r
-  // Search for the end of the device path structure\r
-  //\r
-  Start = DevicePath;\r
-  while (!EfiIsDevicePathEnd (DevicePath)) {\r
-    DevicePath = EfiNextDevicePathNode (DevicePath);\r
-  }\r
-\r
-  //\r
-  // Compute the size and add back in the size of the end device path structure\r
-  //\r
-  return ((UINTN) DevicePath - (UINTN) Start) + sizeof(EFI_DEVICE_PATH_PROTOCOL);\r
-}\r
-\r
-\r
-\r
-/**\r
-  Return TRUE is this is a multi instance device path.\r
-\r
-  @param  DevicePath         A pointer to a device path data structure.\r
-\r
-  @retval TRUE               If DevicePath is multi instance. FALSE - If\r
-                             DevicePath is not multi instance.\r
-\r
-**/\r
-BOOLEAN\r
-CoreIsDevicePathMultiInstance (\r
-  IN EFI_DEVICE_PATH_PROTOCOL  *DevicePath\r
-  )\r
-{\r
-  EFI_DEVICE_PATH_PROTOCOL *Node;\r
-\r
-  if (DevicePath == NULL) {\r
-    return FALSE;\r
-  }\r
-\r
-  Node = DevicePath;\r
-  while (!EfiIsDevicePathEnd (Node)) {\r
-    if (EfiIsDevicePathEndInstance (Node)) {\r
-      return TRUE;\r
-    }\r
-    Node = EfiNextDevicePathNode (Node);\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-\r
-\r
-\r
-/**\r
-  Duplicate a new device path data structure from the old one.\r
-\r
-  @param  DevicePath         A pointer to a device path data structure.\r
-\r
-  @return A pointer to the new allocated device path data.\r
-  @return Caller must free the memory used by DevicePath if it is no longer needed.\r
-\r
-**/\r
-EFI_DEVICE_PATH_PROTOCOL *\r
-CoreDuplicateDevicePath (\r
-  IN EFI_DEVICE_PATH_PROTOCOL   *DevicePath\r
-  )\r
-{\r
-  EFI_DEVICE_PATH_PROTOCOL  *NewDevicePath;\r
-  UINTN                     Size;\r
-\r
-  if (DevicePath == NULL) {\r
-    return NULL;\r
-  }\r
-\r
-  //\r
-  // Compute the size\r
-  //\r
-  Size = CoreDevicePathSize (DevicePath);\r
-\r
-  //\r
-  // Allocate space for duplicate device path\r
-  //\r
-  NewDevicePath = CoreAllocateCopyPool (Size, DevicePath);\r
-\r
-  return NewDevicePath;\r
-}\r
-\r
-\r
-/**\r
-  Function is used to append a Src1 and Src2 together.\r
-\r
-  @param  Src1               A pointer to a device path data structure.\r
-  @param  Src2               A pointer to a device path data structure.\r
-\r
-  @return A pointer to the new device path is returned.\r
-  @return NULL is returned if space for the new device path could not be allocated from pool.\r
-  @return It is up to the caller to free the memory used by Src1 and Src2 if they are no longer needed.\r
-\r
-**/\r
-EFI_DEVICE_PATH_PROTOCOL *\r
-CoreAppendDevicePath (\r
-  IN EFI_DEVICE_PATH_PROTOCOL  *Src1,\r
-  IN EFI_DEVICE_PATH_PROTOCOL  *Src2\r
-  )\r
-{\r
-  UINTN                       Size;\r
-  UINTN                       Size1;\r
-  UINTN                       Size2;\r
-  EFI_DEVICE_PATH_PROTOCOL    *NewDevicePath;\r
-  EFI_DEVICE_PATH_PROTOCOL    *SecondDevicePath;\r
-\r
-  if (Src1 == NULL && Src2 == NULL) {\r
-    return NULL;\r
-  }\r
-\r
-  //\r
-  // Allocate space for the combined device path. It only has one end node of\r
-  // length EFI_DEVICE_PATH_PROTOCOL\r
-  //\r
-  Size1 = CoreDevicePathSize (Src1);\r
-  Size2 = CoreDevicePathSize (Src2);\r
-  Size = Size1 + Size2 - sizeof(EFI_DEVICE_PATH_PROTOCOL);\r
-\r
-  NewDevicePath = CoreAllocateCopyPool (Size, Src1);\r
-  if (NewDevicePath != NULL) {\r
-\r
-     //\r
-     // Over write Src1 EndNode and do the copy\r
-     //\r
-     SecondDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)((CHAR8 *)NewDevicePath + (Size1 - sizeof(EFI_DEVICE_PATH_PROTOCOL)));\r
-     CopyMem (SecondDevicePath, Src2, Size2);\r
-  }\r
-\r
-  return NewDevicePath;\r
-}\r
-\r
-\r
 /**\r
   Create a protocol notification event and return it.\r
 \r