#include <Protocol/EfiShellInterface.h>\r
#include <Protocol/EfiShellParameters.h>\r
\r
+#include <Library/ShellCEntryLib.h>\r
#include <Library/DebugLib.h>\r
\r
-INT32 \r
+INTN\r
EFIAPI \r
-main(\r
- UINTN Argc, \r
- CHAR16 **Argv\r
-);\r
+ShellAppMain (\r
+ IN INTN Argc, \r
+ IN CHAR16 **Argv\r
+ );\r
\r
+/**\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
+ 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
+**/\r
EFI_STATUS\r
EFIAPI\r
-ShellCEntryLib(\r
+ShellCEntryLib (\r
IN EFI_HANDLE ImageHandle,\r
IN EFI_SYSTEM_TABLE *SystemTable\r
- ){\r
- INT32 ReturnFromMain;\r
+ )\r
+{\r
+ INTN ReturnFromMain;\r
EFI_SHELL_PARAMETERS_PROTOCOL *EfiShellParametersProtocol;\r
EFI_SHELL_INTERFACE *EfiShellInterface;\r
EFI_STATUS Status;\r
//\r
// use shell 2.0 interface\r
//\r
- ReturnFromMain = main(EfiShellInterface->Argc, EfiShellInterface->Argv);\r
+ ReturnFromMain = ShellAppMain (\r
+ EfiShellParametersProtocol->Argc,\r
+ EfiShellParametersProtocol->Argv\r
+ );\r
} else {\r
//\r
// try to get shell 1.0 interface instead.\r
//\r
// use shell 1.0 interface\r
// \r
- ReturnFromMain = main(EfiShellParametersProtocol->Argc, EfiShellParametersProtocol->Argv);\r
+ ReturnFromMain = ShellAppMain (\r
+ EfiShellInterface->Argc,\r
+ EfiShellInterface->Argv\r
+ );\r
} else {\r
ASSERT(FALSE);\r
}\r