X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=ShellPkg%2FInclude%2FLibrary%2FSortLib.h;h=a3e0fd9bec877f10eb09c0c5169936561d06850c;hp=276199457234f5e4473b2921496be1d23753076f;hb=4ff7e37b4f7e336a8ecb7080b8f48eef4b52d396;hpb=a31bd33cf8089c0b0219a41afb06cf9b462a0ee3 diff --git a/ShellPkg/Include/Library/SortLib.h b/ShellPkg/Include/Library/SortLib.h index 2761994572..a3e0fd9bec 100644 --- a/ShellPkg/Include/Library/SortLib.h +++ b/ShellPkg/Include/Library/SortLib.h @@ -1,35 +1,35 @@ /** @file Library used for sorting and comparison routines. -Copyright (c) 2009, Intel Corporation
-All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php + Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
+ This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ -#if !defined(__SORT_LIB_H__) +#ifndef __SORT_LIB_H__ #define __SORT_LIB_H__ /** - Prototype for comparison function for any 2 element types. + Prototype for comparison function for any two element types. - @param[in] Buffer1 Pointer to first buffer. - @param[in] Buffer2 Pointer to second buffer. + @param[in] Buffer1 The pointer to first buffer. + @param[in] Buffer2 The pointer to second buffer. @retval 0 Buffer1 equal to Buffer2. - @return < 0 Buffer1 is less than Buffer2. - @return > 0 Buffer1 is greater than Buffer2. + @return <0 Buffer1 is less than Buffer2. + @return >0 Buffer1 is greater than Buffer2. **/ typedef INTN (EFIAPI *SORT_COMPARE)( - IN VOID *Buffer1, - IN VOID *Buffer2 + IN CONST VOID *Buffer1, + IN CONST VOID *Buffer2 ); /** @@ -40,39 +40,75 @@ INTN If BufferToSort is NULL, then ASSERT. If CompareFunction is NULL, then ASSERT. - If Count is < 2 then perform no action. - If Size is < 1 then perform no action. + If Count is < 2 , then perform no action. + If Size is < 1 , then perform no action. - @param[in,out] BufferToSort On call a Buffer of (possibly sorted) elements - on return a buffer of sorted elements. - @param[in] Count The number of elements in the buffer to sort - @param[in] ElementSize Size of an element in bytes. - @param[in] CompareFunction The function to call to perform the comparison - of any 2 elements. + @param[in, out] BufferToSort On call, a Buffer of (possibly sorted) elements; + on return, a buffer of sorted elements. + @param[in] Count The number of elements in the buffer to sort. + @param[in] ElementSize The size of an element in bytes. + @param[in] CompareFunction The function to call to perform the comparison + of any two elements. **/ VOID EFIAPI PerformQuickSort ( - IN OUT VOID *BufferToSort, - IN CONST UINTN Count, - IN CONST UINTN ElementSize, - IN SORT_COMPARE CompareFunction + IN OUT VOID *BufferToSort, + IN CONST UINTN Count, + IN CONST UINTN ElementSize, + IN SORT_COMPARE CompareFunction ); /** Function to compare 2 device paths for use as CompareFunction. - @param[in] Buffer1 pointer to Device Path to compare - @param[in] Buffer2 pointer to second DevicePath to compare + @param[in] Buffer1 The pointer to Device Path to compare. + @param[in] Buffer2 The pointer to second DevicePath to compare. - @retval 0 Buffer1 equal to Buffer2 - @return < 0 Buffer1 is less than Buffer2 - @return > 0 Buffer1 is greater than Buffer2 + @retval 0 Buffer1 equal to Buffer2. + @return < 0 Buffer1 is less than Buffer2. + @return > 0 Buffer1 is greater than Buffer2. **/ INTN +EFIAPI DevicePathCompare ( - IN VOID *Buffer1, - IN VOID *Buffer2 + IN CONST VOID *Buffer1, + IN CONST VOID *Buffer2 + ); + +/** + Function to compare 2 strings without regard to case of the characters. + + @param[in] Buffer1 The pointer to String to compare (CHAR16**). + @param[in] Buffer2 The pointer to second String to compare (CHAR16**). + + @retval 0 Buffer1 equal to Buffer2. + @return < 0 Buffer1 is less than Buffer2. + @return > 0 Buffer1 is greater than Buffer2. +**/ +INTN +EFIAPI +StringNoCaseCompare ( + IN CONST VOID *Buffer1, + IN CONST VOID *Buffer2 ); + +/** + Function to compare 2 strings. + + @param[in] Buffer1 The pointer to String to compare (CHAR16**). + @param[in] Buffer2 The pointer to second String to compare (CHAR16**). + + @retval 0 Buffer1 equal to Buffer2. + @return < 0 Buffer1 is less than Buffer2. + @return > 0 Buffer1 is greater than Buffer2. +**/ +INTN +EFIAPI +StringCompare ( + IN CONST VOID *Buffer1, + IN CONST VOID *Buffer2 + ); + #endif //__SORT_LIB_H__