]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Application/Shell/ShellProtocol.h
ShellPkg: Fix the bug that handling Ctrl-C improperly
[mirror_edk2.git] / ShellPkg / Application / Shell / ShellProtocol.h
index 7493c9f49f14cf5ff3c8bb7fe2b2c084b65e5f2a..755a402c984e61a591ec2539b205c2e3cf77439e 100644 (file)
@@ -2,7 +2,8 @@
   Member functions of EFI_SHELL_PROTOCOL and functions for creation,\r
   manipulation, and initialization of EFI_SHELL_PROTOCOL.\r
 \r
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>\r
+  Copyright (c) 2009 - 2016, 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
@@ -42,13 +43,12 @@ typedef struct {
   @return                 An error from LocateHandle, CreateEvent, or other core function.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 CreatePopulateInstallShellProtocol (\r
   IN OUT EFI_SHELL_PROTOCOL  **NewShell\r
   );\r
 \r
 /**\r
-  Opposite of CreatePopulateInstallShellProtocol.  \r
+  Opposite of CreatePopulateInstallShellProtocol.\r
 \r
   Free all memory and restore the system to the state it was in before calling\r
   CreatePopulateInstallShellProtocol.\r
@@ -58,11 +58,22 @@ CreatePopulateInstallShellProtocol (
   @retval EFI_SUCCESS       The operation was successful.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 CleanUpShellProtocol (\r
   IN OUT EFI_SHELL_PROTOCOL  *NewShell\r
   );\r
 \r
+/**\r
+  Cleanup the shell environment.\r
+\r
+  @param[in, out] NewShell   The pointer to the new shell protocol structure.\r
+\r
+  @retval EFI_SUCCESS       The operation was successful.\r
+**/\r
+EFI_STATUS\r
+CleanUpShellEnvironment (\r
+  IN OUT EFI_SHELL_PROTOCOL  *NewShell\r
+  );\r
+\r
 /**\r
   This function creates a mapping for a device path.\r
 \r
@@ -282,7 +293,6 @@ EfiShellBatchIsActive (
   @retval other                   an error ocurred.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 InternalOpenFileDevicePath(\r
   IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath2,\r
   OUT SHELL_FILE_HANDLE             *FileHandle,\r
@@ -433,17 +443,17 @@ EfiShellEnablePageBreak (
 /**\r
   internal worker function to run a command via Device Path\r
 \r
-  @param ParentImageHandle  A handle of the image that is executing the specified\r
-                            command line.\r
-  @param DevicePath         device path of the file to execute\r
-  @param CommandLine        Points to the NULL-terminated UCS-2 encoded string\r
-                            containing the command line. If NULL then the command-\r
-                            line will be empty.\r
-  @param Environment        Points to a NULL-terminated array of environment\r
-                            variables with the format 'x=y', where x is the\r
-                            environment variable name and y is the value. If this\r
-                            is NULL, then the current shell environment is used.\r
-  @param StatusCode         Points to the status code returned by the command.\r
+  @param ParentImageHandle      A handle of the image that is executing the specified\r
+                                command line.\r
+  @param DevicePath             device path of the file to execute\r
+  @param CommandLine            Points to the NULL-terminated UCS-2 encoded string\r
+                                containing the command line. If NULL then the command-\r
+                                line will be empty.\r
+  @param Environment            Points to a NULL-terminated array of environment\r
+                                variables with the format 'x=y', where x is the\r
+                                environment variable name and y is the value. If this\r
+                                is NULL, then the current shell environment is used.\r
+  @param[out] StartImageStatus  Returned status from gBS->StartImage.\r
 \r
   @retval EFI_SUCCESS       The command executed successfully. The  status code\r
                             returned by the command is pointed to by StatusCode.\r
@@ -452,13 +462,12 @@ EfiShellEnablePageBreak (
   @retval EFI_UNSUPPORTED   Nested shell invocations are not allowed.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 InternalShellExecuteDevicePath(\r
-  IN CONST EFI_HANDLE *ParentImageHandle,\r
+  IN CONST EFI_HANDLE               *ParentImageHandle,\r
   IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
-  IN CONST CHAR16 *CommandLine OPTIONAL,\r
-  IN CONST CHAR16 **Environment OPTIONAL,\r
-  OUT EFI_STATUS *StatusCode OPTIONAL\r
+  IN CONST CHAR16                   *CommandLine OPTIONAL,\r
+  IN CONST CHAR16                   **Environment OPTIONAL,\r
+  OUT EFI_STATUS                    *StartImageStatus OPTIONAL\r
   );\r
 \r
 /**\r
@@ -510,7 +519,6 @@ EfiShellExecute(
   @param FileListNode     pointer to the list node to free\r
 **/\r
 VOID\r
-EFIAPI\r
 FreeShellFileInfoNode(\r
   IN EFI_SHELL_FILE_INFO *FileListNode\r
   );\r
@@ -561,7 +569,6 @@ EfiShellRemoveDupInFileList(
 \r
 **/\r
 EFI_SHELL_FILE_INFO *\r
-EFIAPI\r
 CreateAndPopulateShellFileInfo(\r
   IN CONST CHAR16 *BasePath,\r
   IN CONST EFI_STATUS Status,\r
@@ -653,7 +660,7 @@ EfiShellOpenFileList(
 \r
   @param Name                   A pointer to the environment variable name\r
 \r
-  @return !=NULL                The environment variable's value. The returned\r
+  @retval !=NULL                The environment variable's value. The returned\r
                                 pointer does not need to be freed by the caller.\r
   @retval NULL                  The environment variable doesn't exist.\r
 **/\r
@@ -844,7 +851,6 @@ EfiShellGetAlias(
   @retval EFI_NOT_FOUND         the Alias intended to be deleted was not found\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 InternalSetAlias(\r
   IN CONST CHAR16 *Command,\r
   IN CONST CHAR16 *Alias OPTIONAL,\r
@@ -889,7 +895,6 @@ EfiShellSetAlias(
   @param FileListNode     pointer to the list node to free\r
 **/\r
 VOID\r
-EFIAPI\r
 InternalFreeShellFileInfoNode(\r
   IN EFI_SHELL_FILE_INFO *FileListNode\r
   );\r
@@ -905,7 +910,6 @@ InternalFreeShellFileInfoNode(
   @retval EFI_SUCCESS           The environment variable was successfully updated.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 InternalEfiShellSetEnv(\r
   IN CONST CHAR16 *Name,\r
   IN CONST CHAR16 *Value,\r
@@ -920,7 +924,6 @@ InternalEfiShellSetEnv(
   @retval EFI_OUT_OF_RESOURCES  There is not enough mnemory available.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 InernalEfiShellStartMonitor(\r
   VOID\r
   );\r