From 9c4ac31cca01b4a503c36616770ea3157bf3bb9e Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Wed, 27 Aug 2008 14:29:23 +0000 Subject: Clean up DxeCore to remove duplicate memory allocation & device path utility services in Library.c.DxeCore should use MemoryAllocationLib & DevicePathLib for these API. Minor cleanup the coding style: #include should be changed to #include "DxeMain.h" since "DxeMain.h" is not pubic header fie. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5742 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Core/Dxe/Library/Library.c | 274 +------------------------------- 1 file changed, 1 insertion(+), 273 deletions(-) (limited to 'MdeModulePkg/Core/Dxe/Library') diff --git a/MdeModulePkg/Core/Dxe/Library/Library.c b/MdeModulePkg/Core/Dxe/Library/Library.c index 18f0a9f589..911fbb70b8 100644 --- a/MdeModulePkg/Core/Dxe/Library/Library.c +++ b/MdeModulePkg/Core/Dxe/Library/Library.c @@ -12,7 +12,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ -#include +#include "DxeMain.h" UINTN mErrorLevel = DEBUG_ERROR | DEBUG_LOAD; @@ -82,128 +82,9 @@ CoreReportProgressCode ( } - -/** - Allocate pool of type EfiBootServicesData, the size is specified with AllocationSize. - - @param AllocationSize Size to allocate. - - @return Pointer of the allocated pool. - -**/ -VOID * -CoreAllocateBootServicesPool ( - IN UINTN AllocationSize - ) -{ - VOID *Memory; - - CoreAllocatePool (EfiBootServicesData, AllocationSize, &Memory); - return Memory; -} - - - -/** - Allocate pool of type EfiBootServicesData and zero it, the size is specified with AllocationSize. - - @param AllocationSize Size to allocate. - - @return Pointer of the allocated pool. - -**/ -VOID * -CoreAllocateZeroBootServicesPool ( - IN UINTN AllocationSize - ) -{ - VOID *Memory; - - Memory = CoreAllocateBootServicesPool (AllocationSize); - ZeroMem (Memory, (Memory == NULL) ? 0 : AllocationSize); - return Memory; -} - - - -/** - Allocate pool of specified size with EfiBootServicesData type, and copy specified buffer to this pool. - - @param AllocationSize Size to allocate. - @param Buffer Specified buffer that will be copy to the allocated - pool - - @return Pointer of the allocated pool. - -**/ -VOID * -CoreAllocateCopyPool ( - IN UINTN AllocationSize, - IN VOID *Buffer - ) -{ - VOID *Memory; - - Memory = CoreAllocateBootServicesPool (AllocationSize); - CopyMem (Memory, Buffer, (Memory == NULL) ? 0 : AllocationSize); - - return Memory; -} - - - - -/** - Allocate pool of type EfiRuntimeServicesData, the size is specified with AllocationSize. - - @param AllocationSize Size to allocate. - - @return Pointer of the allocated pool. - -**/ -VOID * -CoreAllocateRuntimePool ( - IN UINTN AllocationSize - ) -{ - VOID *Memory; - - CoreAllocatePool (EfiRuntimeServicesData, AllocationSize, &Memory); - return Memory; -} - - -/** - Allocate pool of specified size with EfiRuntimeServicesData type, and copy specified buffer to this pool. - - @param AllocationSize Size to allocate. - @param Buffer Specified buffer that will be copy to the allocated - pool - - @return Pointer of the allocated pool. - -**/ -VOID * -CoreAllocateRuntimeCopyPool ( - IN UINTN AllocationSize, - IN VOID *Buffer - ) -{ - VOID *Memory; - - Memory = CoreAllocateRuntimePool (AllocationSize); - CopyMem (Memory, Buffer, (Memory == NULL) ? 0 : AllocationSize); - - return Memory; -} - - - // // Lock Stuff // - - /** Initialize a basic mutual exclusion lock. Each lock provides mutual exclusion access at it's task priority @@ -290,159 +171,6 @@ CoreReleaseLock ( } - -/** - Calculate the size of a whole device path. - - @param DevicePath The pointer to the device path data. - - @return Size of device path data structure.. - -**/ -UINTN -CoreDevicePathSize ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath - ) -{ - EFI_DEVICE_PATH_PROTOCOL *Start; - - if (DevicePath == NULL) { - return 0; - } - - // - // Search for the end of the device path structure - // - Start = DevicePath; - while (!EfiIsDevicePathEnd (DevicePath)) { - DevicePath = EfiNextDevicePathNode (DevicePath); - } - - // - // Compute the size and add back in the size of the end device path structure - // - return ((UINTN) DevicePath - (UINTN) Start) + sizeof(EFI_DEVICE_PATH_PROTOCOL); -} - - - -/** - Return TRUE is this is a multi instance device path. - - @param DevicePath A pointer to a device path data structure. - - @retval TRUE If DevicePath is multi instance. FALSE - If - DevicePath is not multi instance. - -**/ -BOOLEAN -CoreIsDevicePathMultiInstance ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath - ) -{ - EFI_DEVICE_PATH_PROTOCOL *Node; - - if (DevicePath == NULL) { - return FALSE; - } - - Node = DevicePath; - while (!EfiIsDevicePathEnd (Node)) { - if (EfiIsDevicePathEndInstance (Node)) { - return TRUE; - } - Node = EfiNextDevicePathNode (Node); - } - return FALSE; -} - - - - -/** - Duplicate a new device path data structure from the old one. - - @param DevicePath A pointer to a device path data structure. - - @return A pointer to the new allocated device path data. - @return Caller must free the memory used by DevicePath if it is no longer needed. - -**/ -EFI_DEVICE_PATH_PROTOCOL * -CoreDuplicateDevicePath ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath - ) -{ - EFI_DEVICE_PATH_PROTOCOL *NewDevicePath; - UINTN Size; - - if (DevicePath == NULL) { - return NULL; - } - - // - // Compute the size - // - Size = CoreDevicePathSize (DevicePath); - - // - // Allocate space for duplicate device path - // - NewDevicePath = CoreAllocateCopyPool (Size, DevicePath); - - return NewDevicePath; -} - - -/** - Function is used to append a Src1 and Src2 together. - - @param Src1 A pointer to a device path data structure. - @param Src2 A pointer to a device path data structure. - - @return A pointer to the new device path is returned. - @return NULL is returned if space for the new device path could not be allocated from pool. - @return It is up to the caller to free the memory used by Src1 and Src2 if they are no longer needed. - -**/ -EFI_DEVICE_PATH_PROTOCOL * -CoreAppendDevicePath ( - IN EFI_DEVICE_PATH_PROTOCOL *Src1, - IN EFI_DEVICE_PATH_PROTOCOL *Src2 - ) -{ - UINTN Size; - UINTN Size1; - UINTN Size2; - EFI_DEVICE_PATH_PROTOCOL *NewDevicePath; - EFI_DEVICE_PATH_PROTOCOL *SecondDevicePath; - - if (Src1 == NULL && Src2 == NULL) { - return NULL; - } - - // - // Allocate space for the combined device path. It only has one end node of - // length EFI_DEVICE_PATH_PROTOCOL - // - Size1 = CoreDevicePathSize (Src1); - Size2 = CoreDevicePathSize (Src2); - Size = Size1 + Size2 - sizeof(EFI_DEVICE_PATH_PROTOCOL); - - NewDevicePath = CoreAllocateCopyPool (Size, Src1); - if (NewDevicePath != NULL) { - - // - // Over write Src1 EndNode and do the copy - // - SecondDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)((CHAR8 *)NewDevicePath + (Size1 - sizeof(EFI_DEVICE_PATH_PROTOCOL))); - CopyMem (SecondDevicePath, Src2, Size2); - } - - return NewDevicePath; -} - - /** Create a protocol notification event and return it. -- cgit v1.2.3