ShellPkg: Support finding help message embedded in resource section.
UEFI Shell scandalizes the help message in spec level so that a standalone UEFI shell application can never get "-?" switch, instead the Shell core (interpreter) detects the "-?" and finds .MAN file for that shell application in certain spec defined paths, then show the help extracted from that .MAN file. But it means distributing a UEFI shell application not only means distributing a .EFI file but also distributing a .MAN file. If the text formatted .MAN file is corrupted (edited by user by mistake), or is missing (deleted by user by mistake), no help will be shown to user. So this patch enhance the Shell to make it support finding help message imbedded in resource section of application image. Cc: Jaben Carsey <jaben.carsey@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Qiu Shumin <shumin.qiu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
function definitions for internal to shell functions.
|
||||
|
||||
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
|
||||
Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2009 - 2016, 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
|
||||
@ -29,6 +29,7 @@
|
||||
#include <Protocol/EfiShellEnvironment2.h>
|
||||
#include <Protocol/EfiShellParameters.h>
|
||||
#include <Protocol/BlockIo.h>
|
||||
#include <Protocol/HiiPackageList.h>
|
||||
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/UefiApplicationEntryPoint.h>
|
||||
@ -47,6 +48,7 @@
|
||||
#include <Library/PrintLib.h>
|
||||
#include <Library/HandleParsingLib.h>
|
||||
#include <Library/FileHandleLib.h>
|
||||
#include <Library/UefiHiiServicesLib.h>
|
||||
|
||||
#include "ShellParametersProtocol.h"
|
||||
#include "ShellProtocol.h"
|
||||
@ -122,6 +124,16 @@ typedef struct {
|
||||
BOOLEAN HaltOutput; ///< TRUE to start a CTRL-S halt.
|
||||
} SHELL_INFO;
|
||||
|
||||
#pragma pack(1)
|
||||
///
|
||||
/// HII specific Vendor Device Path definition.
|
||||
///
|
||||
typedef struct {
|
||||
VENDOR_DEVICE_PATH VendorDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL End;
|
||||
} SHELL_MAN_HII_VENDOR_DEVICE_PATH;
|
||||
#pragma pack()
|
||||
|
||||
extern SHELL_INFO ShellInfoObject;
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user