diff options
| author | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
|---|---|---|
| committer | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
| commit | 7e2ccccace24636f29ddc210b94606abd4c7e42b (patch) | |
| tree | 545d43ea12671048956cafeb12303e84d601e571 /ShellPkg/Library/UefiShellCEntryLib | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'ShellPkg/Library/UefiShellCEntryLib')
| -rw-r--r-- | ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c | 192 | ||||
| -rw-r--r-- | ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf | 78 |
2 files changed, 135 insertions, 135 deletions
diff --git a/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c b/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c index 17e48443ac..8d60e40c0b 100644 --- a/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c +++ b/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c @@ -1,96 +1,96 @@ -/** @file
- Provides application point extension for "C" style main function
-
- Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Base.h>
-
-#include <Protocol/SimpleFileSystem.h>
-#include <Protocol/LoadedImage.h>
-#include <Protocol/EfiShellInterface.h>
-#include <Protocol/ShellParameters.h>
-
-#include <Library/ShellCEntryLib.h>
-#include <Library/DebugLib.h>
-
-/**
- UEFI entry point for an application that will in turn call the
- ShellAppMain function which has parameters similar to a standard C
- main function.
-
- An application that uses UefiShellCEntryLib must have a ShellAppMain
- function as prototyped in Include/Library/ShellCEntryLib.h.
-
- Note that the Shell uses POSITIVE integers for error values, while UEFI
- uses NEGATIVE values. If the application is to be used within a script,
- it needs to return one of the SHELL_STATUS values defined in Protocol/Shell.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.
-
-**/
-EFI_STATUS
-EFIAPI
-ShellCEntryLib (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- INTN ReturnFromMain;
- EFI_SHELL_PARAMETERS_PROTOCOL *EfiShellParametersProtocol;
- EFI_SHELL_INTERFACE *EfiShellInterface;
- EFI_STATUS Status;
-
- ReturnFromMain = -1;
- EfiShellParametersProtocol = NULL;
- EfiShellInterface = NULL;
-
- Status = SystemTable->BootServices->OpenProtocol (
- ImageHandle,
- &gEfiShellParametersProtocolGuid,
- (VOID **)&EfiShellParametersProtocol,
- ImageHandle,
- NULL,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
- if (!EFI_ERROR (Status)) {
- //
- // use shell 2.0 interface
- //
- ReturnFromMain = ShellAppMain (
- EfiShellParametersProtocol->Argc,
- EfiShellParametersProtocol->Argv
- );
- } else {
- //
- // try to get shell 1.0 interface instead.
- //
- Status = SystemTable->BootServices->OpenProtocol (
- ImageHandle,
- &gEfiShellInterfaceGuid,
- (VOID **)&EfiShellInterface,
- ImageHandle,
- NULL,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
- if (!EFI_ERROR (Status)) {
- //
- // use shell 1.0 interface
- //
- ReturnFromMain = ShellAppMain (
- EfiShellInterface->Argc,
- EfiShellInterface->Argv
- );
- } else {
- ASSERT (FALSE);
- }
- }
-
- return ReturnFromMain;
-}
+/** @file + Provides application point extension for "C" style main function + + Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Base.h> + +#include <Protocol/SimpleFileSystem.h> +#include <Protocol/LoadedImage.h> +#include <Protocol/EfiShellInterface.h> +#include <Protocol/ShellParameters.h> + +#include <Library/ShellCEntryLib.h> +#include <Library/DebugLib.h> + +/** + UEFI entry point for an application that will in turn call the + ShellAppMain function which has parameters similar to a standard C + main function. + + An application that uses UefiShellCEntryLib must have a ShellAppMain + function as prototyped in Include/Library/ShellCEntryLib.h. + + Note that the Shell uses POSITIVE integers for error values, while UEFI + uses NEGATIVE values. If the application is to be used within a script, + it needs to return one of the SHELL_STATUS values defined in Protocol/Shell.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. + +**/ +EFI_STATUS +EFIAPI +ShellCEntryLib ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + INTN ReturnFromMain; + EFI_SHELL_PARAMETERS_PROTOCOL *EfiShellParametersProtocol; + EFI_SHELL_INTERFACE *EfiShellInterface; + EFI_STATUS Status; + + ReturnFromMain = -1; + EfiShellParametersProtocol = NULL; + EfiShellInterface = NULL; + + Status = SystemTable->BootServices->OpenProtocol ( + ImageHandle, + &gEfiShellParametersProtocolGuid, + (VOID **)&EfiShellParametersProtocol, + ImageHandle, + NULL, + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + if (!EFI_ERROR (Status)) { + // + // use shell 2.0 interface + // + ReturnFromMain = ShellAppMain ( + EfiShellParametersProtocol->Argc, + EfiShellParametersProtocol->Argv + ); + } else { + // + // try to get shell 1.0 interface instead. + // + Status = SystemTable->BootServices->OpenProtocol ( + ImageHandle, + &gEfiShellInterfaceGuid, + (VOID **)&EfiShellInterface, + ImageHandle, + NULL, + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + if (!EFI_ERROR (Status)) { + // + // use shell 1.0 interface + // + ReturnFromMain = ShellAppMain ( + EfiShellInterface->Argc, + EfiShellInterface->Argv + ); + } else { + ASSERT (FALSE); + } + } + + return ReturnFromMain; +} diff --git a/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf b/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf index 500c8045ec..9c1cabd4a2 100644 --- a/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf +++ b/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf @@ -1,39 +1,39 @@ -## @file
-# Provides interface to shell functionality for shell commands and applications.
-#
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved. <BR>
-#
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010006
- BASE_NAME = UefiShellCEntryLib
- FILE_GUID = 0e205c8a-8586-4dec-9f5c-4f9e394aefe8
- MODULE_TYPE = UEFI_APPLICATION
- VERSION_STRING = 1.0
- LIBRARY_CLASS = ShellCEntryLib|UEFI_APPLICATION UEFI_DRIVER
-
-#
-# VALID_ARCHITECTURES = IA32 X64 EBC
-#
-
-[Sources.common]
- UefiShellCEntryLib.c
-
-[Packages]
- MdePkg/MdePkg.dec
- ShellPkg/ShellPkg.dec
-
-[LibraryClasses]
- UefiApplicationEntryPoint
- DebugLib
-
-
-[Protocols]
- gEfiShellParametersProtocolGuid ## CONSUMES
- gEfiShellInterfaceGuid ## SOMETIMES_CONSUMES
-
-
+## @file +# Provides interface to shell functionality for shell commands and applications. +# +# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved. <BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# +## + +[Defines] + INF_VERSION = 0x00010006 + BASE_NAME = UefiShellCEntryLib + FILE_GUID = 0e205c8a-8586-4dec-9f5c-4f9e394aefe8 + MODULE_TYPE = UEFI_APPLICATION + VERSION_STRING = 1.0 + LIBRARY_CLASS = ShellCEntryLib|UEFI_APPLICATION UEFI_DRIVER + +# +# VALID_ARCHITECTURES = IA32 X64 EBC +# + +[Sources.common] + UefiShellCEntryLib.c + +[Packages] + MdePkg/MdePkg.dec + ShellPkg/ShellPkg.dec + +[LibraryClasses] + UefiApplicationEntryPoint + DebugLib + + +[Protocols] + gEfiShellParametersProtocolGuid ## CONSUMES + gEfiShellInterfaceGuid ## SOMETIMES_CONSUMES + + |
