146 lines
3.1 KiB
C
146 lines
3.1 KiB
C
/*++
|
|
|
|
Copyright (c) 1998 Intel Corporation
|
|
|
|
Module Name:
|
|
|
|
shellenv.h
|
|
|
|
Abstract:
|
|
|
|
Defines for shell environment
|
|
|
|
|
|
|
|
Revision History
|
|
|
|
--*/
|
|
|
|
/*
|
|
* The shell environment is provided by a driver. The shell links to the
|
|
* shell environment for services. In addition, other drivers may connect
|
|
* to the shell environment and add new internal command handlers, or
|
|
* internal protocol handlers.
|
|
*
|
|
* A typical shell application would not include this header file
|
|
*/
|
|
|
|
|
|
#define SHELL_ENVIRONMENT_INTERFACE_PROTOCOL \
|
|
{ 0x47c7b221, 0xc42a, 0x11d2, 0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b }
|
|
|
|
/*
|
|
*
|
|
*/
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *SHELLENV_EXECUTE) (
|
|
IN EFI_HANDLE *ParentImageHandle,
|
|
IN CHAR16 *CommandLine,
|
|
IN BOOLEAN DebugOutput
|
|
);
|
|
|
|
typedef
|
|
CHAR16 *
|
|
(EFIAPI *SHELLENV_GET_ENV) (
|
|
IN CHAR16 *Name
|
|
);
|
|
|
|
typedef
|
|
CHAR16 *
|
|
(EFIAPI *SHELLENV_GET_MAP) (
|
|
IN CHAR16 *Name
|
|
);
|
|
|
|
/*
|
|
* Add to shell's internal command list
|
|
*/
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *SHELLENV_ADD_CMD) (
|
|
IN SHELLENV_INTERNAL_COMMAND Handler,
|
|
IN CHAR16 *Cmd,
|
|
IN CHAR16 *CmdFormat,
|
|
IN CHAR16 *CmdHelpLine,
|
|
IN CHAR16 *CmdVerboseHelp /* tbd */
|
|
);
|
|
|
|
/*
|
|
* Add to shell environment protocol information & protocol information dump handlers
|
|
*/
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *SHELLENV_DUMP_PROTOCOL_INFO) (
|
|
IN EFI_HANDLE Handle,
|
|
IN VOID *Interface
|
|
);
|
|
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *SHELLENV_ADD_PROT) (
|
|
IN EFI_GUID *Protocol,
|
|
IN SHELLENV_DUMP_PROTOCOL_INFO DumpToken OPTIONAL,
|
|
IN SHELLENV_DUMP_PROTOCOL_INFO DumpInfo OPTIONAL,
|
|
IN CHAR16 *IdString
|
|
);
|
|
|
|
typedef
|
|
CHAR16 *
|
|
(EFIAPI *SHELLENV_GET_PROT) (
|
|
IN EFI_GUID *Protocol,
|
|
IN BOOLEAN GenId
|
|
);
|
|
|
|
|
|
|
|
typedef
|
|
EFI_SHELL_INTERFACE *
|
|
(EFIAPI *SHELLENV_NEW_SHELL) (
|
|
IN EFI_HANDLE ImageHandle
|
|
);
|
|
|
|
|
|
typedef
|
|
CHAR16 *
|
|
(EFIAPI *SHELLENV_CUR_DIR) (
|
|
IN CHAR16 *DeviceName OPTIONAL
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *SHELLENV_FILE_META_ARG) (
|
|
IN CHAR16 *Arg,
|
|
IN OUT LIST_ENTRY *ListHead
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *SHELLENV_FREE_FILE_LIST) (
|
|
IN OUT LIST_ENTRY *ListHead
|
|
);
|
|
|
|
|
|
/*
|
|
*
|
|
*/
|
|
|
|
typedef struct {
|
|
SHELLENV_EXECUTE Execute; /* Execute a command line */
|
|
SHELLENV_GET_ENV GetEnv; /* Get an environment variable */
|
|
SHELLENV_GET_MAP GetMap; /* Get an environment variable */
|
|
SHELLENV_ADD_CMD AddCmd; /* Add an internal command handler */
|
|
SHELLENV_ADD_PROT AddProt; /* Add protocol info handler */
|
|
SHELLENV_GET_PROT GetProt; /* Get's the protocol ID */
|
|
|
|
SHELLENV_CUR_DIR CurDir;
|
|
SHELLENV_FILE_META_ARG FileMetaArg;
|
|
SHELLENV_FREE_FILE_LIST FreeFileList;
|
|
|
|
/* Only used by the shell itself */
|
|
SHELLENV_NEW_SHELL NewShell;
|
|
} EFI_SHELL_ENVIRONMENT;
|