1 /** @file 2 EFI Shell Dynamic Command registration protocol 3 4 (C) Copyright 2012-2014 Hewlett-Packard Development Company, L.P.<BR> 5 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #ifndef __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_H__ 17 #define __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_H__ 18 19 #include <Protocol/Shell.h> 20 #include <Protocol/ShellParameters.h> 21 22 // {3C7200E9-005F-4EA4-87DE-A3DFAC8A27C3} 23 #define EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID \ 24 { \ 25 0x3c7200e9, 0x005f, 0x4ea4, { 0x87, 0xde, 0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3 } \ 26 } 27 28 29 // 30 // Define for forward reference. 31 // 32 typedef struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL; 33 34 35 /** 36 This is the shell command handler function pointer callback type. This 37 function handles the command when it is invoked in the shell. 38 39 @param[in] This The instance of the EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL. 40 @param[in] SystemTable The pointer to the system table. 41 @param[in] ShellParameters The parameters associated with the command. 42 @param[in] Shell The instance of the shell protocol used in the context 43 of processing this command. 44 45 @return EFI_SUCCESS the operation was sucessful 46 @return other the operation failed. 47 **/ 48 typedef 49 SHELL_STATUS 50 (EFIAPI * SHELL_COMMAND_HANDLER)( 51 IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This, 52 IN EFI_SYSTEM_TABLE *SystemTable, 53 IN EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters, 54 IN EFI_SHELL_PROTOCOL *Shell 55 ); 56 57 /** 58 This is the command help handler function pointer callback type. This 59 function is responsible for displaying help information for the associated 60 command. 61 62 @param[in] This The instance of the EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL. 63 @param[in] Language The pointer to the language string to use. 64 65 @return string Pool allocated help string, must be freed by caller 66 **/ 67 typedef 68 CHAR16* 69 (EFIAPI * SHELL_COMMAND_GETHELP)( 70 IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This, 71 IN CONST CHAR8 *Language 72 ); 73 74 /// EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL protocol structure. 75 struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL { 76 77 CONST CHAR16 *CommandName; 78 SHELL_COMMAND_HANDLER Handler; 79 SHELL_COMMAND_GETHELP GetHelp; 80 81 }; 82 83 extern EFI_GUID gEfiShellDynamicCommandProtocolGuid; 84 85 #endif 86