2 Library used for sorting and comparison routines.
4 Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved. <BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef __SORT_LIB_H__
16 #define __SORT_LIB_H__
19 Prototype for comparison function for any two element types.
21 @param[in] Buffer1 The pointer to first buffer.
22 @param[in] Buffer2 The pointer to second buffer.
24 @retval 0 Buffer1 equal to Buffer2.
25 @return <0 Buffer1 is less than Buffer2.
26 @return >0 Buffer1 is greater than Buffer2.
30 (EFIAPI
*SORT_COMPARE
)(
31 IN CONST VOID
*Buffer1
,
32 IN CONST VOID
*Buffer2
36 Function to perform a Quick Sort on a buffer of comparable elements.
38 Each element must be equally sized.
40 If BufferToSort is NULL, then ASSERT.
41 If CompareFunction is NULL, then ASSERT.
43 If Count is < 2 , then perform no action.
44 If Size is < 1 , then perform no action.
46 @param[in, out] BufferToSort On call, a Buffer of (possibly sorted) elements;
47 on return, a buffer of sorted elements.
48 @param[in] Count The number of elements in the buffer to sort.
49 @param[in] ElementSize The size of an element in bytes.
50 @param[in] CompareFunction The function to call to perform the comparison
56 IN OUT VOID
*BufferToSort
,
58 IN CONST UINTN ElementSize
,
59 IN SORT_COMPARE CompareFunction
64 Function to compare 2 device paths for use as CompareFunction.
66 @param[in] Buffer1 The pointer to Device Path to compare.
67 @param[in] Buffer2 The pointer to second DevicePath to compare.
69 @retval 0 Buffer1 equal to Buffer2.
70 @return < 0 Buffer1 is less than Buffer2.
71 @return > 0 Buffer1 is greater than Buffer2.
76 IN CONST VOID
*Buffer1
,
77 IN CONST VOID
*Buffer2
81 Function to compare 2 strings without regard to case of the characters.
83 @param[in] Buffer1 The pointer to String to compare (CHAR16**).
84 @param[in] Buffer2 The pointer to second String to compare (CHAR16**).
86 @retval 0 Buffer1 equal to Buffer2.
87 @return < 0 Buffer1 is less than Buffer2.
88 @return > 0 Buffer1 is greater than Buffer2.
93 IN CONST VOID
*Buffer1
,
94 IN CONST VOID
*Buffer2
98 Function to compare 2 strings.
100 @param[in] Buffer1 The pointer to String to compare (CHAR16**).
101 @param[in] Buffer2 The pointer to second String to compare (CHAR16**).
103 @retval 0 Buffer1 equal to Buffer2.
104 @return < 0 Buffer1 is less than Buffer2.
105 @return > 0 Buffer1 is greater than Buffer2.
110 IN CONST VOID
*Buffer1
,
111 IN CONST VOID
*Buffer2
114 #endif //__SORT_LIB_H__