TianoCore EDK2 master
Loading...
Searching...
No Matches
UefiSortLib.c File Reference

Go to the source code of this file.

Macros

#define USL_FREE_NON_NULL(Pointer)
 

Functions

VOID EFIAPI PerformQuickSort (IN OUT VOID *BufferToSort, IN CONST UINTN Count, IN CONST UINTN ElementSize, IN SORT_COMPARE CompareFunction)
 
INTN EFIAPI DevicePathCompare (IN CONST VOID *Buffer1, IN CONST VOID *Buffer2)
 
INTN EFIAPI StringNoCaseCompare (IN CONST VOID *Buffer1, IN CONST VOID *Buffer2)
 
INTN EFIAPI StringCompare (IN CONST VOID *Buffer1, IN CONST VOID *Buffer2)
 

Variables

STATIC EFI_UNICODE_COLLATION_PROTOCOLmUnicodeCollation = NULL
 

Detailed Description

Library used for sorting routines.

Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file UefiSortLib.c.

Macro Definition Documentation

◆ USL_FREE_NON_NULL

#define USL_FREE_NON_NULL (   Pointer)
Value:
{ \
if ((Pointer) != NULL) { \
FreePool((Pointer)); \
(Pointer) = NULL; \
} \
}
#define NULL
Definition: Base.h:319

Definition at line 24 of file UefiSortLib.c.

Function Documentation

◆ DevicePathCompare()

INTN EFIAPI DevicePathCompare ( IN CONST VOID *  Buffer1,
IN CONST VOID *  Buffer2 
)

Function to compare 2 device paths for use in QuickSort.

Parameters
[in]Buffer1pointer to Device Path poiner to compare
[in]Buffer2pointer to second DevicePath pointer to compare
Return values
0Buffer1 equal to Buffer2
<0Buffer1 is less than Buffer2
>0Buffer1 is greater than Buffer2

Definition at line 91 of file UefiSortLib.c.

◆ PerformQuickSort()

VOID EFIAPI PerformQuickSort ( IN OUT VOID *  BufferToSort,
IN CONST UINTN  Count,
IN CONST UINTN  ElementSize,
IN SORT_COMPARE  CompareFunction 
)

Function to perform a Quick Sort alogrithm on a buffer of comparable elements.

Each element must be equal sized.

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.

Parameters
[in,out]BufferToSorton call a Buffer of (possibly sorted) elements on return a buffer of sorted elements
[in]Countthe number of elements in the buffer to sort
[in]ElementSizeSize of an element in bytes
[in]CompareFunctionThe function to call to perform the comparison of any 2 elements

Definition at line 52 of file UefiSortLib.c.

◆ StringCompare()

INTN EFIAPI StringCompare ( IN CONST VOID *  Buffer1,
IN CONST VOID *  Buffer2 
)

Function to compare 2 strings.

Parameters
[in]Buffer1Pointer to String to compare (CHAR16**).
[in]Buffer2Pointer to second String to compare (CHAR16**).
Return values
0Buffer1 equal to Buffer2.
<0Buffer1 is less than Buffer2.
>0Buffer1 is greater than Buffer2.

Definition at line 206 of file UefiSortLib.c.

◆ StringNoCaseCompare()

INTN EFIAPI StringNoCaseCompare ( IN CONST VOID *  Buffer1,
IN CONST VOID *  Buffer2 
)

Function to compare 2 strings without regard to case of the characters.

Parameters
[in]Buffer1Pointer to String to compare.
[in]Buffer2Pointer to second String to compare.
Return values
0Buffer1 equal to Buffer2.
<0Buffer1 is less than Buffer2.
>0Buffer1 is greater than Buffer2.

Definition at line 170 of file UefiSortLib.c.

Variable Documentation

◆ mUnicodeCollation

Definition at line 22 of file UefiSortLib.c.