mirror of https://github.com/acidanthera/audk.git
MdePkg: Add definition for UEFI25 HII Config keyword handler protocol.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hp.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17427 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
acd32208b0
commit
5ca4bb9f62
|
@ -0,0 +1,199 @@
|
||||||
|
/** @file
|
||||||
|
The file provides the mechanism to set and get the values
|
||||||
|
associated with a keyword exposed through a x-UEFI- prefixed
|
||||||
|
configuration language namespace.
|
||||||
|
|
||||||
|
Copyright (c) 2015, 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 that 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 __EFI_CONFIG_KEYWORD_HANDLER_H__
|
||||||
|
#define __EFI_CONFIG_KEYWORD_HANDLER_H__
|
||||||
|
|
||||||
|
#define EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL_GUID \
|
||||||
|
{ \
|
||||||
|
0x0a8badd5, 0x03b8, 0x4d19, {0xb1, 0x28, 0x7b, 0x8f, 0x0e, 0xda, 0xa5, 0x96 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
//***********************************************************
|
||||||
|
// Progress Errors
|
||||||
|
//***********************************************************
|
||||||
|
#define KEYWORD_HANDLER_NO_ERROR 0x00000000
|
||||||
|
#define KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND 0x00000001
|
||||||
|
#define KEYWORD_HANDLER_MALFORMED_STRING 0x00000002
|
||||||
|
#define KEYWORD_HANDLER_KEYWORD_NOT_FOUND 0x00000004
|
||||||
|
#define KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED 0x00000008
|
||||||
|
#define KEYWORD_HANDLER_ACCESS_NOT_PERMITTED 0x00000010
|
||||||
|
#define KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR 0x80000000
|
||||||
|
|
||||||
|
typedef struct _EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
This function accepts a <MultiKeywordResp> formatted string, finds the associated
|
||||||
|
keyword owners, creates a <MultiConfigResp> string from it and forwards it to the
|
||||||
|
EFI_HII_ROUTING_PROTOCOL.RouteConfig function.
|
||||||
|
|
||||||
|
If there is an issue in resolving the contents of the KeywordString, then the
|
||||||
|
function returns an error and also sets the Progress and ProgressErr with the
|
||||||
|
appropriate information about where the issue occurred and additional data about
|
||||||
|
the nature of the issue.
|
||||||
|
|
||||||
|
In the case when KeywordString containing multiple keywords, when an EFI_NOT_FOUND
|
||||||
|
error is generated during processing the second or later keyword element, the system
|
||||||
|
storage associated with earlier keywords is not modified. All elements of the
|
||||||
|
KeywordString must successfully pass all tests for format and access prior to making
|
||||||
|
any modifications to storage.
|
||||||
|
|
||||||
|
In the case when EFI_DEVICE_ERROR is returned from the processing of a KeywordString
|
||||||
|
containing multiple keywords, the state of storage associated with earlier keywords
|
||||||
|
is undefined.
|
||||||
|
|
||||||
|
|
||||||
|
@param This Pointer to the EFI_KEYWORD_HANDLER _PROTOCOL instance.
|
||||||
|
|
||||||
|
@param KeywordString A null-terminated string in <MultiKeywordResp> format.
|
||||||
|
|
||||||
|
@param Progress On return, points to a character in the KeywordString.
|
||||||
|
Points to the string's NULL terminator if the request
|
||||||
|
was successful. Points to the most recent '&' before
|
||||||
|
the first failing string element if the request was
|
||||||
|
not successful.
|
||||||
|
|
||||||
|
@param ProgressErr If during the processing of the KeywordString there was
|
||||||
|
a failure, this parameter gives additional information
|
||||||
|
about the possible source of the problem. The various
|
||||||
|
errors are defined in "Related Definitions" below.
|
||||||
|
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The specified action was completed successfully.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
|
||||||
|
1. KeywordString is NULL.
|
||||||
|
2. Parsing of the KeywordString resulted in an
|
||||||
|
error. See Progress and ProgressErr for more data.
|
||||||
|
|
||||||
|
@retval EFI_NOT_FOUND An element of the KeywordString was not found.
|
||||||
|
See ProgressErr for more data.
|
||||||
|
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
|
||||||
|
See ProgressErr for more data.
|
||||||
|
|
||||||
|
@retval EFI_ACCESS_DENIED The action violated system policy. See ProgressErr
|
||||||
|
for more data.
|
||||||
|
|
||||||
|
@retval EFI_DEVICE_ERROR An unexpected system error occurred. See ProgressErr
|
||||||
|
for more data.
|
||||||
|
|
||||||
|
**/
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_CONFIG_KEYWORD_HANDLER_SET_DATA) (
|
||||||
|
IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
|
||||||
|
IN CONST EFI_STRING KeywordString,
|
||||||
|
OUT EFI_STRING *Progress,
|
||||||
|
OUT UINT32 *ProgressErr
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
This function accepts a <MultiKeywordRequest> formatted string, finds the underlying
|
||||||
|
keyword owners, creates a <MultiConfigRequest> string from it and forwards it to the
|
||||||
|
EFI_HII_ROUTING_PROTOCOL.ExtractConfig function.
|
||||||
|
|
||||||
|
If there is an issue in resolving the contents of the KeywordString, then the function
|
||||||
|
returns an EFI_INVALID_PARAMETER and also set the Progress and ProgressErr with the
|
||||||
|
appropriate information about where the issue occurred and additional data about the
|
||||||
|
nature of the issue.
|
||||||
|
|
||||||
|
In the case when KeywordString is NULL, or contains multiple keywords, or when
|
||||||
|
EFI_NOT_FOUND is generated while processing the keyword elements, the Results string
|
||||||
|
contains values returned for all keywords processed prior to the keyword generating the
|
||||||
|
error but no values for the keyword with error or any following keywords.
|
||||||
|
|
||||||
|
|
||||||
|
@param This Pointer to the EFI_KEYWORD_HANDLER _PROTOCOL instance.
|
||||||
|
|
||||||
|
@param NameSpaceId A null-terminated string containing the platform configuration
|
||||||
|
language to search through in the system. If a NULL is passed
|
||||||
|
in, then it is assumed that any platform configuration language
|
||||||
|
with the prefix of "x-UEFI-" are searched.
|
||||||
|
|
||||||
|
@param KeywordString A null-terminated string in <MultiKeywordRequest> format. If a
|
||||||
|
NULL is passed in the KeywordString field, all of the known
|
||||||
|
keywords in the system for the NameSpaceId specified are
|
||||||
|
returned in the Results field.
|
||||||
|
|
||||||
|
@param Progress On return, points to a character in the KeywordString. Points
|
||||||
|
to the string's NULL terminator if the request was successful.
|
||||||
|
Points to the most recent '&' before the first failing string
|
||||||
|
element if the request was not successful.
|
||||||
|
|
||||||
|
@param ProgressErr If during the processing of the KeywordString there was a
|
||||||
|
failure, this parameter gives additional information about the
|
||||||
|
possible source of the problem. See the definitions in SetData()
|
||||||
|
for valid value definitions.
|
||||||
|
|
||||||
|
@param Results A null-terminated string in <MultiKeywordResp> format is returned
|
||||||
|
which has all the values filled in for the keywords in the
|
||||||
|
KeywordString. This is a callee-allocated field, and must be freed
|
||||||
|
by the caller after being used.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The specified action was completed successfully.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
|
||||||
|
1.Progress, ProgressErr, or Resuts is NULL.
|
||||||
|
2.Parsing of the KeywordString resulted in an error. See
|
||||||
|
Progress and ProgressErr for more data.
|
||||||
|
|
||||||
|
|
||||||
|
@retval EFI_NOT_FOUND An element of the KeywordString was not found. See
|
||||||
|
ProgressErr for more data.
|
||||||
|
|
||||||
|
@retval EFI_NOT_FOUND The NamespaceId specified was not found. See ProgressErr
|
||||||
|
for more data.
|
||||||
|
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. See
|
||||||
|
ProgressErr for more data.
|
||||||
|
|
||||||
|
@retval EFI_ACCESS_DENIED The action violated system policy. See ProgressErr for
|
||||||
|
more data.
|
||||||
|
|
||||||
|
@retval EFI_DEVICE_ERROR An unexpected system error occurred. See ProgressErr
|
||||||
|
for more data.
|
||||||
|
|
||||||
|
**/
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_CONFIG_KEYWORD_HANDLER_GET_DATA) (
|
||||||
|
IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
|
||||||
|
IN CONST EFI_STRING NameSpaceId, OPTIONAL
|
||||||
|
IN CONST EFI_STRING KeywordString, OPTIONAL
|
||||||
|
OUT EFI_STRING *Progress,
|
||||||
|
OUT UINT32 *ProgressErr,
|
||||||
|
OUT EFI_STRING *Results
|
||||||
|
);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// The EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL provides the mechanism
|
||||||
|
/// to set and get the values associated with a keyword exposed
|
||||||
|
/// through a x-UEFI- prefixed configuration language namespace
|
||||||
|
///
|
||||||
|
|
||||||
|
struct _EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL {
|
||||||
|
EFI_CONFIG_KEYWORD_HANDLER_SET_DATA SetData;
|
||||||
|
EFI_CONFIG_KEYWORD_HANDLER_GET_DATA GetData;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern EFI_GUID gEfiConfigKeywordHandlerProtocolGuid;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -1502,6 +1502,9 @@
|
||||||
## Include/Protocol/BootManagerPolicy.h
|
## Include/Protocol/BootManagerPolicy.h
|
||||||
gEfiBootManagerPolicyProtocolGuid = { 0xfedf8e0c, 0xe147, 0x11e3, { 0x99, 0x03, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa }}
|
gEfiBootManagerPolicyProtocolGuid = { 0xfedf8e0c, 0xe147, 0x11e3, { 0x99, 0x03, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa }}
|
||||||
|
|
||||||
|
## Include/Protocol/HiiConfigKeyword.h
|
||||||
|
gEfiConfigKeywordHandlerProtocolGuid = {0x0a8badd5, 0x03b8, 0x4d19, {0xb1, 0x28, 0x7b, 0x8f, 0x0e, 0xda, 0xa5, 0x96}}
|
||||||
|
|
||||||
#
|
#
|
||||||
# [Error.gEfiMdePkgTokenSpaceGuid]
|
# [Error.gEfiMdePkgTokenSpaceGuid]
|
||||||
# 0x80000001 | Invalid value provided.
|
# 0x80000001 | Invalid value provided.
|
||||||
|
|
Loading…
Reference in New Issue