/** @file | |
This is a test application that demonstrates how to use the sorting functions. | |
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#include <Uefi.h> | |
#include <Library/UefiLib.h> | |
#include <Library/DebugLib.h> | |
#include <Library/ShellCEntryLib.h> | |
#include <Library/SortLib.h> | |
/** | |
Test comparator. | |
@param[in] b1 The first INTN | |
@param[in] b2 The other INTN | |
@retval 0 They are the same. | |
@retval -1 b1 is less than b2 | |
@retval 1 b1 is greater then b2 | |
**/ | |
INTN | |
EFIAPI | |
Test(CONST VOID *b1, CONST VOID *b2) | |
{ | |
if (*(INTN*)b1 == *(INTN*)b2) { | |
return (0); | |
} | |
if (*(INTN*)b1 < *(INTN*)b2) { | |
return(-1); | |
} | |
return (1); | |
} | |
/** | |
UEFI application entry point which has an interface similar to a | |
standard C main function. | |
The ShellCEntryLib library instance wrappers the actual UEFI application | |
entry point and calls this ShellAppMain function. | |
@param Argc Argument count | |
@param Argv The parsed arguments | |
@retval 0 The application exited normally. | |
@retval Other An error occurred. | |
**/ | |
INTN | |
EFIAPI | |
ShellAppMain ( | |
IN UINTN Argc, | |
IN CHAR16 **Argv | |
) | |
{ | |
INTN Array[10]; | |
Array[0] = 2; | |
Array[1] = 3; | |
Array[2] = 4; | |
Array[3] = 1; | |
Array[4] = 5; | |
Array[5] = 6; | |
Array[6] = 7; | |
Array[7] = 8; | |
Array[8] = 1; | |
Array[9] = 5; | |
Print(L"Array = %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\r\n", Array[0],Array[1],Array[2],Array[3],Array[4],Array[5],Array[6],Array[7],Array[8],Array[9]); | |
PerformQuickSort(Array, 10, sizeof(INTN), Test); | |
Print(L"POST-SORT\r\n"); | |
Print(L"Array = %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\r\n", Array[0],Array[1],Array[2],Array[3],Array[4],Array[5],Array[6],Array[7],Array[8],Array[9]); | |
return 0; | |
} |