#include <Protocol/EfiShellInterface.h>\r
#include <Protocol/EfiShellParameters.h>\r
\r
+#include <Library/ShellCEntryLib.h>\r
#include <Library/DebugLib.h>\r
\r
INTN\r
);\r
\r
/**\r
- UEFI entry point for an application that will in turn call a C \r
- style ShellAppMain function.\r
+ UEFI entry point for an application that will in turn call the\r
+ ShellAppMain function which has parameters similar to a standard C\r
+ main function.\r
\r
- This application must have a function defined as follows:\r
+ An application that uses UefiShellCEntryLib must have a ShellAppMain\r
+ function as prototyped in Include/Library/ShellCEntryLib.h.\r
+\r
+ @param ImageHandle The image handle of the UEFI Application.\r
+ @param SystemTable A pointer to the EFI System Table.\r
+\r
+ @retval EFI_SUCCESS The application exited normally.\r
+ @retval Other An error occurred.\r
\r
- INTN\r
- EFIAPI\r
- ShellAppMain (\r
- IN INTN Argc, \r
- IN CHAR16 **Argv\r
- );\r
**/\r
EFI_STATUS\r
EFIAPI\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- INT32 ReturnFromMain;\r
+ INTN ReturnFromMain;\r
EFI_SHELL_PARAMETERS_PROTOCOL *EfiShellParametersProtocol;\r
EFI_SHELL_INTERFACE *EfiShellInterface;\r
EFI_STATUS Status;\r
// use shell 2.0 interface\r
//\r
ReturnFromMain = ShellAppMain (\r
- EfiShellInterface->Argc,\r
- EfiShellInterface->Argv\r
+ EfiShellParametersProtocol->Argc,\r
+ EfiShellParametersProtocol->Argv\r
);\r
} else {\r
//\r
// use shell 1.0 interface\r
// \r
ReturnFromMain = ShellAppMain (\r
- EfiShellParametersProtocol->Argc,\r
- EfiShellParametersProtocol->Argv\r
+ EfiShellInterface->Argc,\r
+ EfiShellInterface->Argv\r
);\r
} else {\r
ASSERT(FALSE);\r