mirror of https://github.com/acidanthera/audk.git
85 lines
3.6 KiB
C
85 lines
3.6 KiB
C
/** @file
|
|
Provides interface to shell MAN file parser.
|
|
|
|
Copyright (c) 2009 - 2010, Intel Corporation. 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 _SHELL_MAN_FILE_PARSER_HEADER_
|
|
#define _SHELL_MAN_FILE_PARSER_HEADER_
|
|
|
|
/**
|
|
This function returns the help information for the specified command. The help text
|
|
will be parsed from a UEFI Shell manual page. (see UEFI Shell 2.0 Appendix B)
|
|
|
|
If Sections is specified, then each section name listed will be compared in a casesensitive
|
|
manner, to the section names described in Appendix B. If the section exists,
|
|
it will be appended to the returned help text. If the section does not exist, no
|
|
information will be returned. If Sections is NULL, then all help text information
|
|
available will be returned.
|
|
|
|
if BriefDesc is NULL, then the breif description will not be savedd seperatly,
|
|
but placed first in the main HelpText.
|
|
|
|
@param[in] ManFileName Points to the NULL-terminated UEFI Shell MAN file name.
|
|
@param[in] Command Points to the NULL-terminated UEFI Shell command name.
|
|
@param[in] Sections Points to the NULL-terminated comma-delimited
|
|
section names to return. If NULL, then all
|
|
sections will be returned.
|
|
@param[out] BriefDesc On return, points to a callee-allocated buffer
|
|
containing brief description text.
|
|
@param[out] HelpText On return, points to a callee-allocated buffer
|
|
containing all specified help text.
|
|
|
|
@retval EFI_SUCCESS The help text was returned.
|
|
@retval EFI_OUT_OF_RESOURCES The necessary buffer could not be allocated to hold the
|
|
returned help text.
|
|
@retval EFI_INVALID_PARAMETER HelpText is NULL
|
|
@retval EFI_NOT_FOUND There is no help text available for Command.
|
|
**/
|
|
EFI_STATUS
|
|
ProcessManFile(
|
|
IN CONST CHAR16 *ManFileName,
|
|
IN CONST CHAR16 *Command,
|
|
IN CONST CHAR16 *Sections OPTIONAL,
|
|
OUT CHAR16 **BriefDesc,
|
|
OUT CHAR16 **HelpText
|
|
);
|
|
|
|
/**
|
|
parses through the MAN file specified by SHELL_FILE_HANDLE and returns the
|
|
detailed help for any sub section specified in the comma seperated list of
|
|
sections provided. If the end of the file or a .TH section is found then
|
|
return.
|
|
|
|
Upon a sucessful return the caller is responsible to free the memory in *HelpText
|
|
|
|
@param[in] Handle FileHandle to read from
|
|
@param[in] Sections name of command's sub sections to find
|
|
@param[out] HelpText pointer to pointer to string where text goes.
|
|
@param[out] HelpSize pointer to size of allocated HelpText (may be updated)
|
|
@param[in] Ascii TRUE if the file is ASCII, FALSE otherwise.
|
|
|
|
@retval EFI_OUT_OF_RESOURCES a memory allocation failed.
|
|
@retval EFI_SUCCESS the section was found and its description sotred in
|
|
an alloceted buffer.
|
|
**/
|
|
EFI_STATUS
|
|
ManFileFindSections(
|
|
IN SHELL_FILE_HANDLE Handle,
|
|
IN CONST CHAR16 *Sections,
|
|
OUT CHAR16 **HelpText,
|
|
OUT UINTN *HelpSize,
|
|
IN BOOLEAN Ascii
|
|
);
|
|
|
|
#endif //_SHELL_MAN_FILE_PARSER_HEADER_
|
|
|