| /** @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 | |
| EFIAPI | |
| 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 | |
| EFIAPI | |
| 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_ | |