/** @file\r
Library used for sorting routines.\r
\r
-Copyright (c) 2009, Intel Corporation<BR>\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
+ Copyright (c) 2009-2010, Intel Corporation. All rights reserved. <BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
\r
-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
+ 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
**/\r
\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/DebugLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
-#include <Library/SortLib.h> \r
+#include <Library/SortLib.h>\r
\r
STATIC EFI_DEVICE_PATH_TO_TEXT_PROTOCOL *mDevicePathToText = NULL;\r
STATIC EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;\r
\r
\r
/**\r
- Worker function for QuickSorting. This function is identical to PerformQuickSort, \r
- except that is uses the pre-allocated buffer so the in place sorting does not need to \r
+ Worker function for QuickSorting. This function is identical to PerformQuickSort,\r
+ except that is uses the pre-allocated buffer so the in place sorting does not need to\r
allocate and free buffers constantly.\r
\r
Each element must be equal sized.\r
on return a buffer of sorted elements\r
@param[in] Count the number of elements in the buffer to sort\r
@param[in] ElementSize Size of an element in bytes\r
- @param[in] CompareFunction The function to call to perform the comparison \r
+ @param[in] CompareFunction The function to call to perform the comparison\r
of any 2 elements\r
@param[in] Buffer Buffer of size ElementSize for use in swapping\r
**/\r
ASSERT(CompareFunction != NULL);\r
ASSERT(Buffer != NULL);\r
\r
- if ( Count < 2 \r
+ if ( Count < 2\r
|| ElementSize < 1\r
){\r
return;\r
// and everything "right" are above it\r
//\r
for ( LoopCount = 0\r
- ; LoopCount < Count -1 \r
+ ; LoopCount < Count -1\r
; LoopCount++\r
){\r
//\r
//\r
if (CompareFunction((VOID*)((UINT8*)BufferToSort+((LoopCount)*ElementSize)),Pivot) <= 0){\r
//\r
- // swap \r
+ // swap\r
//\r
CopyMem (Buffer, (UINT8*)BufferToSort+(NextSwapLocation*ElementSize), ElementSize);\r
CopyMem ((UINT8*)BufferToSort+(NextSwapLocation*ElementSize), (UINT8*)BufferToSort+((LoopCount)*ElementSize), ElementSize);\r
\r
//\r
// increment NextSwapLocation\r
- // \r
+ //\r
NextSwapLocation++;\r
}\r
}\r
CopyMem ((UINT8*)BufferToSort+(NextSwapLocation*ElementSize), Buffer, ElementSize);\r
\r
//\r
- // Now recurse on 2 paritial lists. neither of these will have the 'pivot' element \r
+ // Now recurse on 2 paritial lists. neither of these will have the 'pivot' element\r
// IE list is sorted left half, pivot element, sorted right half...\r
//\r
QuickSortWorker(\r
- BufferToSort, \r
- NextSwapLocation, \r
- ElementSize, \r
+ BufferToSort,\r
+ NextSwapLocation,\r
+ ElementSize,\r
CompareFunction,\r
Buffer);\r
\r
QuickSortWorker(\r
(UINT8 *)BufferToSort + (NextSwapLocation+1) * ElementSize,\r
- Count - NextSwapLocation - 1, \r
- ElementSize, \r
+ Count - NextSwapLocation - 1,\r
+ ElementSize,\r
CompareFunction,\r
Buffer);\r
\r
on return a buffer of sorted elements\r
@param[in] Count the number of elements in the buffer to sort\r
@param[in] ElementSize Size of an element in bytes\r
- @param[in] CompareFunction The function to call to perform the comparison \r
+ @param[in] CompareFunction The function to call to perform the comparison\r
of any 2 elements\r
**/\r
VOID\r
\r
@retval 0 Buffer1 equal to Buffer2\r
@return < 0 Buffer1 is less than Buffer2\r
- @return > 0 Buffer1 is greater than Buffer2 \r
+ @return > 0 Buffer1 is greater than Buffer2\r
**/\r
INTN\r
DevicePathCompare (\r
CHAR16 *TextPath2;\r
EFI_STATUS Status;\r
INTN RetVal;\r
- \r
+\r
DevicePath1 = *(EFI_DEVICE_PATH_PROTOCOL**)Buffer1;\r
DevicePath2 = *(EFI_DEVICE_PATH_PROTOCOL**)Buffer2;\r
\r
if (DevicePath2 == NULL) {\r
return 1;\r
}\r
- \r
+\r
if (mDevicePathToText == NULL) {\r
Status = gBS->LocateProtocol(\r
&gEfiDevicePathToTextProtocolGuid,\r
DevicePath2,\r
FALSE,\r
FALSE);\r
- \r
+\r
RetVal = mUnicodeCollation->StriColl(\r
mUnicodeCollation,\r
TextPath1,\r
\r
@retval 0 Buffer1 equal to Buffer2.\r
@return < 0 Buffer1 is less than Buffer2.\r
- @return > 0 Buffer1 is greater than Buffer2. \r
+ @return > 0 Buffer1 is greater than Buffer2.\r
**/\r
INTN\r
EFIAPI\r