summaryrefslogtreecommitdiffstats
path: root/ShellPkg/Include
diff options
context:
space:
mode:
authorJaben Carsey <jaben.carsey@intel.com>2014-07-31 18:07:43 +0000
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>2014-07-31 18:07:43 +0000
commite66e86ee2d090e4e372419ef4eb137ece874d99c (patch)
treec35a9b4760aca5fb79966c6f6bfad7c2f3f78c01 /ShellPkg/Include
parenta31a3b4a3e16d10fee4bac2fc56eee24cd1a90a4 (diff)
downloadedk2-e66e86ee2d090e4e372419ef4eb137ece874d99c.tar.gz
edk2-e66e86ee2d090e4e372419ef4eb137ece874d99c.tar.bz2
edk2-e66e86ee2d090e4e372419ef4eb137ece874d99c.zip
ShellPkg: Add new dynamic command protocol
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jaben Carsey <jaben.carsey@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15731 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg/Include')
-rw-r--r--ShellPkg/Include/Protocol/EfiShellDynamicCommand.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/ShellPkg/Include/Protocol/EfiShellDynamicCommand.h b/ShellPkg/Include/Protocol/EfiShellDynamicCommand.h
new file mode 100644
index 0000000000..713f5df74d
--- /dev/null
+++ b/ShellPkg/Include/Protocol/EfiShellDynamicCommand.h
@@ -0,0 +1,86 @@
+/** @file
+ EFI Shell Dynamic Command registration protocol
+
+ Copyright (c) 2012 Hewlett-Packard Company. All rights reserved.<BR>
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL__
+#define __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL__
+
+#include <ShellBase.h>
+#include <Protocol/EfiShellParameters.h>
+#include <Protocol/EfiShell.h>
+
+
+// {0CD3258C-D677-4fcc-B343-934D30983888}
+#define EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID \
+ { \
+ 0xcd3258c, 0xd677, 0x4fcc, { 0xb3, 0x43, 0x93, 0x4d, 0x30, 0x98, 0x38, 0x88 } \
+ }
+
+
+//
+// Define for forward reference.
+//
+typedef struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL;
+
+
+/**
+ This is the shell command handler function pointer callback type. This
+ function handles the command when it is invoked in the shell.
+
+ @param[in] This The instance of the EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL.
+ @param[in] SystemTable The pointer to the system table.
+ @param[in] ShellParameters The parameters associated with the command.
+ @param[in] Shell The instance of the shell protocol used in the context
+ of processing this command.
+
+ @return EFI_SUCCESS the operation was sucessful
+ @return other the operation failed.
+**/
+typedef
+SHELL_STATUS
+(EFIAPI * SHELL_COMMAND_HANDLER)(
+ IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
+ IN EFI_SYSTEM_TABLE *SystemTable,
+ IN EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,
+ IN EFI_SHELL_PROTOCOL *Shell
+ );
+
+/**
+ This is the command help handler function pointer callback type. This
+ function is responsible for displaying help information for the associated
+ command.
+
+ @param[in] This The instance of the EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL.
+ @param[in] Language The pointer to the language string to use.
+
+ @return string Pool allocated help string, must be freed by caller
+**/
+typedef
+CHAR16*
+(EFIAPI * SHELL_COMMAND_GETHELP)(
+ IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
+ IN CONST CHAR8 *Language
+ );
+
+/// EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL protocol structure.
+typedef struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL {
+
+ CONST CHAR16 *CommandName;
+ SHELL_COMMAND_HANDLER Handler;
+ SHELL_COMMAND_GETHELP GetHelp;
+
+} EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL;
+
+extern EFI_GUID gEfiShellDynamicCommandProtocolGuid;
+
+#endif