summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ShellPkg/Application/ShellCTestApp/ShellCTestApp.c15
-rw-r--r--ShellPkg/Include/Library/ShellCEntryLib.h35
-rw-r--r--ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c21
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