mirror of https://github.com/acidanthera/audk.git
Add FvbServiceLib, HiiLib & IfrSupportLib.h
They originate from MdePkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6502 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
c555018670
commit
4c76e9cc9a
|
@ -0,0 +1,311 @@
|
||||||
|
/** @file
|
||||||
|
Firmeware Volume BLock Service Library
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
|
All rights reserved. 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 __FVB_SERVICE_LIB_H__
|
||||||
|
#define __FVB_SERVICE_LIB_H__
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads specified number of bytes into a buffer from the specified block.
|
||||||
|
|
||||||
|
The EfiFvbReadBlock() function reads the requested number of bytes from
|
||||||
|
the requested block in the specified firmware volume and stores them in
|
||||||
|
the provided buffer. Implementations should be mindful that the firmware
|
||||||
|
volume might be in the ReadDisabled state. If it is in this state, the
|
||||||
|
EfiFvbReadBlock() function must return the status code EFI_ACCESS_DENIED
|
||||||
|
without modifying the contents of the buffer.
|
||||||
|
|
||||||
|
The EfiFvbReadBlock() function must also prevent spanning block boundaries.
|
||||||
|
If a read is requested that would span a block boundary, the read must read
|
||||||
|
up to the boundary but not beyond. The output parameter NumBytes must be
|
||||||
|
set to correctly indicate the number of bytes actually read.
|
||||||
|
The caller must be aware that a read may be partially completed.
|
||||||
|
|
||||||
|
If NumBytes is NULL, then ASSERT().
|
||||||
|
|
||||||
|
If Buffer is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be read from.
|
||||||
|
@param[in] Lba The logical block address to be read from
|
||||||
|
@param[in] Offset The offset relative to the block, at which to begin reading.
|
||||||
|
@param[in, out] NumBytes Pointer to a UINTN. On input, *NumBytes contains the total
|
||||||
|
size of the buffer. On output, it contains the actual number
|
||||||
|
of bytes read.
|
||||||
|
@param[out] Buffer Pointer to a caller allocated buffer that will be
|
||||||
|
used to hold the data read.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The firmware volume was read successfully and contents are in Buffer.
|
||||||
|
@retval EFI_BAD_BUFFER_SIZE Read attempted across an LBA boundary. On output, NumBytes contains
|
||||||
|
the total number of bytes returned in Buffer.
|
||||||
|
@retval EFI_ACCESS_DENIED The firmware volume is in the ReadDisabled state.
|
||||||
|
@retval EFI_DEVICE_ERROR The block device is not functioning correctly and could not be read.
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter, Instance is larger than the max FVB number. Lba index
|
||||||
|
is larger than the last block of the firmware volume. Offset is larger
|
||||||
|
than the block size.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbReadBlock (
|
||||||
|
IN UINTN Instance,
|
||||||
|
IN EFI_LBA Lba,
|
||||||
|
IN UINTN Offset,
|
||||||
|
IN OUT UINTN *NumBytes,
|
||||||
|
OUT UINT8 *Buffer
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Writes specified number of bytes from the input buffer to the block
|
||||||
|
|
||||||
|
The EfiFvbWriteBlock() function writes the specified number of bytes
|
||||||
|
from the provided buffer to the specified block and offset in the
|
||||||
|
requested firmware volume.
|
||||||
|
|
||||||
|
If the firmware volume is sticky write, the caller must ensure that
|
||||||
|
all the bits of the specified range to write are in the EFI_FVB_ERASE_POLARITY
|
||||||
|
state before calling the EfiFvbWriteBlock() function, or else the
|
||||||
|
result will be unpredictable. This unpredictability arises because,
|
||||||
|
for a sticky-write firmware volume, a write may negate a bit in the
|
||||||
|
EFI_FVB_ERASE_POLARITY state but it cannot flip it back again. In
|
||||||
|
general, before calling the EfiFvbWriteBlock() function, the caller
|
||||||
|
should call the EfiFvbEraseBlock() function first to erase the specified
|
||||||
|
block to write. A block erase cycle will transition bits from the
|
||||||
|
(NOT)EFI_FVB_ERASE_POLARITY state back to the EFI_FVB_ERASE_POLARITY state.
|
||||||
|
Implementations should be mindful that the firmware volume might be
|
||||||
|
in the WriteDisabled state. If it is in this state, the EfiFvbWriteBlock()
|
||||||
|
function must return the status code EFI_ACCESS_DENIED without modifying
|
||||||
|
the contents of the firmware volume.
|
||||||
|
|
||||||
|
The EfiFvbWriteBlock() function must also prevent spanning block boundaries.
|
||||||
|
If a write is requested that spans a block boundary, the write must store
|
||||||
|
up to the boundary but not beyond. The output parameter NumBytes must be
|
||||||
|
set to correctly indicate the number of bytes actually written. The caller
|
||||||
|
must be aware that a write may be partially completed.
|
||||||
|
All writes, partial or otherwise, must be fully flushed to the hardware
|
||||||
|
before the EfiFvbWriteBlock() function returns.
|
||||||
|
|
||||||
|
If NumBytes is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param Instance The FV instance to be written to
|
||||||
|
@param Lba The starting logical block index to write to
|
||||||
|
@param Offset The offset relative to the block, at which to begin writting.
|
||||||
|
@param NumBytes Pointer to a UINTN. On input, *NumBytes contains
|
||||||
|
the total size of the buffer. On output, it contains
|
||||||
|
the actual number of bytes written.
|
||||||
|
@param Buffer Pointer to a caller allocated buffer that contains
|
||||||
|
the source for the write
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The firmware volume was written successfully.
|
||||||
|
@retval EFI_BAD_BUFFER_SIZE The write was attempted across an LBA boundary.
|
||||||
|
On output, NumBytes contains the total number of bytes actually written.
|
||||||
|
@retval EFI_ACCESS_DENIED The firmware volume is in the WriteDisabled state.
|
||||||
|
@retval EFI_DEVICE_ERROR The block device is malfunctioning and could not be written.
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter, Instance is larger than the max FVB number.
|
||||||
|
Lba index is larger than the last block of the firmware volume.
|
||||||
|
Offset is larger than the block size.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbWriteBlock (
|
||||||
|
IN UINTN Instance,
|
||||||
|
IN EFI_LBA Lba,
|
||||||
|
IN UINTN Offset,
|
||||||
|
IN OUT UINTN *NumBytes,
|
||||||
|
IN UINT8 *Buffer
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Erases and initializes a firmware volume block.
|
||||||
|
|
||||||
|
The EfiFvbEraseBlock() function erases one block specified by Lba.
|
||||||
|
Implementations should be mindful that the firmware volume might
|
||||||
|
be in the WriteDisabled state. If it is in this state, the EfiFvbEraseBlock()
|
||||||
|
function must return the status code EFI_ACCESS_DENIED without
|
||||||
|
modifying the contents of the firmware volume. If Instance is
|
||||||
|
larger than the max FVB number, or Lba index is larger than the
|
||||||
|
last block of the firmware volume, this function return the status
|
||||||
|
code EFI_INVALID_PARAMETER.
|
||||||
|
|
||||||
|
All calls to EfiFvbEraseBlock() must be fully flushed to the
|
||||||
|
hardware before this function returns.
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be erased.
|
||||||
|
@param[in] Lba The logical block index to be erased from.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The erase request was successfully completed.
|
||||||
|
@retval EFI_ACCESS_DENIED The firmware volume is in the WriteDisabled state.
|
||||||
|
@retval EFI_DEVICE_ERROR The block device is not functioning correctly and
|
||||||
|
could not be written. The firmware device may
|
||||||
|
have been partially erased.
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max
|
||||||
|
FVB number. Lba index is larger than the last block
|
||||||
|
of the firmware volume.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbEraseBlock (
|
||||||
|
IN UINTN Instance,
|
||||||
|
IN EFI_LBA Lba
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves the attributes and current settings of the specified block,
|
||||||
|
returns resulting attributes in output parameter.
|
||||||
|
|
||||||
|
The EfiFvbGetAttributes() function retrieves the attributes and current
|
||||||
|
settings of the block specified by Instance. If Instance is larger than
|
||||||
|
the max FVB number, this function returns the status code EFI_INVALID_PARAMETER.
|
||||||
|
|
||||||
|
If Attributes is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be operated.
|
||||||
|
@param[out] Attributes Pointer to EFI_FVB_ATTRIBUTES_2 in which the
|
||||||
|
attributes and current settings are returned.
|
||||||
|
|
||||||
|
@retval EFI_EFI_SUCCESS The firmware volume attributes were returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max FVB number.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbGetVolumeAttributes (
|
||||||
|
IN UINTN Instance,
|
||||||
|
OUT EFI_FVB_ATTRIBUTES_2 *Attributes
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Modify the attributes and current settings of the specified block
|
||||||
|
according to the input parameter.
|
||||||
|
|
||||||
|
The EfiFvbSetAttributes() function sets configurable firmware volume
|
||||||
|
attributes and returns the new settings of the firmware volume specified
|
||||||
|
by Instance. If Instance is larger than the max FVB number, this function
|
||||||
|
returns the status code EFI_INVALID_PARAMETER.
|
||||||
|
|
||||||
|
If Attributes is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be operated.
|
||||||
|
@param[in, out]Attributes On input, Attributes is a pointer to EFI_FVB_ATTRIBUTES_2
|
||||||
|
that contains the desired firmware volume settings.
|
||||||
|
On successful return, it contains the new settings of the firmware volume.
|
||||||
|
|
||||||
|
@retval EFI_EFI_SUCCESS The firmware volume attributes were modified successfully.
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max FVB number.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbSetVolumeAttributes (
|
||||||
|
IN UINTN Instance,
|
||||||
|
IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves the physical address of the specified memory mapped FV.
|
||||||
|
|
||||||
|
Retrieve the base address of a memory-mapped firmware volume specified by Instance.
|
||||||
|
If Instance is larger than the max FVB number, this function returns the status
|
||||||
|
code EFI_INVALID_PARAMETER.
|
||||||
|
|
||||||
|
If BaseAddress is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be operated.
|
||||||
|
@param[out] BaseAddress Pointer to a caller allocated EFI_PHYSICAL_ADDRESS
|
||||||
|
that on successful return, contains the base address
|
||||||
|
of the firmware volume.
|
||||||
|
|
||||||
|
@retval EFI_EFI_SUCCESS The firmware volume base address is returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max FVB number.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbGetPhysicalAddress (
|
||||||
|
IN UINTN Instance,
|
||||||
|
OUT EFI_PHYSICAL_ADDRESS *BaseAddress
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieve the block size of the specified fv.
|
||||||
|
|
||||||
|
The EfiFvbGetBlockSize() function retrieves the size of the requested block.
|
||||||
|
It also returns the number of additional blocks with the identical size.
|
||||||
|
If Instance is larger than the max FVB number, or Lba index is larger than
|
||||||
|
the last block of the firmware volume, this function return the status code
|
||||||
|
EFI_INVALID_PARAMETER.
|
||||||
|
|
||||||
|
If BlockSize is NULL, then ASSERT().
|
||||||
|
|
||||||
|
If NumOfBlocks is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be operated.
|
||||||
|
@param[in] Lba Indicates which block to return the size for.
|
||||||
|
@param[out] BlockSize Pointer to a caller-allocated UINTN in which the
|
||||||
|
size of the block is returned.
|
||||||
|
@param[out] NumOfBlocks Pointer to a caller-allocated UINTN in which the
|
||||||
|
number of consecutive blocks, starting with Lba,
|
||||||
|
is returned. All blocks in this range have a size of BlockSize.
|
||||||
|
|
||||||
|
@retval EFI_EFI_SUCCESS The firmware volume base address is returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max FVB number.
|
||||||
|
Lba index is larger than the last block of the firmware volume.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbGetBlockSize (
|
||||||
|
IN UINTN Instance,
|
||||||
|
IN EFI_LBA Lba,
|
||||||
|
OUT UINTN *BlockSize,
|
||||||
|
OUT UINTN *NumOfBlocks
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Erases and initializes a specified range of a firmware volume.
|
||||||
|
|
||||||
|
The EfiFvbEraseCustomBlockRange() function erases the specified range in the firmware
|
||||||
|
volume index by Instance. If Instance is larger than the max FVB number, StartLba or
|
||||||
|
LastLba index is larger than the last block of the firmware volume, StartLba > LastLba
|
||||||
|
or StartLba equal to LastLba but OffsetStartLba > OffsetLastLba, this function return
|
||||||
|
the status code EFI_INVALID_PARAMETER.
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be operated.
|
||||||
|
@param[in] StartLba The starting logical block index to be erased.
|
||||||
|
@param[in] OffsetStartLba Offset into the starting block at which to
|
||||||
|
begin erasing.
|
||||||
|
@param[in] LastLba The last logical block index to be erased.
|
||||||
|
@param[in] OffsetLastLba Offset into the last block at which to end erasing.
|
||||||
|
|
||||||
|
@retval EFI_EFI_SUCCESS Successfully erase custom block range
|
||||||
|
@retval EFI_INVALID_PARAMETER Invalid parameter. Instance is larger than the max FVB number.
|
||||||
|
@retval EFI_UNSUPPORTED Firmware volume block device has no this capability.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiFvbEraseCustomBlockRange (
|
||||||
|
IN UINTN Instance,
|
||||||
|
IN EFI_LBA StartLba,
|
||||||
|
IN UINTN OffsetStartLba,
|
||||||
|
IN EFI_LBA LastLba,
|
||||||
|
IN UINTN OffsetLastLba
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,500 @@
|
||||||
|
/** @file
|
||||||
|
Public include file for the HII Library
|
||||||
|
|
||||||
|
Copyright (c) 2007 - 2008, Intel Corporation
|
||||||
|
All rights reserved. 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 __HII_LIB_H__
|
||||||
|
#define __HII_LIB_H__
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Assemble EFI_HII_PACKAGE_LIST according to the passed in packages.
|
||||||
|
|
||||||
|
If GuidId is NULL, then ASSERT.
|
||||||
|
If not enough resource to complete the operation, then ASSERT.
|
||||||
|
|
||||||
|
@param NumberOfPackages Number of packages.
|
||||||
|
@param GuidId Package GUID.
|
||||||
|
@param ... Variable argument list for packages to be assembled.
|
||||||
|
|
||||||
|
@return Pointer of EFI_HII_PACKAGE_LIST_HEADER.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_HII_PACKAGE_LIST_HEADER *
|
||||||
|
EFIAPI
|
||||||
|
HiiLibPreparePackageList (
|
||||||
|
IN UINTN NumberOfPackages,
|
||||||
|
IN CONST EFI_GUID *GuidId,
|
||||||
|
...
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function allocates pool for an EFI_HII_PACKAGE_LIST structure
|
||||||
|
with additional space that is big enough to host all packages described by the variable
|
||||||
|
argument list of package pointers. The allocated structure is initialized using NumberOfPackages,
|
||||||
|
GuidId, and the variable length argument list of package pointers.
|
||||||
|
|
||||||
|
Then, EFI_HII_PACKAGE_LIST will be register to the default System HII Database. The
|
||||||
|
Handle to the newly registered Package List is returned throught HiiHandle.
|
||||||
|
|
||||||
|
If HiiHandle is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param NumberOfPackages The number of HII packages to register.
|
||||||
|
@param GuidId Package List GUID ID.
|
||||||
|
@param DriverHandle Optional. If not NULL, the DriverHandle on which an instance of DEVICE_PATH_PROTOCOL is installed.
|
||||||
|
This DriverHandle uniquely defines the device that the added packages are associated with.
|
||||||
|
@param HiiHandle On output, the HiiHandle is update with the handle which can be used to retrieve the Package
|
||||||
|
List later. If the functions failed to add the package to the default HII database, this value will
|
||||||
|
be set to NULL.
|
||||||
|
@param ... The variable argument list describing all HII Package.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS If the packages are successfully added to the default HII database.
|
||||||
|
@return EFI_OUT_OF_RESOURCE Not enough resource to complete the operation.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibAddPackages (
|
||||||
|
IN UINTN NumberOfPackages,
|
||||||
|
IN CONST EFI_GUID *GuidId,
|
||||||
|
IN EFI_HANDLE DriverHandle, OPTIONAL
|
||||||
|
OUT EFI_HII_HANDLE *HiiHandle,
|
||||||
|
...
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Removes a package list from the default HII database.
|
||||||
|
|
||||||
|
If HiiHandle is NULL, then ASSERT.
|
||||||
|
If HiiHandle is not a valid EFI_HII_HANDLE in the default HII database, then ASSERT.
|
||||||
|
|
||||||
|
@param HiiHandle The handle that was previously registered to the data base that is requested for removal.
|
||||||
|
List later.
|
||||||
|
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
HiiLibRemovePackages (
|
||||||
|
IN EFI_HII_HANDLE HiiHandle
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function adds the string into String Package of each language
|
||||||
|
supported by the package list.
|
||||||
|
|
||||||
|
If String is NULL, then ASSERT.
|
||||||
|
If StringId is NULL, the ASSERT.
|
||||||
|
If PackageList could not be found in the default HII database, then ASSERT.
|
||||||
|
|
||||||
|
@param PackageList Handle of the package list where this string will
|
||||||
|
be added.
|
||||||
|
@param StringId On return, contains the new strings id, which is
|
||||||
|
unique within PackageList.
|
||||||
|
@param String Points to the new null-terminated string.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The new string was added successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Could not add the string due to lack of resources.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibNewString (
|
||||||
|
IN EFI_HII_HANDLE PackageList,
|
||||||
|
OUT EFI_STRING_ID *StringId,
|
||||||
|
IN CONST EFI_STRING String
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function update the specified string in String Package of each language
|
||||||
|
supported by the package list.
|
||||||
|
|
||||||
|
If String is NULL, then ASSERT.
|
||||||
|
If PackageList could not be found in the default HII database, then ASSERT.
|
||||||
|
If StringId is not found in PackageList, then ASSERT.
|
||||||
|
|
||||||
|
@param PackageList Handle of the package list where this string will
|
||||||
|
be added.
|
||||||
|
@param StringId Ths String Id to be updated.
|
||||||
|
@param String Points to the new null-terminated string.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The new string was added successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Could not add the string due to lack of resources.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibSetString (
|
||||||
|
IN EFI_HII_HANDLE PackageList,
|
||||||
|
IN EFI_STRING_ID StringId,
|
||||||
|
IN CONST EFI_STRING String
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function try to retrieve string from String package of current language.
|
||||||
|
If fails, it try to retrieve string from String package of first language it support.
|
||||||
|
|
||||||
|
If StringSize is NULL, then ASSERT.
|
||||||
|
If String is NULL and *StringSize is not 0, then ASSERT.
|
||||||
|
If PackageList could not be found in the default HII database, then ASSERT.
|
||||||
|
If StringId is not found in PackageList, then ASSERT.
|
||||||
|
|
||||||
|
@param PackageList The package list in the HII database to search for
|
||||||
|
the specified string.
|
||||||
|
@param StringId The string's id, which is unique within
|
||||||
|
PackageList.
|
||||||
|
@param String Points to the new null-terminated string.
|
||||||
|
@param StringSize On entry, points to the size of the buffer pointed
|
||||||
|
to by String, in bytes. On return, points to the
|
||||||
|
length of the string, in bytes.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The string was returned successfully.
|
||||||
|
@retval EFI_NOT_FOUND The string specified by StringId is not available.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The buffer specified by StringLength is too small
|
||||||
|
to hold the string.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetString (
|
||||||
|
IN EFI_HII_HANDLE PackageList,
|
||||||
|
IN EFI_STRING_ID StringId,
|
||||||
|
OUT EFI_STRING String,
|
||||||
|
IN OUT UINTN *StringSize
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get string specified by StringId form the HiiHandle. The caller
|
||||||
|
is responsible to free the *String.
|
||||||
|
|
||||||
|
If String is NULL, then ASSERT.
|
||||||
|
If HiiHandle could not be found in the default HII database, then ASSERT.
|
||||||
|
If StringId is not found in PackageList, then ASSERT.
|
||||||
|
|
||||||
|
@param HiiHandle The HII handle of package list.
|
||||||
|
@param StringId The String ID.
|
||||||
|
@param String The output string.
|
||||||
|
|
||||||
|
@retval EFI_NOT_FOUND String is not found.
|
||||||
|
@retval EFI_SUCCESS Operation is successful.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There is not enought memory in the system.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetStringFromHandle (
|
||||||
|
IN EFI_HII_HANDLE HiiHandle,
|
||||||
|
IN EFI_STRING_ID StringId,
|
||||||
|
OUT EFI_STRING *String
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get the string given the StringId and String package Producer's Guid. The caller
|
||||||
|
is responsible to free the *String.
|
||||||
|
|
||||||
|
If PackageList with the matching ProducerGuid is not found, then ASSERT.
|
||||||
|
If PackageList with the matching ProducerGuid is found but no String is
|
||||||
|
specified by StringId is found, then ASSERT.
|
||||||
|
|
||||||
|
@param ProducerGuid The Guid of String package list.
|
||||||
|
@param StringId The String ID.
|
||||||
|
@param String The output string.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Operation is successful.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There is not enought memory in the system.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetStringFromToken (
|
||||||
|
IN EFI_GUID *ProducerGuid,
|
||||||
|
IN EFI_STRING_ID StringId,
|
||||||
|
OUT EFI_STRING *String
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Determines the handles that are currently active in the database.
|
||||||
|
It's the caller's responsibility to free handle buffer.
|
||||||
|
|
||||||
|
If HandleBufferLength is NULL, then ASSERT.
|
||||||
|
If HiiHandleBuffer is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param HandleBufferLength On input, a pointer to the length of the handle
|
||||||
|
buffer. On output, the length of the handle buffer
|
||||||
|
that is required for the handles found.
|
||||||
|
@param HiiHandleBuffer Pointer to an array of Hii Handles returned.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Get an array of Hii Handles successfully.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetHiiHandles (
|
||||||
|
IN OUT UINTN *HandleBufferLength,
|
||||||
|
OUT EFI_HII_HANDLE **HiiHandleBuffer
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Extract Hii package list GUID for given HII handle.
|
||||||
|
|
||||||
|
If HiiHandle could not be found in the default HII database, then ASSERT.
|
||||||
|
If Guid is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param Handle Hii handle
|
||||||
|
@param Guid Package list GUID
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Successfully extract GUID from Hii database.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibExtractGuidFromHiiHandle (
|
||||||
|
IN EFI_HII_HANDLE Handle,
|
||||||
|
OUT EFI_GUID *Guid
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Find HII Handle in the default HII database associated with given Device Path.
|
||||||
|
|
||||||
|
If DevicePath is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param DevicePath Device Path associated with the HII package list
|
||||||
|
handle.
|
||||||
|
|
||||||
|
@retval Handle HII package list Handle associated with the Device
|
||||||
|
Path.
|
||||||
|
@retval NULL Hii Package list handle is not found.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_HII_HANDLE
|
||||||
|
EFIAPI
|
||||||
|
HiiLibDevicePathToHiiHandle (
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get next language from language code list (with separator ';').
|
||||||
|
|
||||||
|
If LangCode is NULL, then ASSERT.
|
||||||
|
If Lang is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param LangCode On input: point to first language in the list. On
|
||||||
|
output: point to next language in the list, or
|
||||||
|
NULL if no more language in the list.
|
||||||
|
@param Lang The first language in the list.
|
||||||
|
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetNextLanguage (
|
||||||
|
IN OUT CHAR8 **LangCode,
|
||||||
|
OUT CHAR8 *Lang
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function returns the list of supported languages, in the format specified
|
||||||
|
in UEFI specification Appendix M.
|
||||||
|
|
||||||
|
If HiiHandle is not a valid Handle in the default HII database, then ASSERT.
|
||||||
|
|
||||||
|
@param HiiHandle The HII package list handle.
|
||||||
|
|
||||||
|
@retval !NULL The supported languages.
|
||||||
|
@retval NULL If Supported Languages can not be retrived.
|
||||||
|
|
||||||
|
**/
|
||||||
|
CHAR8 *
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetSupportedLanguages (
|
||||||
|
IN EFI_HII_HANDLE HiiHandle
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function returns the list of supported 2nd languages, in the format specified
|
||||||
|
in UEFI specification Appendix M.
|
||||||
|
|
||||||
|
If HiiHandle is not a valid Handle in the default HII database, then ASSERT.
|
||||||
|
If not enough resource to complete the operation, then ASSERT.
|
||||||
|
|
||||||
|
@param HiiHandle The HII package list handle.
|
||||||
|
@param FirstLanguage Pointer to language name buffer.
|
||||||
|
|
||||||
|
@return The supported languages.
|
||||||
|
|
||||||
|
**/
|
||||||
|
CHAR8 *
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetSupportedSecondaryLanguages (
|
||||||
|
IN EFI_HII_HANDLE HiiHandle,
|
||||||
|
IN CONST CHAR8 *FirstLanguage
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function returns the number of supported languages on HiiHandle.
|
||||||
|
|
||||||
|
If HiiHandle is not a valid Handle in the default HII database, then ASSERT.
|
||||||
|
If not enough resource to complete the operation, then ASSERT.
|
||||||
|
|
||||||
|
@param HiiHandle The HII package list handle.
|
||||||
|
|
||||||
|
@return The number of supported languages.
|
||||||
|
|
||||||
|
**/
|
||||||
|
UINT16
|
||||||
|
EFIAPI
|
||||||
|
HiiLibGetSupportedLanguageNumber (
|
||||||
|
IN EFI_HII_HANDLE HiiHandle
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Exports the contents of one or all package lists in the HII database into a buffer.
|
||||||
|
|
||||||
|
If Handle is not NULL and not a valid EFI_HII_HANDLE registered in the database,
|
||||||
|
then ASSERT.
|
||||||
|
If PackageListHeader is NULL, then ASSERT.
|
||||||
|
If PackageListSize is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param Handle The HII Handle.
|
||||||
|
@param PackageListHeader A pointer to a buffer that will contain the results of
|
||||||
|
the export function.
|
||||||
|
@param PackageListSize On output, the length of the buffer that is required for the exported data.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Package exported.
|
||||||
|
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Not enought memory to complete the operations.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibExportPackageLists (
|
||||||
|
IN EFI_HII_HANDLE Handle,
|
||||||
|
OUT EFI_HII_PACKAGE_LIST_HEADER **PackageListHeader,
|
||||||
|
OUT UINTN *PackageListSize
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
This function returns a list of the package handles of the
|
||||||
|
specified type that are currently active in the HII database. The
|
||||||
|
pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package
|
||||||
|
handles to be listed.
|
||||||
|
|
||||||
|
If HandleBufferLength is NULL, then ASSERT.
|
||||||
|
If HandleBuffer is NULL, the ASSERT.
|
||||||
|
If PackageType is EFI_HII_PACKAGE_TYPE_GUID and PackageGuid is
|
||||||
|
NULL, then ASSERT.
|
||||||
|
If PackageType is not EFI_HII_PACKAGE_TYPE_GUID and PackageGuid is not
|
||||||
|
NULL, then ASSERT.
|
||||||
|
|
||||||
|
|
||||||
|
@param PackageType Specifies the package type of the packages
|
||||||
|
to list or EFI_HII_PACKAGE_TYPE_ALL for
|
||||||
|
all packages to be listed.
|
||||||
|
|
||||||
|
@param PackageGuid If PackageType is
|
||||||
|
EFI_HII_PACKAGE_TYPE_GUID, then this is
|
||||||
|
the pointer to the GUID which must match
|
||||||
|
the Guid field of
|
||||||
|
EFI_HII_PACKAGE_GUID_HEADER. Otherwise, it
|
||||||
|
must be NULL.
|
||||||
|
|
||||||
|
@param HandleBufferLength On output, the length of the handle buffer
|
||||||
|
that is required for the handles found.
|
||||||
|
|
||||||
|
@param HandleBuffer On output, an array of EFI_HII_HANDLE instances returned.
|
||||||
|
The caller is responcible to free this pointer allocated.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The matching handles are outputed successfully.
|
||||||
|
HandleBufferLength is updated with the actual length.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Not enough resource to complete the operation.
|
||||||
|
@retval EFI_NOT_FOUND No matching handle could not be found in database.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HiiLibListPackageLists (
|
||||||
|
IN UINT8 PackageType,
|
||||||
|
IN CONST EFI_GUID *PackageGuid,
|
||||||
|
IN OUT UINTN *HandleBufferLength,
|
||||||
|
OUT EFI_HII_HANDLE **Handle
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert language code from RFC3066 to ISO639-2.
|
||||||
|
|
||||||
|
LanguageRfc3066 contain a single RFC 3066 code such as
|
||||||
|
"en-US" or "fr-FR".
|
||||||
|
|
||||||
|
The LanguageRfc3066 must be a buffer large enough
|
||||||
|
for ISO_639_2_ENTRY_SIZE characters.
|
||||||
|
|
||||||
|
If LanguageRfc3066 is NULL, then ASSERT.
|
||||||
|
If LanguageIso639 is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param LanguageRfc3066 RFC3066 language code.
|
||||||
|
@param LanguageIso639 ISO639-2 language code.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Language code converted.
|
||||||
|
@retval EFI_NOT_FOUND Language code not found.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
ConvertRfc3066LanguageToIso639Language (
|
||||||
|
IN CHAR8 *LanguageRfc3066,
|
||||||
|
OUT CHAR8 *LanguageIso639
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert language code from ISO639-2 to RFC3066.
|
||||||
|
|
||||||
|
LanguageIso639 contain a single ISO639-2 code such as
|
||||||
|
"eng" or "fra".
|
||||||
|
|
||||||
|
The LanguageRfc3066 must be a buffer large enough
|
||||||
|
for RFC_3066_ENTRY_SIZE characters.
|
||||||
|
|
||||||
|
If LanguageIso639 is NULL, then ASSERT.
|
||||||
|
If LanguageRfc3066 is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param LanguageIso639 ISO639-2 language code.
|
||||||
|
@param LanguageRfc3066 RFC3066 language code.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Language code converted.
|
||||||
|
@retval EFI_NOT_FOUND Language code not found.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
ConvertIso639LanguageToRfc3066Language (
|
||||||
|
IN CONST CHAR8 *LanguageIso639,
|
||||||
|
OUT CHAR8 *LanguageRfc3066
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert language code list from RFC3066 to ISO639-2, e.g. "en-US;fr-FR" will
|
||||||
|
be converted to "engfra".
|
||||||
|
|
||||||
|
If SupportedLanguages is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param SupportedLanguages The RFC3066 language list.
|
||||||
|
|
||||||
|
@return The ISO639-2 language list.
|
||||||
|
|
||||||
|
**/
|
||||||
|
CHAR8 *
|
||||||
|
EFIAPI
|
||||||
|
Rfc3066ToIso639 (
|
||||||
|
CHAR8 *SupportedLanguages
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,765 @@
|
||||||
|
/** @file
|
||||||
|
This library contains functions to do IFR opcode creation and utility functions
|
||||||
|
to help module to interact with a UEFI Form Browser.
|
||||||
|
|
||||||
|
Copyright (c) 2007 - 2008, Intel Corporation
|
||||||
|
All rights reserved. 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 _IFR_SUPPORT_LIBRARY_H_
|
||||||
|
#define _IFR_SUPPORT_LIBRARY_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <Protocol/HiiFont.h>
|
||||||
|
#include <Protocol/HiiImage.h>
|
||||||
|
#include <Protocol/HiiString.h>
|
||||||
|
#include <Protocol/HiiDatabase.h>
|
||||||
|
#include <Protocol/HiiConfigRouting.h>
|
||||||
|
#include <Protocol/HiiConfigAccess.h>
|
||||||
|
#include <Protocol/FormBrowser2.h>
|
||||||
|
#include <Protocol/SimpleTextOut.h>
|
||||||
|
|
||||||
|
#include <Guid/GlobalVariable.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// The architectural variable "Lang" and "LangCodes" are deprecated in UEFI
|
||||||
|
// specification. While, UEFI specification also states that these deprecated
|
||||||
|
// variables may be provided for backwards compatibility.
|
||||||
|
|
||||||
|
#define EFI_LANGUAGE_VARIABLE L"Lang"
|
||||||
|
#define EFI_LANGUAGE_CODES_VARIABLE L"LangCodes"
|
||||||
|
|
||||||
|
#define UEFI_LANGUAGE_VARIABLE L"PlatformLang"
|
||||||
|
#define UEFI_LANGUAGE_CODES_VARIABLE L"PlatformLangCodes"
|
||||||
|
|
||||||
|
#define INVALID_VARSTORE_ID 0
|
||||||
|
|
||||||
|
#define QUESTION_FLAGS (EFI_IFR_FLAG_READ_ONLY | EFI_IFR_FLAG_CALLBACK | EFI_IFR_FLAG_RESET_REQUIRED | EFI_IFR_FLAG_OPTIONS_ONLY)
|
||||||
|
#define QUESTION_FLAGS_MASK (~QUESTION_FLAGS)
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
typedef struct {
|
||||||
|
EFI_STRING_ID StringToken;
|
||||||
|
EFI_IFR_TYPE_VALUE Value;
|
||||||
|
UINT8 Flags;
|
||||||
|
} IFR_OPTION;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
///
|
||||||
|
/// Buffer size allocated for Data.
|
||||||
|
///
|
||||||
|
UINT32 BufferSize;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Offset in Data to append the newly created opcode binary.
|
||||||
|
/// It will be adjusted automatically in Create***OpCode(), and should be
|
||||||
|
/// initialized to 0 before invocation of a serial of Create***OpCode()
|
||||||
|
///
|
||||||
|
UINT32 Offset;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// The destination buffer for created op-codes
|
||||||
|
///
|
||||||
|
UINT8 *Data;
|
||||||
|
} EFI_HII_UPDATE_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_END_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateEndOpCode (
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_DEFAULT_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param Value Value for the default
|
||||||
|
@param Type Type for the default
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER The type is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateDefaultOpCode (
|
||||||
|
IN EFI_IFR_TYPE_VALUE *Value,
|
||||||
|
IN UINT8 Type,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_ACTION_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param QuestionId Question ID
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param QuestionFlags Flags in Question Header
|
||||||
|
@param QuestionConfig String ID for configuration
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If QuestionFlags is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateActionOpCode (
|
||||||
|
IN EFI_QUESTION_ID QuestionId,
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 QuestionFlags,
|
||||||
|
IN EFI_STRING_ID QuestionConfig,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_SUBTITLE_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param Flags Subtitle opcode flags
|
||||||
|
@param Scope Subtitle Scope bit
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateSubTitleOpCode (
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 Flags,
|
||||||
|
IN UINT8 Scope,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_TEXT_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param TextTwo String ID for text two
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateTextOpCode (
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN EFI_STRING_ID TextTwo,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_REF_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param FormId Destination Form ID
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param QuestionFlags Flags in Question Header
|
||||||
|
@param QuestionId Question ID
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If QuestionFlags is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateGotoOpCode (
|
||||||
|
IN EFI_FORM_ID FormId,
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 QuestionFlags,
|
||||||
|
IN EFI_QUESTION_ID QuestionId,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_ONE_OF_OPTION_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param OptionCount The number of options.
|
||||||
|
@param OptionsList The list of Options.
|
||||||
|
@param Type The data type.
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If OptionCount is not zero but OptionsList is NULL.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateOneOfOptionOpCode (
|
||||||
|
IN UINTN OptionCount,
|
||||||
|
IN IFR_OPTION *OptionsList,
|
||||||
|
IN UINT8 Type,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_ONE_OF_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param QuestionId Question ID
|
||||||
|
@param VarStoreId Storage ID
|
||||||
|
@param VarOffset Offset in Storage
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param QuestionFlags Flags in Question Header
|
||||||
|
@param OneOfFlags Flags for oneof opcode
|
||||||
|
@param OptionsList List of options
|
||||||
|
@param OptionCount Number of options in option list
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If QuestionFlags is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateOneOfOpCode (
|
||||||
|
IN EFI_QUESTION_ID QuestionId,
|
||||||
|
IN EFI_VARSTORE_ID VarStoreId,
|
||||||
|
IN UINT16 VarOffset,
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 QuestionFlags,
|
||||||
|
IN UINT8 OneOfFlags,
|
||||||
|
IN IFR_OPTION *OptionsList,
|
||||||
|
IN UINTN OptionCount,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_ORDERED_LIST_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param QuestionId Question ID
|
||||||
|
@param VarStoreId Storage ID
|
||||||
|
@param VarOffset Offset in Storage
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param QuestionFlags Flags in Question Header
|
||||||
|
@param OrderedListFlags Flags for ordered list opcode
|
||||||
|
@param DataType Type for option value
|
||||||
|
@param MaxContainers Maximum count for options in this ordered list
|
||||||
|
@param OptionsList List of options
|
||||||
|
@param OptionCount Number of options in option list
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If QuestionFlags is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateOrderedListOpCode (
|
||||||
|
IN EFI_QUESTION_ID QuestionId,
|
||||||
|
IN EFI_VARSTORE_ID VarStoreId,
|
||||||
|
IN UINT16 VarOffset,
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 QuestionFlags,
|
||||||
|
IN UINT8 OrderedListFlags,
|
||||||
|
IN UINT8 DataType,
|
||||||
|
IN UINT8 MaxContainers,
|
||||||
|
IN IFR_OPTION *OptionsList,
|
||||||
|
IN UINTN OptionCount,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_CHECKBOX_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param QuestionId Question ID
|
||||||
|
@param VarStoreId Storage ID
|
||||||
|
@param VarOffset Offset in Storage
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param QuestionFlags Flags in Question Header
|
||||||
|
@param CheckBoxFlags Flags for checkbox opcode
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If QuestionFlags is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateCheckBoxOpCode (
|
||||||
|
IN EFI_QUESTION_ID QuestionId,
|
||||||
|
IN EFI_VARSTORE_ID VarStoreId,
|
||||||
|
IN UINT16 VarOffset,
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 QuestionFlags,
|
||||||
|
IN UINT8 CheckBoxFlags,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_NUMERIC_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param QuestionId Question ID
|
||||||
|
@param VarStoreId Storage ID
|
||||||
|
@param VarOffset Offset in Storage
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param QuestionFlags Flags in Question Header
|
||||||
|
@param NumericFlags Flags for numeric opcode
|
||||||
|
@param Minimum Numeric minimum value
|
||||||
|
@param Maximum Numeric maximum value
|
||||||
|
@param Step Numeric step for edit
|
||||||
|
@param Default Numeric default value
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If QuestionFlags is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateNumericOpCode (
|
||||||
|
IN EFI_QUESTION_ID QuestionId,
|
||||||
|
IN EFI_VARSTORE_ID VarStoreId,
|
||||||
|
IN UINT16 VarOffset,
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 QuestionFlags,
|
||||||
|
IN UINT8 NumericFlags,
|
||||||
|
IN UINT64 Minimum,
|
||||||
|
IN UINT64 Maximum,
|
||||||
|
IN UINT64 Step,
|
||||||
|
IN UINT64 Default,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create EFI_IFR_STRING_OP opcode.
|
||||||
|
|
||||||
|
If Data is NULL or Data->Data is NULL, then ASSERT.
|
||||||
|
|
||||||
|
@param QuestionId Question ID
|
||||||
|
@param VarStoreId Storage ID
|
||||||
|
@param VarOffset Offset in Storage
|
||||||
|
@param Prompt String ID for Prompt
|
||||||
|
@param Help String ID for Help
|
||||||
|
@param QuestionFlags Flags in Question Header
|
||||||
|
@param StringFlags Flags for string opcode
|
||||||
|
@param MinSize String minimum length
|
||||||
|
@param MaxSize String maximum length
|
||||||
|
@param Data Destination for the created opcode binary
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Opcode is created successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The space reserved in Data field is too small.
|
||||||
|
@retval EFI_INVALID_PARAMETER If QuestionFlags is not valid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateStringOpCode (
|
||||||
|
IN EFI_QUESTION_ID QuestionId,
|
||||||
|
IN EFI_VARSTORE_ID VarStoreId,
|
||||||
|
IN UINT16 VarOffset,
|
||||||
|
IN EFI_STRING_ID Prompt,
|
||||||
|
IN EFI_STRING_ID Help,
|
||||||
|
IN UINT8 QuestionFlags,
|
||||||
|
IN UINT8 StringFlags,
|
||||||
|
IN UINT8 MinSize,
|
||||||
|
IN UINT8 MaxSize,
|
||||||
|
IN OUT EFI_HII_UPDATE_DATA *Data
|
||||||
|
)
|
||||||
|
;
|
||||||
|
/**
|
||||||
|
Construct <ConfigAltResp> for a buffer storage.
|
||||||
|
|
||||||
|
@param ConfigRequest The Config request string. If set to NULL, all the
|
||||||
|
configurable elements will be extracted from BlockNameArray.
|
||||||
|
@param ConfigAltResp The returned <ConfigAltResp>.
|
||||||
|
@param Progress On return, points to a character in the Request.
|
||||||
|
@param Guid GUID of the buffer storage.
|
||||||
|
@param Name Name of the buffer storage.
|
||||||
|
@param DriverHandle The DriverHandle which is used to invoke HiiDatabase
|
||||||
|
protocol interface NewPackageList().
|
||||||
|
@param BufferStorage Content of the buffer storage.
|
||||||
|
@param BufferStorageSize Length in bytes of the buffer storage.
|
||||||
|
@param BlockNameArray Array generated by VFR compiler.
|
||||||
|
@param NumberAltCfg Number of Default value array generated by VFR compiler.
|
||||||
|
The sequential input parameters will be number of
|
||||||
|
AltCfgId and DefaultValueArray pairs. When set to 0,
|
||||||
|
there will be no <AltResp>.
|
||||||
|
|
||||||
|
retval EFI_OUT_OF_RESOURCES Run out of memory resource.
|
||||||
|
retval EFI_INVALID_PARAMETER ConfigAltResp is NULL.
|
||||||
|
retval EFI_SUCCESS Operation successful.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
ConstructConfigAltResp (
|
||||||
|
IN EFI_STRING ConfigRequest, OPTIONAL
|
||||||
|
OUT EFI_STRING *Progress,
|
||||||
|
OUT EFI_STRING *ConfigAltResp,
|
||||||
|
IN EFI_GUID *Guid,
|
||||||
|
IN CHAR16 *Name,
|
||||||
|
IN EFI_HANDLE *DriverHandle,
|
||||||
|
IN VOID *BufferStorage,
|
||||||
|
IN UINTN BufferStorageSize,
|
||||||
|
IN VOID *BlockNameArray, OPTIONAL
|
||||||
|
IN UINTN NumberAltCfg,
|
||||||
|
...
|
||||||
|
//IN UINT16 AltCfgId,
|
||||||
|
//IN VOID *DefaultValueArray,
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Converts the unicode character of the string from uppercase to lowercase.
|
||||||
|
|
||||||
|
@param Str String to be converted
|
||||||
|
|
||||||
|
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
ToLower (
|
||||||
|
IN OUT CHAR16 *Str
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Converts binary buffer to a Unicode string. The byte buffer is in a reversed byte order
|
||||||
|
compared with the byte order defined in BufToHexString().
|
||||||
|
|
||||||
|
@param Str String for output
|
||||||
|
@param Buffer Binary buffer.
|
||||||
|
@param BufferSize Size of the buffer in bytes.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The function completed successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There is no enough available memory space.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
BufInReverseOrderToHexString (
|
||||||
|
IN OUT CHAR16 *Str,
|
||||||
|
IN UINT8 *Buffer,
|
||||||
|
IN UINTN BufferSize
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Converts Hex String to binary buffer in reversed byte order to HexStringToBuf().
|
||||||
|
|
||||||
|
@param Buffer Pointer to buffer that receives the data.
|
||||||
|
@param BufferSize Length in bytes of the buffer to hold converted
|
||||||
|
data. If routine return with EFI_SUCCESS,
|
||||||
|
containing length of converted data. If routine
|
||||||
|
return with EFI_BUFFER_TOO_SMALL, containg length
|
||||||
|
of buffer desired.
|
||||||
|
@param Str String to be converted from.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The function completed successfully.
|
||||||
|
@retval RETURN_BUFFER_TOO_SMALL The input BufferSize is too small to hold the output. BufferSize
|
||||||
|
will be updated to the size required for the converstion.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
HexStringToBufInReverseOrder (
|
||||||
|
IN OUT UINT8 *Buffer,
|
||||||
|
IN OUT UINTN *BufferSize,
|
||||||
|
IN CHAR16 *Str
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert binary representation Config string (e.g. "0041004200430044") to the
|
||||||
|
original string (e.g. "ABCD"). Config string appears in <ConfigHdr> (i.e.
|
||||||
|
"&NAME=<string>"), or Name/Value pair in <ConfigBody> (i.e. "label=<string>").
|
||||||
|
|
||||||
|
@param UnicodeString Original Unicode string.
|
||||||
|
@param StrBufferLen On input: Length in bytes of buffer to hold the Unicode string.
|
||||||
|
Includes tailing '\0' character.
|
||||||
|
On output:
|
||||||
|
containing length of Unicode string buffer when returning EFI_SUCCESS;
|
||||||
|
containg length of string buffer desired when returning EFI_BUFFER_TOO_SMALL.
|
||||||
|
@param ConfigString Binary representation of Unicode String, <string> := (<HexCh>4)+
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Operation completes successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The string buffer is too small.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
ConfigStringToUnicode (
|
||||||
|
IN OUT CHAR16 *UnicodeString,
|
||||||
|
IN OUT UINTN *StrBufferLen,
|
||||||
|
IN CHAR16 *ConfigString
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert Unicode string to binary representation Config string, e.g.
|
||||||
|
"ABCD" => "0041004200430044". Config string appears in <ConfigHdr> (i.e.
|
||||||
|
"&NAME=<string>"), or Name/Value pair in <ConfigBody> (i.e. "label=<string>").
|
||||||
|
|
||||||
|
@param ConfigString Binary representation of Unicode String, <string> := (<HexCh>4)+
|
||||||
|
@param StrBufferLen On input: Length in bytes of buffer to hold the Unicode string.
|
||||||
|
Includes tailing '\0' character.
|
||||||
|
On output:
|
||||||
|
If return EFI_SUCCESS, containing length of Unicode string buffer.
|
||||||
|
If return EFI_BUFFER_TOO_SMALL, containg length of string buffer desired.
|
||||||
|
@param UnicodeString Original Unicode string.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Operation completes successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The string buffer is too small.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UnicodeToConfigString (
|
||||||
|
IN OUT CHAR16 *ConfigString,
|
||||||
|
IN OUT UINTN *StrBufferLen,
|
||||||
|
IN CHAR16 *UnicodeString
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Construct <ConfigHdr> using routing information GUID/NAME/PATH.
|
||||||
|
|
||||||
|
@param ConfigHdr Pointer to the ConfigHdr string.
|
||||||
|
@param StrBufferLen On input: Length in bytes of buffer to hold the
|
||||||
|
ConfigHdr string. Includes tailing '\0' character.
|
||||||
|
On output: If return EFI_SUCCESS, containing
|
||||||
|
length of ConfigHdr string buffer. If return
|
||||||
|
EFI_BUFFER_TOO_SMALL, containg length of string
|
||||||
|
buffer desired.
|
||||||
|
@param Guid Routing information: GUID.
|
||||||
|
@param Name Routing information: NAME.
|
||||||
|
@param DriverHandle Driver handle which contains the routing
|
||||||
|
information: PATH.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Operation completes successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The ConfigHdr string buffer is too small.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
ConstructConfigHdr (
|
||||||
|
IN OUT CHAR16 *ConfigHdr,
|
||||||
|
IN OUT UINTN *StrBufferLen,
|
||||||
|
IN CONST EFI_GUID *Guid,
|
||||||
|
IN CHAR16 *Name, OPTIONAL
|
||||||
|
IN EFI_HANDLE *DriverHandle
|
||||||
|
)
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Determines if the Routing data (Guid and Name) is correct in <ConfigHdr>.
|
||||||
|
|
||||||
|
@param ConfigString Either <ConfigRequest> or <ConfigResp>.
|
||||||
|
@param StorageGuid GUID of the storage.
|
||||||
|
@param StorageName Name of the stoarge.
|
||||||
|
|
||||||
|
@retval TRUE Routing information is correct in ConfigString.
|
||||||
|
@retval FALSE Routing information is incorrect in ConfigString.
|
||||||
|
|
||||||
|
**/
|
||||||
|
BOOLEAN
|
||||||
|
IsConfigHdrMatch (
|
||||||
|
IN EFI_STRING ConfigString,
|
||||||
|
IN EFI_GUID *StorageGuid, OPTIONAL
|
||||||
|
IN CHAR16 *StorageName OPTIONAL
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Search BlockName "&OFFSET=Offset&WIDTH=Width" in a string.
|
||||||
|
|
||||||
|
@param String The string to be searched in.
|
||||||
|
@param Offset Offset in BlockName.
|
||||||
|
@param Width Width in BlockName.
|
||||||
|
|
||||||
|
@retval TRUE Block name found.
|
||||||
|
@retval FALSE Block name not found.
|
||||||
|
|
||||||
|
**/
|
||||||
|
BOOLEAN
|
||||||
|
EFIAPI
|
||||||
|
FindBlockName (
|
||||||
|
IN OUT CHAR16 *String,
|
||||||
|
IN UINTN Offset,
|
||||||
|
IN UINTN Width
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This routine is invoked by ConfigAccess.Callback() to retrived uncommitted data from Form Browser.
|
||||||
|
|
||||||
|
@param VariableGuid An optional field to indicate the target variable
|
||||||
|
GUID name to use.
|
||||||
|
@param VariableName An optional field to indicate the target
|
||||||
|
human-readable variable name.
|
||||||
|
@param BufferSize On input: Length in bytes of buffer to hold
|
||||||
|
retrived data. On output: If return
|
||||||
|
EFI_BUFFER_TOO_SMALL, containg length of buffer
|
||||||
|
desired.
|
||||||
|
@param Buffer Buffer to hold retrived data.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Operation completes successfully.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The intput buffer is too small.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
GetBrowserData (
|
||||||
|
IN CONST EFI_GUID *VariableGuid, OPTIONAL
|
||||||
|
IN CONST CHAR16 *VariableName, OPTIONAL
|
||||||
|
IN OUT UINTN *BufferSize,
|
||||||
|
IN OUT UINT8 *Buffer
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This routine is invoked by ConfigAccess.Callback() to update uncommitted data of Form Browser.
|
||||||
|
|
||||||
|
@param VariableGuid An optional field to indicate the target variable
|
||||||
|
GUID name to use.
|
||||||
|
@param VariableName An optional field to indicate the target
|
||||||
|
human-readable variable name.
|
||||||
|
@param BufferSize Length in bytes of buffer to hold retrived data.
|
||||||
|
@param Buffer Buffer to hold retrived data.
|
||||||
|
@param RequestElement An optional field to specify which part of the
|
||||||
|
buffer data will be send back to Browser. If NULL,
|
||||||
|
the whole buffer of data will be committed to
|
||||||
|
Browser. <RequestElement> ::=
|
||||||
|
&OFFSET=<Number>&WIDTH=<Number>*
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Operation completes successfully.
|
||||||
|
@retval Other Updating Browser uncommitted data failed.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
SetBrowserData (
|
||||||
|
IN CONST EFI_GUID *VariableGuid, OPTIONAL
|
||||||
|
IN CONST CHAR16 *VariableName, OPTIONAL
|
||||||
|
IN UINTN BufferSize,
|
||||||
|
IN CONST UINT8 *Buffer,
|
||||||
|
IN CONST CHAR16 *RequestElement OPTIONAL
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Draw a dialog and return the selected key.
|
||||||
|
|
||||||
|
@param NumberOfLines The number of lines for the dialog box
|
||||||
|
@param KeyValue The EFI_KEY value returned if HotKey is TRUE..
|
||||||
|
@param String Pointer to the first string in the list
|
||||||
|
@param ... A series of (quantity == NumberOfLines - 1) text
|
||||||
|
strings which will be used to construct the dialog
|
||||||
|
box
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Displayed dialog and received user interaction
|
||||||
|
@retval EFI_INVALID_PARAMETER One of the parameters was invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
IfrLibCreatePopUp (
|
||||||
|
IN UINTN NumberOfLines,
|
||||||
|
OUT EFI_INPUT_KEY *KeyValue,
|
||||||
|
IN CHAR16 *String,
|
||||||
|
...
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Draw a dialog and return the selected key using Variable Argument List.
|
||||||
|
|
||||||
|
@param NumberOfLines The number of lines for the dialog box
|
||||||
|
@param KeyValue The EFI_KEY value returned if HotKey is TRUE..
|
||||||
|
@param Args VA_LIST marker for the variable argument list.
|
||||||
|
A series of (quantity == NumberOfLines - 1) text
|
||||||
|
strings which will be used to construct the dialog
|
||||||
|
box
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Displayed dialog and received user interaction
|
||||||
|
@retval EFI_INVALID_PARAMETER One of the parameters was invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
IfrLibCreatePopUp2 (
|
||||||
|
IN UINTN NumberOfLines,
|
||||||
|
OUT EFI_INPUT_KEY *KeyValue,
|
||||||
|
IN VA_LIST Args
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue