diff options
Diffstat (limited to '')
-rw-r--r-- | src/VBox/Devices/EFI/Firmware/ShellPkg/Application/ShellSortTestApp/ShellSortTestApp.c | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/ShellPkg/Application/ShellSortTestApp/ShellSortTestApp.c b/src/VBox/Devices/EFI/Firmware/ShellPkg/Application/ShellSortTestApp/ShellSortTestApp.c new file mode 100644 index 00000000..177edcc2 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/ShellPkg/Application/ShellSortTestApp/ShellSortTestApp.c @@ -0,0 +1,77 @@ +/** @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; +} |