| /** @file | |
| Public include file for the HII Library | |
| Copyright (c) 2007 - 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 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 __HII_LIB_H__ | |
| #define __HII_LIB_H__ | |
| //////////////////////////////////////////////////////// | |
| //////////////////////////////////////////////////////// | |
| // HiiLib Functions | |
| //////////////////////////////////////////////////////// | |
| //////////////////////////////////////////////////////// | |
| /** | |
| Registers a list of packages in the HII Database and returns the HII Handle | |
| associated with that registration. If an HII Handle has already been registered | |
| with the same PackageListGuid and DeviceHandle, then NULL is returned. If there | |
| are not enough resources to perform the registration, then NULL is returned. | |
| If an empty list of packages is passed in, then NULL is returned. If the size of | |
| the list of package is 0, then NULL is returned. | |
| The variable arguments are pointers that point to package headers defined | |
| by UEFI VFR compiler and StringGather tool. | |
| #pragma pack (push, 1) | |
| typedef struct { | |
| UINT32 BinaryLength; | |
| EFI_HII_PACKAGE_HEADER PackageHeader; | |
| } EDKII_AUTOGEN_PACKAGES_HEADER; | |
| #pragma pack (pop) | |
| @param[in] PackageListGuid The GUID of the package list. | |
| @param[in] DeviceHandle If not NULL, the Device Handle on which | |
| an instance of DEVICE_PATH_PROTOCOL is installed. | |
| This Device Handle uniquely defines the device that | |
| the added packages are associated with. | |
| @param[in] ... The variable argument list that contains pointers | |
| to packages terminated by a NULL. | |
| @retval NULL An HII Handle has already been registered in the HII Database with | |
| the same PackageListGuid. | |
| @retval NULL The HII Handle could not be created. | |
| @retval NULL An empty list of packages was passed in. | |
| @retval NULL All packages are empty. | |
| @retval Other The HII Handle associated with the newly registered package list. | |
| **/ | |
| EFI_HII_HANDLE | |
| EFIAPI | |
| HiiAddPackages ( | |
| IN CONST EFI_GUID *PackageListGuid, | |
| IN EFI_HANDLE DeviceHandle OPTIONAL, | |
| ... | |
| ) | |
| ; | |
| /** | |
| Removes a package list from the HII database. | |
| If HiiHandle is NULL, then ASSERT(). | |
| If HiiHandle is not a valid EFI_HII_HANDLE in the HII database, then ASSERT(). | |
| @param[in] HiiHandle The handle that was previously registered in the HII database | |
| **/ | |
| VOID | |
| EFIAPI | |
| HiiRemovePackages ( | |
| IN EFI_HII_HANDLE HiiHandle | |
| ) | |
| ; | |
| /** | |
| This function creates a new string in String Package or updates an existing | |
| string in a String Package. If StringId is 0, then a new string is added to | |
| a String Package. If StringId is not zero, then a string in String Package is | |
| updated. If SupportedLanguages is NULL, then the string is added or updated | |
| for all the languages that the String Package supports. If SupportedLanguages | |
| is not NULL, then the string is added or updated for the set of languages | |
| specified by SupportedLanguages. | |
| If HiiHandle is NULL, then ASSERT(). | |
| If String is NULL, then ASSERT(). | |
| @param[in] HiiHandle A handle that was previously registered in the | |
| HII Database. | |
| @param[in] StringId If zero, then a new string is created in the | |
| String Package associated with HiiHandle. If | |
| non-zero, then the string specified by StringId | |
| is updated in the String Package associated | |
| with HiiHandle. | |
| @param[in] String A pointer to the Null-terminated Unicode string | |
| to add or update in the String Package associated | |
| with HiiHandle. | |
| @param[in] SupportedLanguages A pointer to a Null-terminated ASCII string of | |
| language codes. If this parameter is NULL, then | |
| String is added or updated in the String Package | |
| associated with HiiHandle for all the languages | |
| that the String Package supports. If this | |
| parameter is not NULL, then String is added | |
| or updated in the String Package associated with | |
| HiiHandle for the set of languages specified by | |
| SupportedLanguages. The format of | |
| SupportedLanguages must follow the language | |
| format assumed in the HII Database. | |
| @retval 0 The string could not be added or updated in the String Package. | |
| @retval Other The EFI_STRING_ID of the newly added or updated string. | |
| **/ | |
| EFI_STRING_ID | |
| EFIAPI | |
| HiiSetString ( | |
| IN EFI_HII_HANDLE HiiHandle, | |
| IN EFI_STRING_ID StringId, OPTIONAL | |
| IN CONST EFI_STRING String, | |
| IN CONST CHAR8 *SupportedLanguages OPTIONAL | |
| ) | |
| ; | |
| /** | |
| Retrieves a string from a string package in a specific language. If the language | |
| is not specified, then a string from a string package in the current platform | |
| language is retrieved. If the string cannot be retrieved using the specified | |
| language or the current platform language, then the string is retrieved from | |
| the string package in the first language the string package supports. The | |
| returned string is allocated using AllocatePool(). The caller is responsible | |
| for freeing the allocated buffer using FreePool(). | |
| If HiiHandle is NULL, then ASSERT(). | |
| If StringId is 0, then ASSERT(). | |
| @param[in] HiiHandle A handle that was previously registered in the HII Database. | |
| @param[in] StringId The identifier of the string to retrieved from the string | |
| package associated with HiiHandle. | |
| @param[in] Language The language of the string to retrieve. If this parameter | |
| is NULL, then the current platform language is used. The | |
| format of Language must follow the language format assumed in | |
| the HII Database. | |
| @retval NULL The string specified by StringId is not present in the string package. | |
| @retval Other The string was returned. | |
| **/ | |
| EFI_STRING | |
| EFIAPI | |
| HiiGetString ( | |
| IN EFI_HII_HANDLE HiiHandle, | |
| IN EFI_STRING_ID StringId, | |
| IN CONST CHAR8 *Language OPTIONAL | |
| ) | |
| ; | |
| /** | |
| Retrieves a string from a string package named by GUID, in the specified language. | |
| If the language is not specified, then a string from a string package in the | |
| current platform language is retrieved. If the string cannot be retrieved | |
| using the specified language or the current platform language, then the string | |
| is retrieved from the string package in the first language the string package | |
| supports. The returned string is allocated using AllocatePool(). The caller | |
| is responsible for freeing the allocated buffer using FreePool(). | |
| If PackageListGuid is NULL, then ASSERT(). | |
| If StringId is 0, then ASSERT(). | |
| @param[in] PackageListGuid The GUID of a package list that was previously | |
| registered in the HII Database. | |
| @param[in] StringId The identifier of the string to retrieved from the | |
| string package associated with PackageListGuid. | |
| @param[in] Language The language of the string to retrieve. If this | |
| parameter is NULL, then the current platform | |
| language is used. The format of Language must | |
| follow the language format assumed in the HII Database. | |
| @retval NULL The package list specified by PackageListGuid is not present in the | |
| HII Database. | |
| @retval NULL The string specified by StringId is not present in the string package. | |
| @retval Other The string was returned. | |
| **/ | |
| EFI_STRING | |
| EFIAPI | |
| HiiGetPackageString ( | |
| IN CONST EFI_GUID *PackageListGuid, | |
| IN EFI_STRING_ID StringId, | |
| IN CONST CHAR8 *Language OPTIONAL | |
| ) | |
| ; | |
| /** | |
| Retrieves the array of all the HII Handles or the HII handles of a specific | |
| package list GUID in the HII Database. | |
| This array is terminated with a NULL HII Handle. | |
| This function allocates the returned array using AllocatePool(). | |
| The caller is responsible for freeing the array with FreePool(). | |
| @param[in] PackageListGuid An optional parameter that is used to request | |
| HII Handles associated with a specific | |
| Package List GUID. If this parameter is NULL, | |
| then all the HII Handles in the HII Database | |
| are returned. If this parameter is not NULL, | |
| then zero or more HII Handles associated with | |
| PackageListGuid are returned. | |
| @retval NULL No HII handles were found in the HII database | |
| @retval NULL The array of HII Handles could not be retrieved | |
| @retval Other A pointer to the NULL terminated array of HII Handles | |
| **/ | |
| EFI_HII_HANDLE * | |
| EFIAPI | |
| HiiGetHiiHandles ( | |
| IN CONST EFI_GUID *PackageListGuid OPTIONAL | |
| ) | |
| ; | |
| /** | |
| Retrieves a pointer to a Null-terminated ASCII string containing the list | |
| of languages that an HII handle in the HII Database supports. The returned | |
| string is allocated using AllocatePool(). The caller is responsible for freeing | |
| the returned string using FreePool(). The format of the returned string follows | |
| the language format assumed in the HII Database. | |
| If HiiHandle is NULL, then ASSERT(). | |
| @param[in] HiiHandle A handle that was previously registered in the HII Database. | |
| @retval NULL HiiHandle is not registered in the HII database | |
| @retval NULL There are not enough resources available to retrieve the suported | |
| languages. | |
| @retval NULL The list of suported languages could not be retrieved. | |
| @retval Other A pointer to the Null-terminated ASCII string of supported languages. | |
| **/ | |
| CHAR8 * | |
| EFIAPI | |
| HiiGetSupportedLanguages ( | |
| IN EFI_HII_HANDLE HiiHandle | |
| ) | |
| ; | |
| /** | |
| Allocates and returns a Null-terminated Unicode <ConfigHdr> string using routing | |
| information that includes a GUID, an optional Unicode string name, and a device | |
| path. The string returned is allocated with AllocatePool(). The caller is | |
| responsible for freeing the allocated string with FreePool(). | |
| The format of a <ConfigHdr> is as follows: | |
| GUID=<HexCh>32&NAME=<Char>NameLength&PATH=<HexChar>DevicePathSize<Null> | |
| @param[in] Guid The pointer to an EFI_GUID that is the routing information | |
| GUID. Each of the 16 bytes in Guid is converted to | |
| a 2 Unicode character hexidecimal string. This is | |
| an optional parameter that may be NULL. | |
| @param[in] Name The pointer to a Null-terminated Unicode string that is | |
| the routing information NAME. This is an optional | |
| parameter that may be NULL. Each 16-bit Unicode | |
| character in Name is converted to a 4 character Unicode | |
| hexidecimal string. | |
| @param[in] DriverHandle The driver handle that supports a Device Path Protocol | |
| that is the routing information PATH. Each byte of | |
| the Device Path associated with DriverHandle is converted | |
| to a two (Unicode) character hexidecimal string. | |
| @retval NULL DriverHandle does not support the Device Path Protocol. | |
| @retval NULL DriverHandle does not support the Device Path Protocol. | |
| @retval Other A pointer to the Null-terminate Unicode <ConfigHdr> string | |
| **/ | |
| EFI_STRING | |
| EFIAPI | |
| HiiConstructConfigHdr ( | |
| IN CONST EFI_GUID *Guid, OPTIONAL | |
| IN CONST CHAR16 *Name, OPTIONAL | |
| IN EFI_HANDLE DriverHandle | |
| ); | |
| /** | |
| Reset the default value specified by DefaultId to the driver | |
| configuration specified by the Request string. | |
| NULL request string support depends on the ExportConfig interface of | |
| HiiConfigRouting protocol in UEFI specification. | |
| @param Request A null-terminated Unicode string in | |
| <MultiConfigRequest> format. It can be NULL. | |
| If it is NULL, all configurations for the | |
| entirety of the current HII database will be reset. | |
| @param DefaultId Specifies the type of defaults to retrieve. | |
| @retval TURE The default value was set successfully. | |
| @retval FALSE The default value was not found. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HiiSetToDefaults ( | |
| IN CONST EFI_STRING Request, OPTIONAL | |
| IN UINT16 DefaultId | |
| ); | |
| /** | |
| Validate the current configuration by parsing the IFR opcode in HII form. | |
| NULL request string support depends on the ExportConfig interface of | |
| HiiConfigRouting protocol in the UEFI specification. | |
| @param Request A null-terminated Unicode string in | |
| <MultiConfigRequest> format. It can be NULL. | |
| If it is NULL, all current configurations for the | |
| entirety of the current HII database will be validated. | |
| @retval TURE The current configuration is valid. | |
| @retval FALSE The current configuration is invalid. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HiiValidateSettings ( | |
| IN CONST EFI_STRING Request OPTIONAL | |
| ); | |
| /** | |
| Determines if the routing data specified by GUID and NAME match a <ConfigHdr>. | |
| If ConfigHdr is NULL, then ASSERT(). | |
| @param[in] ConfigHdr Either <ConfigRequest> or <ConfigResp>. | |
| @param[in] Guid The GUID of the storage. | |
| @param[in] Name The NAME of the storage. | |
| @retval TRUE Routing information matches <ConfigHdr>. | |
| @retval FALSE Routing information does not match <ConfigHdr>. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HiiIsConfigHdrMatch ( | |
| IN CONST EFI_STRING ConfigHdr, | |
| IN CONST EFI_GUID *Guid, OPTIONAL | |
| IN CONST CHAR16 *Name OPTIONAL | |
| ); | |
| /** | |
| Retrieves uncommitted data from the Form Browser and converts it to a binary | |
| buffer. | |
| @param[in] VariableGuid The pointer to an EFI_GUID structure. This is an optional | |
| parameter that may be NULL. | |
| @param[in] VariableName The pointer to a Null-terminated Unicode string. This | |
| is an optional parameter that may be NULL. | |
| @param[in] BufferSize The length in bytes of buffer to hold retrieved data. | |
| @param[out] Buffer The buffer of data to be updated. | |
| @retval FALSE The uncommitted data could not be retrieved. | |
| @retval TRUE The uncommitted data was retrieved. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HiiGetBrowserData ( | |
| IN CONST EFI_GUID *VariableGuid, OPTIONAL | |
| IN CONST CHAR16 *VariableName, OPTIONAL | |
| IN UINTN BufferSize, | |
| OUT UINT8 *Buffer | |
| ); | |
| /** | |
| Updates uncommitted data in the Form Browser. | |
| If Buffer is NULL, then ASSERT(). | |
| @param[in] VariableGuid The pointer to an EFI_GUID structure. This is an optional | |
| parameter that may be NULL. | |
| @param[in] VariableName The pointer to a Null-terminated Unicode string. This | |
| is an optional parameter that may be NULL. | |
| @param[in] BufferSize The length, in bytes, of Buffer. | |
| @param[in] Buffer The buffer of data to commit. | |
| @param[in] 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 FALSE The uncommitted data could not be updated. | |
| @retval TRUE The uncommitted data was updated. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| HiiSetBrowserData ( | |
| IN CONST EFI_GUID *VariableGuid, OPTIONAL | |
| IN CONST CHAR16 *VariableName, OPTIONAL | |
| IN UINTN BufferSize, | |
| IN CONST UINT8 *Buffer, | |
| IN CONST CHAR16 *RequestElement OPTIONAL | |
| ); | |
| ///////////////////////////////////////// | |
| ///////////////////////////////////////// | |
| /// IFR Functions | |
| ///////////////////////////////////////// | |
| ///////////////////////////////////////// | |
| /** | |
| Returns a UINT64 value that contains bitfields for Hour, Minute, and Second. | |
| The lower 8-bits of Hour are placed in bits 0..7. The lower 8-bits of Minute | |
| are placed in bits 8..15, and the lower 8-bits of Second are placed in bits | |
| 16..23. This format was selected because it can be easily translated to | |
| an EFI_HII_TIME structure in an EFI_IFR_TYPE_VALUE union. | |
| @param Hour The hour value to be encoded. | |
| @param Minute The minute value to be encoded. | |
| @param Second The second value to be encoded. | |
| @return A 64-bit containing Hour, Minute, and Second. | |
| **/ | |
| #define EFI_HII_TIME_UINT64(Hour, Minute, Second) \ | |
| (UINT64)((Hour & 0xff) | ((Minute & 0xff) << 8) | ((Second & 0xff) << 16)) | |
| /** | |
| Returns a UINT64 value that contains bit fields for Year, Month, and Day. | |
| The lower 16-bits of Year are placed in bits 0..15. The lower 8-bits of Month | |
| are placed in bits 16..23, and the lower 8-bits of Day are placed in bits | |
| 24..31. This format was selected because it can be easily translated to | |
| an EFI_HII_DATE structure in an EFI_IFR_TYPE_VALUE union. | |
| @param Year The year value to be encoded. | |
| @param Month The month value to be encoded. | |
| @param Day The day value to be encoded. | |
| @return A 64-bit containing Year, Month, and Day. | |
| **/ | |
| #define EFI_HII_DATE_UINT64(Year, Month, Day) \ | |
| (UINT64)((Year & 0xffff) | ((Month & 0xff) << 16) | ((Day & 0xff) << 24)) | |
| /** | |
| Allocates and returns a new OpCode Handle. OpCode Handles must be freed with | |
| HiiFreeOpCodeHandle(). | |
| @retval NULL There are not enough resources to allocate a new OpCode Handle. | |
| @retval Other A new OpCode handle. | |
| **/ | |
| VOID * | |
| EFIAPI | |
| HiiAllocateOpCodeHandle ( | |
| VOID | |
| ); | |
| /** | |
| Frees an OpCode Handle that was previously allocated with HiiAllocateOpCodeHandle(). | |
| When an OpCode Handle is freed, all of the opcodes associated with the OpCode | |
| Handle are also freed. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| **/ | |
| VOID | |
| EFIAPI | |
| HiiFreeOpCodeHandle ( | |
| VOID *OpCodeHandle | |
| ); | |
| /** | |
| Append raw opcodes to an OpCodeHandle. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If RawBuffer is NULL, then ASSERT(); | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] RawBuffer The buffer of opcodes to append. | |
| @param[in] RawBufferSize The size, in bytes, of Buffer. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the appended opcodes. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateRawOpCodes ( | |
| IN VOID *OpCodeHandle, | |
| IN UINT8 *RawBuffer, | |
| IN UINTN RawBufferSize | |
| ); | |
| /** | |
| Create EFI_IFR_END_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| @param[in] OpCodeHandle Handle to the buffer of opcodes. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateEndOpCode ( | |
| IN VOID *OpCodeHandle | |
| ); | |
| /** | |
| Create EFI_IFR_ONE_OF_OPTION_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If Type is invalid, then ASSERT(). | |
| If Flags is invalid, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] StringId StringId for the option. | |
| @param[in] Flags The flags for the option. | |
| @param[in] Type The type for the option. | |
| @param[in] Value The value for the option. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateOneOfOptionOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN UINT16 StringId, | |
| IN UINT8 Flags, | |
| IN UINT8 Type, | |
| IN UINT64 Value | |
| ); | |
| /** | |
| Create EFI_IFR_DEFAULT_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If Type is invalid, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] DefaultId The DefaultId for the default. | |
| @param[in] Type The type for the default. | |
| @param[in] Value The value for the default. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateDefaultOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN UINT16 DefaultId, | |
| IN UINT8 Type, | |
| IN UINT64 Value | |
| ); | |
| /** | |
| Create EFI_IFR_GUID opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If Guid is NULL, then ASSERT(). | |
| If OpCodeSize < sizeof (EFI_IFR_GUID), then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] Guid The pointer to EFI_GUID of this guided opcode. | |
| @param[in] GuidOpCode The pointer to an EFI_IFR_GUID opcode. This is an | |
| optional parameter that may be NULL. If this | |
| parameter is NULL, then the GUID extension | |
| region of the created opcode is filled with zeros. | |
| If this parameter is not NULL, then the GUID | |
| extension region of GuidData will be copied to | |
| the GUID extension region of the created opcode. | |
| @param[in] OpCodeSize The size, in bytes, of created opcode. This value | |
| must be >= sizeof(EFI_IFR_GUID). | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateGuidOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN CONST EFI_GUID *Guid, | |
| IN CONST VOID *GuidOpCode, OPTIONAL | |
| IN UINTN OpCodeSize | |
| ); | |
| /** | |
| Create EFI_IFR_ACTION_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] QuestionId The Question ID. | |
| @param[in] Prompt The String ID for Prompt. | |
| @param[in] Help The String ID for Help. | |
| @param[in] QuestionFlags The flags in the Question Header. | |
| @param[in] QuestionConfig The String ID for the configuration. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateActionOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN EFI_QUESTION_ID QuestionId, | |
| IN EFI_STRING_ID Prompt, | |
| IN EFI_STRING_ID Help, | |
| IN UINT8 QuestionFlags, | |
| IN EFI_STRING_ID QuestionConfig | |
| ); | |
| /** | |
| Create EFI_IFR_SUBTITLE_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in Flags, then ASSERT(). | |
| If Scope > 1, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] Prompt The string ID for Prompt. | |
| @param[in] Help The string ID for Help. | |
| @param[in] Flags The subtitle opcode flags. | |
| @param[in] Scope 1 if this opcode is the beginning of a new scope. | |
| 0 if this opcode is within the current scope. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateSubTitleOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN EFI_STRING_ID Prompt, | |
| IN EFI_STRING_ID Help, | |
| IN UINT8 Flags, | |
| IN UINT8 Scope | |
| ); | |
| /** | |
| Create EFI_IFR_REF_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] FormId The Destination Form ID. | |
| @param[in] Prompt The string ID for Prompt. | |
| @param[in] Help The string ID for Help. | |
| @param[in] QuestionFlags The flags in Question Header | |
| @param[in] QuestionId Question ID. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateGotoOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN EFI_FORM_ID FormId, | |
| IN EFI_STRING_ID Prompt, | |
| IN EFI_STRING_ID Help, | |
| IN UINT8 QuestionFlags, | |
| IN EFI_QUESTION_ID QuestionId | |
| ); | |
| /** | |
| Create EFI_IFR_CHECKBOX_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| If any reserved bits are set in CheckBoxFlags, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] QuestionId The question ID. | |
| @param[in] VarStoreId The storage ID. | |
| @param[in] VarOffset The offset in Storage. | |
| @param[in] Prompt The string ID for Prompt. | |
| @param[in] Help The string ID for Help. | |
| @param[in] QuestionFlags The flags in Question Header. | |
| @param[in] CheckBoxFlags The flags for checkbox opcode. | |
| @param[in] DefaultsOpCodeHandle The handle for a buffer of DEFAULT opcodes. This | |
| is an optional parameter that may be NULL. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateCheckBoxOpCode ( | |
| IN VOID *OpCodeHandle, | |
| 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 VOID *DefaultsOpCodeHandle OPTIONAL | |
| ); | |
| /** | |
| Create EFI_IFR_NUMERIC_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| If any reserved bits are set in NumericFlags, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] QuestionId The question ID. | |
| @param[in] VarStoreId The storage ID. | |
| @param[in] VarOffset The offset in Storage. | |
| @param[in] Prompt The string ID for Prompt. | |
| @param[in] Help The string ID for Help. | |
| @param[in] QuestionFlags The flags in Question Header. | |
| @param[in] NumericFlags The flags for a numeric opcode. | |
| @param[in] Minimum The numeric minimum value. | |
| @param[in] Maximum The numeric maximum value. | |
| @param[in] Step The numeric step for edit. | |
| @param[in] DefaultsOpCodeHandle The handle for a buffer of DEFAULT opcodes. This | |
| is an optional parameter that may be NULL. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateNumericOpCode ( | |
| IN VOID *OpCodeHandle, | |
| 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 VOID *DefaultsOpCodeHandle OPTIONAL | |
| ); | |
| /** | |
| Create EFI_IFR_STRING_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| If any reserved bits are set in StringFlags, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] QuestionId The question ID. | |
| @param[in] VarStoreId The storage ID. | |
| @param[in] VarOffset The offset in Storage. | |
| @param[in] Prompt The string ID for Prompt. | |
| @param[in] Help The string ID for Help. | |
| @param[in] QuestionFlags The flags in Question Header. | |
| @param[in] StringFlags The flags for a string opcode. | |
| @param[in] MinSize The string minimum length. | |
| @param[in] MaxSize The string maximum length. | |
| @param[in] DefaultsOpCodeHandle The handle for a buffer of DEFAULT opcodes. This | |
| is an optional parameter that may be NULL. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateStringOpCode ( | |
| IN VOID *OpCodeHandle, | |
| 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 VOID *DefaultsOpCodeHandle OPTIONAL | |
| ); | |
| /** | |
| Create EFI_IFR_ONE_OF_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| If any reserved bits are set in OneOfFlags, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] QuestionId The question ID. | |
| @param[in] VarStoreId The storage ID. | |
| @param[in] VarOffset The offset in Storage. | |
| @param[in] Prompt The string ID for Prompt. | |
| @param[in] Help The string ID for Help. | |
| @param[in] QuestionFlags The flags in Question Header. | |
| @param[in] OneOfFlags The flags for a oneof opcode. | |
| @param[in] OptionsOpCodeHandle The handle for a buffer of ONE_OF_OPTION opcodes. | |
| @param[in] DefaultsOpCodeHandle The handle for a buffer of DEFAULT opcodes. This | |
| is an optional parameter that may be NULL. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateOneOfOpCode ( | |
| IN VOID *OpCodeHandle, | |
| 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 VOID *OptionsOpCodeHandle, | |
| IN VOID *DefaultsOpCodeHandle OPTIONAL | |
| ); | |
| /** | |
| Create EFI_IFR_ORDERED_LIST_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| If any reserved bits are set in OrderedListFlags, then ASSERT(). | |
| @param[in] OpCodeHandle The handle to the buffer of opcodes. | |
| @param[in] QuestionId The question ID. | |
| @param[in] VarStoreId The storage ID. | |
| @param[in] VarOffset The offset in Storage. | |
| @param[in] Prompt The string ID for Prompt. | |
| @param[in] Help The string ID for Help. | |
| @param[in] QuestionFlags The flags in Question Header. | |
| @param[in] OrderedListFlags The flags for an ordered list opcode. | |
| @param[in] DataType The type for option value. | |
| @param[in] MaxContainers Maximum count for options in this ordered list | |
| @param[in] OptionsOpCodeHandle The handle for a buffer of ONE_OF_OPTION opcodes. | |
| @param[in] DefaultsOpCodeHandle Handle for a buffer of DEFAULT opcodes. This | |
| is an optional parameter that may be NULL. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateOrderedListOpCode ( | |
| IN VOID *OpCodeHandle, | |
| 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 VOID *OptionsOpCodeHandle, | |
| IN VOID *DefaultsOpCodeHandle OPTIONAL | |
| ); | |
| /** | |
| Create EFI_IFR_TEXT_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| @param[in] OpCodeHandle Handle to the buffer of opcodes. | |
| @param[in] Prompt String ID for Prompt. | |
| @param[in] Help String ID for Help. | |
| @param[in] TextTwo String ID for TextTwo. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateTextOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN EFI_STRING_ID Prompt, | |
| IN EFI_STRING_ID Help, | |
| IN EFI_STRING_ID TextTwo | |
| ); | |
| /** | |
| Create EFI_IFR_DATE_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| If any reserved bits are set in DateFlags, then ASSERT(). | |
| @param[in] OpCodeHandle Handle to the buffer of opcodes. | |
| @param[in] QuestionId Question ID | |
| @param[in] VarStoreId Storage ID, optional. If DateFlags is not | |
| QF_DATE_STORAGE_NORMAL, this parameter is ignored. | |
| @param[in] VarOffset Offset in Storage, optional. If DateFlags is not | |
| QF_DATE_STORAGE_NORMAL, this parameter is ignored. | |
| @param[in] Prompt String ID for Prompt | |
| @param[in] Help String ID for Help | |
| @param[in] QuestionFlags Flags in Question Header | |
| @param[in] DateFlags Flags for date opcode | |
| @param[in] DefaultsOpCodeHandle Handle for a buffer of DEFAULT opcodes. This | |
| is an optional parameter that may be NULL. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateDateOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN EFI_QUESTION_ID QuestionId, | |
| IN EFI_VARSTORE_ID VarStoreId, OPTIONAL | |
| IN UINT16 VarOffset, OPTIONAL | |
| IN EFI_STRING_ID Prompt, | |
| IN EFI_STRING_ID Help, | |
| IN UINT8 QuestionFlags, | |
| IN UINT8 DateFlags, | |
| IN VOID *DefaultsOpCodeHandle OPTIONAL | |
| ); | |
| /** | |
| Create EFI_IFR_TIME_OP opcode. | |
| If OpCodeHandle is NULL, then ASSERT(). | |
| If any reserved bits are set in QuestionFlags, then ASSERT(). | |
| If any reserved bits are set in TimeFlags, then ASSERT(). | |
| @param[in] OpCodeHandle Handle to the buffer of opcodes. | |
| @param[in] QuestionId Question ID | |
| @param[in] VarStoreId Storage ID, optional. If TimeFlags is not | |
| QF_TIME_STORAGE_NORMAL, this parameter is ignored. | |
| @param[in] VarOffset Offset in Storage, optional. If TimeFlags is not | |
| QF_TIME_STORAGE_NORMAL, this parameter is ignored. | |
| @param[in] Prompt String ID for Prompt | |
| @param[in] Help String ID for Help | |
| @param[in] QuestionFlags Flags in Question Header | |
| @param[in] TimeFlags Flags for time opcode | |
| @param[in] DefaultsOpCodeHandle Handle for a buffer of DEFAULT opcodes. This | |
| is an optional parameter that may be NULL. | |
| @retval NULL There is not enough space left in Buffer to add the opcode. | |
| @retval Other A pointer to the created opcode. | |
| **/ | |
| UINT8 * | |
| EFIAPI | |
| HiiCreateTimeOpCode ( | |
| IN VOID *OpCodeHandle, | |
| IN EFI_QUESTION_ID QuestionId, | |
| IN EFI_VARSTORE_ID VarStoreId, OPTIONAL | |
| IN UINT16 VarOffset, OPTIONAL | |
| IN EFI_STRING_ID Prompt, | |
| IN EFI_STRING_ID Help, | |
| IN UINT8 QuestionFlags, | |
| IN UINT8 TimeFlags, | |
| IN VOID *DefaultsOpCodeHandle OPTIONAL | |
| ); | |
| /** | |
| This function updates a form that has previously been registered with the HII | |
| Database. This function will perform at most one update operation. | |
| The form to update is specified by Handle, FormSetGuid, and FormId. Binary | |
| comparisons of IFR opcodes are performed from the beginning of the form being | |
| updated until an IFR opcode is found that exactly matches the first IFR opcode | |
| specified by StartOpCodeHandle. The following rules are used to determine if | |
| an insert, replace, or delete operation is performed: | |
| 1) If no matches are found, then NULL is returned. | |
| 2) If a match is found, and EndOpCodeHandle is NULL, then all of the IFR opcodes | |
| from StartOpCodeHandle except the first opcode are inserted immediately after | |
| the matching IFR opcode in the form to be updated. | |
| 3) If a match is found, and EndOpCodeHandle is not NULL, then a search is made | |
| from the matching IFR opcode until an IFR opcode exactly matches the first | |
| IFR opcode specified by EndOpCodeHandle. If no match is found for the first | |
| IFR opcode specified by EndOpCodeHandle, then NULL is returned. If a match | |
| is found, then all of the IFR opcodes between the start match and the end | |
| match are deleted from the form being updated and all of the IFR opcodes | |
| from StartOpCodeHandle except the first opcode are inserted immediately after | |
| the matching start IFR opcode. If StartOpCcodeHandle only contains one | |
| IFR instruction, then the result of this operation will delete all of the IFR | |
| opcodes between the start end matches. | |
| If HiiHandle is NULL, then ASSERT(). | |
| If StartOpCodeHandle is NULL, then ASSERT(). | |
| @param[in] HiiHandle The HII Handle of the form to update. | |
| @param[in] FormSetGuid The Formset GUID of the form to update. This | |
| is an optional parameter that may be NULL. | |
| If it is NULL, all FormSet will be updated. | |
| @param[in] FormId The ID of the form to update. | |
| @param[in] StartOpCodeHandle An OpCode Handle that contains the set of IFR | |
| opcodes to be inserted or replaced in the form. | |
| The first IFR instruction in StartOpCodeHandle | |
| is used to find matching IFR opcode in the | |
| form. | |
| @param[in] EndOpCodeHandle An OpCcode Handle that contains the IFR opcode | |
| that marks the end of a replace operation in | |
| the form. This is an optional parameter that | |
| may be NULL. If it is NULL, then the IFR | |
| opcodes specified by StartOpCodeHandle are | |
| inserted into the form. | |
| @retval EFI_OUT_OF_RESOURCES Not enough memory resources are allocated. | |
| @retval EFI_NOT_FOUND The following cases will return EFI_NOT_FOUND: | |
| 1) The form specified by HiiHandle, FormSetGuid, | |
| and FormId could not be found in the HII Database. | |
| 2) No IFR opcodes in the target form match the first | |
| IFR opcode in StartOpCodeHandle. | |
| 3) EndOpCOde is not NULL, and no IFR opcodes in the | |
| target form following a matching start opcode match | |
| the first IFR opcode in EndOpCodeHandle. | |
| @retval EFI_SUCCESS The matched form is updated by StartOpcode. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| HiiUpdateForm ( | |
| IN EFI_HII_HANDLE HiiHandle, | |
| IN EFI_GUID *FormSetGuid, OPTIONAL | |
| IN EFI_FORM_ID FormId, | |
| IN VOID *StartOpCodeHandle, | |
| IN VOID *EndOpCodeHandle OPTIONAL | |
| ); | |
| #endif |