Files
slimbootloader/BootloaderCommonPkg/Library/ShellLib/Shell.h
Aiden Park 5103615bfb [ShellLib] Add ShellCommandRegister API
Currently, all shell commands are statically defined in header file.
Add shell command registration API to allow include/exclude shell
commands dynamically.
Later, some debug shell commands will be added according to build
mode or debug mask.
- TBD: Sorting shell commands by name

Signed-off-by: Aiden Park <aiden.park@intel.com>
2019-08-05 21:04:27 -07:00

72 lines
1.5 KiB
C

/** @file
A minimal command-line shell.
Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _SHELL_H_
#define _SHELL_H_
#define SHELL_COMMAND_LIST_ENTRY_SIGNATURE SIGNATURE_32('S','C','L','E')
typedef struct {
UINT32 Signature;
CONST SHELL_COMMAND *ShellCommand;
LIST_ENTRY Link;
} SHELL_COMMAND_LIST_ENTRY;
/**
Read a line of input from the serial port.
@param[in] Shell shell instance
@param[out] Buffer buffer to receive command line
@param[in] BufferSize size (in bytes) of the buffer
@retval EFI_SUCCESS
@retval EFI_BUFFER_TOO_SMALL
@retval EFI_TIMEOUT
**/
EFI_STATUS
ShellReadLine (
IN SHELL *Shell,
OUT CHAR16 *Buffer,
IN CONST UINTN BufferSize
);
/**
Read a UINT value from the serial port.
@param[in] Shell shell instance
@param[out] Buffer buffer to receive command line
@param[in] BufferSize size (in bytes) of the buffer
@param[out] IsHex determine if the UINT is hex or decimal format
@retval EFI_SUCCESS
@retval EFI_BUFFER_TOO_SMALL
@retval EFI_TIMEOUT
**/
EFI_STATUS
ShellReadUintn (
IN SHELL *Shell,
OUT CHAR16 *Buffer,
IN CONST UINTN BufferSize,
OUT BOOLEAN *IsHex
);
/**
Return a Shell Command Entry List Pointer
@retval LIST_ENTRY Pointer
**/
LIST_ENTRY *
EFIAPI
GetShellCommandEntryList (
VOID
);
#endif