mirror of https://github.com/acidanthera/audk.git
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
This commit is contained in:
parent
a31a3b4a3e
commit
e66e86ee2d
|
@ -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
|
|
@ -3,7 +3,7 @@
|
||||||
# This Package provides all definitions for EFI and UEFI Shell
|
# This Package provides all definitions for EFI and UEFI Shell
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013, Hewlett-Packard Development Company, L.P.
|
# Copyright (c) 2013, Hewlett-Packard Development Company, L.P.
|
||||||
# Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials are licensed and made available under
|
# 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 terms and conditions of the BSD License which accompanies this distribution.
|
||||||
|
@ -62,10 +62,11 @@
|
||||||
gShellNetwork1HiiGuid = {0xf3d301bb, 0xf4a5, 0x45a8, {0xb0, 0xb7, 0xfa, 0x99, 0x9c, 0x62, 0x37, 0xae}}
|
gShellNetwork1HiiGuid = {0xf3d301bb, 0xf4a5, 0x45a8, {0xb0, 0xb7, 0xfa, 0x99, 0x9c, 0x62, 0x37, 0xae}}
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiShellProtocolGuid = {0x6302d008, 0x7f9b, 0x4f30, {0x87, 0xac, 0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e}}
|
gEfiShellProtocolGuid = {0x6302d008, 0x7f9b, 0x4f30, {0x87, 0xac, 0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e}}
|
||||||
gEfiShellParametersProtocolGuid = {0x752f3136, 0x4e16, 0x4fdc, {0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca}}
|
gEfiShellParametersProtocolGuid = {0x752f3136, 0x4e16, 0x4fdc, {0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca}}
|
||||||
gEfiShellEnvironment2Guid = {0x47c7b221, 0xc42a, 0x11d2, {0x8e, 0x57, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
|
gEfiShellEnvironment2Guid = {0x47c7b221, 0xc42a, 0x11d2, {0x8e, 0x57, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
|
||||||
gEfiShellInterfaceGuid = {0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
|
gEfiShellInterfaceGuid = {0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
|
||||||
|
gEfiShellDynamicCommandProtocolGuid = {0xcd3258c, 0xd677, 0x4fcc, { 0xb3, 0x43, 0x93, 0x4d, 0x30, 0x98, 0x38, 0x88}}
|
||||||
|
|
||||||
[PcdsFeatureFlag]
|
[PcdsFeatureFlag]
|
||||||
## This flag is used to control whether the shell includes NT32 platform Guids
|
## This flag is used to control whether the shell includes NT32 platform Guids
|
||||||
|
|
Loading…
Reference in New Issue