diff options
-rw-r--r-- | ShellPkg/Application/ShellCTestApp/ShellCTestApp.c | 15 | ||||
-rw-r--r-- | ShellPkg/Include/Library/ShellCEntryLib.h | 35 | ||||
-rw-r--r-- | ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c | 21 |
3 files changed, 62 insertions, 9 deletions
diff --git a/ShellPkg/Application/ShellCTestApp/ShellCTestApp.c b/ShellPkg/Application/ShellCTestApp/ShellCTestApp.c index 44f50790c0..0a50278d7f 100644 --- a/ShellPkg/Application/ShellCTestApp/ShellCTestApp.c +++ b/ShellPkg/Application/ShellCTestApp/ShellCTestApp.c @@ -16,7 +16,22 @@ #include <Library/UefiLib.h>
#include <Library/DebugLib.h>
+#include <Library/ShellCEntryLib.h>
+/**
+ 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 ImageHandle The image handle of the UEFI Application.
+ @param SystemTable A pointer to the EFI System Table.
+
+ @retval 0 The application exited normally.
+ @retval Other An error occurred.
+
+**/
INTN
EFIAPI
ShellAppMain (
diff --git a/ShellPkg/Include/Library/ShellCEntryLib.h b/ShellPkg/Include/Library/ShellCEntryLib.h new file mode 100644 index 0000000000..5adbfdfce4 --- /dev/null +++ b/ShellPkg/Include/Library/ShellCEntryLib.h @@ -0,0 +1,35 @@ +/** @file + Provides application point extension for "C" style main funciton + +Copyright (c) 2006 - 2009, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +/** + 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 ImageHandle The image handle of the UEFI Application. + @param SystemTable A pointer to the EFI System Table. + + @retval 0 The application exited normally. + @retval Other An error occurred. + +**/ +INTN +EFIAPI +ShellAppMain ( + IN INTN Argc, + IN CHAR16 **Argv + ); + diff --git a/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c b/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c index ce41166573..43d429e6a5 100644 --- a/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c +++ b/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c @@ -18,6 +18,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include <Protocol/EfiShellInterface.h>
#include <Protocol/EfiShellParameters.h>
+#include <Library/ShellCEntryLib.h>
#include <Library/DebugLib.h>
INTN
@@ -28,17 +29,19 @@ ShellAppMain ( );
/**
- UEFI entry point for an application that will in turn call a C
- style ShellAppMain function.
+ UEFI entry point for an application that will in turn call the
+ ShellAppMain function which has parameters similar to a standard C
+ main function.
- This application must have a function defined as follows:
+ An application that uses UefiShellCEntryLib must have a ShellAppMain
+ function as prototyped in Include/Library/ShellCEntryLib.h.
+
+ @param ImageHandle The image handle of the UEFI Application.
+ @param SystemTable A pointer to the EFI System Table.
+
+ @retval EFI_SUCCESS The application exited normally.
+ @retval Other An error occurred.
- INTN
- EFIAPI
- ShellAppMain (
- IN INTN Argc,
- IN CHAR16 **Argv
- );
**/
EFI_STATUS
EFIAPI
|