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