| /** @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; | |
| } |