/** @file\r
- Provides application point extension for "C" style main funciton \r
+ Provides application point extension for "C" style main funciton\r
\r
-Copyright (c) 2009, Intel Corporation<BR>\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
+ Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
**/\r
\r
An application that uses UefiShellCEntryLib must have a ShellAppMain\r
function as prototyped in Include/Library/ShellCEntryLib.h.\r
\r
+ Note that the Shell uses POSITIVE integers for error values, while UEFI\r
+ uses NEGATIVE values. If the application is to be used within a script,\r
+ it needs to return one of the SHELL_STATUS values defined in ShellBase.h.\r
+\r
@param ImageHandle The image handle of the UEFI Application.\r
@param SystemTable A pointer to the EFI System Table.\r
\r
EfiShellParametersProtocol = NULL;\r
EfiShellInterface = NULL;\r
\r
- Status = SystemTable->BootServices->OpenProtocol(ImageHandle, \r
+ Status = SystemTable->BootServices->OpenProtocol(ImageHandle,\r
&gEfiShellParametersProtocolGuid,\r
(VOID **)&EfiShellParametersProtocol,\r
ImageHandle,\r
NULL,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
- );\r
+ );\r
if (!EFI_ERROR(Status)) {\r
//\r
// use shell 2.0 interface\r
ReturnFromMain = ShellAppMain (\r
EfiShellParametersProtocol->Argc,\r
EfiShellParametersProtocol->Argv\r
- );\r
+ );\r
} else {\r
//\r
// try to get shell 1.0 interface instead.\r
//\r
- Status = SystemTable->BootServices->OpenProtocol(ImageHandle, \r
+ Status = SystemTable->BootServices->OpenProtocol(ImageHandle,\r
&gEfiShellInterfaceGuid,\r
(VOID **)&EfiShellInterface,\r
ImageHandle,\r
NULL,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
- );\r
+ );\r
if (!EFI_ERROR(Status)) {\r
//\r
// use shell 1.0 interface\r
- // \r
+ //\r
ReturnFromMain = ShellAppMain (\r
EfiShellInterface->Argc,\r
EfiShellInterface->Argv\r
- );\r
+ );\r
} else {\r
ASSERT(FALSE);\r
}\r
}\r
- if (ReturnFromMain == 0) {\r
- return (EFI_SUCCESS);\r
- } else {\r
- return (EFI_UNSUPPORTED);\r
- }\r
+ return ReturnFromMain;\r
}\r