summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorJiaqing Zhao <jiaqing.zhao@intel.com>2020-11-15 15:26:19 +0800
committerJiaqing Zhao <jiaqing.zhao@intel.com>2020-11-15 15:26:19 +0800
commit6c04004f63b963448d17ecb46b1d48824a20d00e (patch)
tree2de4ad66fbdac08cd9257046f1a68d4f1d66b2ad /inc
parent773f30af293fc174732891994bb8deafe015c75d (diff)
downloadgnu-efi-6c04004f63b963448d17ecb46b1d48824a20d00e.tar.gz
Add EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL definitions
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
Diffstat (limited to 'inc')
-rw-r--r--inc/efilib.h1
-rw-r--r--inc/efishell.h27
2 files changed, 28 insertions, 0 deletions
diff --git a/inc/efilib.h b/inc/efilib.h
index 1e0ae56..6b6faf4 100644
--- a/inc/efilib.h
+++ b/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
diff --git a/inc/efishell.h b/inc/efishell.h
index 7561007..aa3fab2 100644
--- a/inc/efishell.h
+++ b/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