Browse Source

Add EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL definitions

Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
Jiaqing Zhao 4 years ago
parent
commit
6c04004f63
3 changed files with 31 additions and 2 deletions
  1. 1 0
      inc/efilib.h
  2. 27 0
      inc/efishell.h
  3. 3 2
      lib/data.c

+ 1 - 0
inc/efilib.h

@@ -150,6 +150,7 @@ extern EFI_GUID SimpleTextInputExProtocol;
 
 extern EFI_GUID ShellProtocolGuid;
 extern EFI_GUID ShellParametersProtocolGuid;
+extern EFI_GUID ShellDynamicCommandProtocolGuid;
 
 //
 // EFI Variable strings

+ 27 - 0
inc/efishell.h

@@ -419,4 +419,31 @@ typedef struct _EFI_SHELL_PARAMETERS_PROTOCOL {
     SHELL_FILE_HANDLE StdErr;
 } EFI_SHELL_PARAMETERS_PROTOCOL;
 
+#define EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID \
+    { 0x3c7200e9, 0x005f, 0x4ea4, { 0x87, 0xde, 0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3 } }
+
+INTERFACE_DECL(_EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL);
+
+typedef
+SHELL_STATUS
+(EFIAPI *SHELL_COMMAND_HANDLER)(
+    IN struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
+    IN EFI_SYSTEM_TABLE                           *SystemTable,
+    IN EFI_SHELL_PARAMETERS_PROTOCOL              *ShellParameters,
+    IN EFI_SHELL_PROTOCOL                         *Shell
+    );
+
+typedef
+CHAR16*
+(EFIAPI *SHELL_COMMAND_GETHELP)(
+    IN struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
+    IN CONST CHAR8                                *Language
+    );
+
+typedef struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL {
+    CONST CHAR16          *CommandName;
+    SHELL_COMMAND_HANDLER Handler;
+    SHELL_COMMAND_GETHELP GetHelp;
+} EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL;
+
 #endif

+ 3 - 2
lib/data.c

@@ -211,5 +211,6 @@ EFI_GUID SimpleTextInputExProtocol = EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID;
 //
 // Shell protocol GUIDs
 //
-EFI_GUID ShellProtocolGuid           = EFI_SHELL_PROTOCOL_GUID;
-EFI_GUID ShellParametersProtocolGuid = EFI_SHELL_PARAMETERS_PROTOCOL_GUID;
+EFI_GUID ShellProtocolGuid               = EFI_SHELL_PROTOCOL_GUID;
+EFI_GUID ShellParametersProtocolGuid     = EFI_SHELL_PARAMETERS_PROTOCOL_GUID;
+EFI_GUID ShellDynamicCommandProtocolGuid = EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID;