/** @file
EFI Shell Dynamic Command registration protocol
(C) Copyright 2012-2014 Hewlett-Packard Development Company, L.P.
Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_H__
#define __EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_H__
#include
#include
// {3C7200E9-005F-4EA4-87DE-A3DFAC8A27C3}
#define EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID \
{ \
0x3c7200e9, 0x005f, 0x4ea4, { 0x87, 0xde, 0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3 } \
}
//
// 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.
struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL {
CONST CHAR16 *CommandName;
SHELL_COMMAND_HANDLER Handler;
SHELL_COMMAND_GETHELP GetHelp;
};
extern EFI_GUID gEfiShellDynamicCommandProtocolGuid;
#endif