| /*++ | |
| Copyright (c) 2006, 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. | |
| Module Name: | |
| IfrSupportLib.h | |
| Abstract: | |
| The file contain all library function for Ifr Operations. | |
| --*/ | |
| #ifndef _IFRSUPPORTLIBRARY_H | |
| #define _IFRSUPPORTLIBRARY_H | |
| #define DEFAULT_FORM_BUFFER_SIZE 0xFFFF | |
| #define DEFAULT_STRING_BUFFER_SIZE 0xFFFF | |
| #pragma pack(1) | |
| typedef struct { | |
| CHAR16 *OptionString; // Passed in string to generate a token for in a truly dynamic form creation | |
| STRING_REF StringToken; // This is used when creating a single op-code without generating a StringToken (have one already) | |
| UINT16 Value; | |
| UINT8 Flags; | |
| UINT16 Key; | |
| } IFR_OPTION; | |
| #pragma pack() | |
| EFI_STATUS | |
| GetCurrentLanguage ( | |
| OUT CHAR16 *Lang | |
| ) | |
| /*++ | |
| Routine Description: | |
| Determine what is the current language setting | |
| Arguments: | |
| Lang - Pointer of system language | |
| Returns: | |
| Status code | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| AddString ( | |
| IN VOID *StringBuffer, | |
| IN CHAR16 *Language, | |
| IN CHAR16 *String, | |
| IN OUT STRING_REF *StringToken | |
| ) | |
| /*++ | |
| Routine Description: | |
| Add a string to the incoming buffer and return the token and offset data | |
| Arguments: | |
| StringBuffer - The incoming buffer | |
| Language - Currrent language | |
| String - The string to be added | |
| StringToken - The index where the string placed | |
| Returns: | |
| EFI_OUT_OF_RESOURCES - No enough buffer to allocate | |
| EFI_SUCCESS - String successfully added to the incoming buffer | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| AddOpCode ( | |
| IN VOID *FormBuffer, | |
| IN OUT VOID *OpCodeData | |
| ) | |
| /*++ | |
| Routine Description: | |
| Add op-code data to the FormBuffer | |
| Arguments: | |
| FormBuffer - Form buffer to be inserted to | |
| OpCodeData - Op-code data to be inserted | |
| Returns: | |
| EFI_OUT_OF_RESOURCES - No enough buffer to allocate | |
| EFI_SUCCESS - Op-code data successfully inserted | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateFormSet ( | |
| IN CHAR16 *FormSetTitle, | |
| IN EFI_GUID *Guid, | |
| IN UINT8 Class, | |
| IN UINT8 SubClass, | |
| IN OUT VOID **FormBuffer, | |
| IN OUT VOID **StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a formset | |
| Arguments: | |
| FormSetTitle - Title of formset | |
| Guid - Guid of formset | |
| Class - Class of formset | |
| SubClass - Sub class of formset | |
| FormBuffer - Pointer of the formset created | |
| StringBuffer - Pointer of FormSetTitile string created | |
| Returns: | |
| EFI_OUT_OF_RESOURCES - No enough buffer to allocate | |
| EFI_SUCCESS - Formset successfully created | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateForm ( | |
| IN CHAR16 *FormTitle, | |
| IN UINT16 FormId, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a form | |
| Arguments: | |
| FormTitle - Title of the form | |
| FormId - Id of the form | |
| FormBuffer - Pointer of the form created | |
| StringBuffer - Pointer of FormTitil string created | |
| Returns: | |
| EFI_SUCCESS - Form successfully created | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateSubTitle ( | |
| IN CHAR16 *SubTitle, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a SubTitle | |
| Arguments: | |
| SubTitle - Sub title to be created | |
| FormBuffer - Where this subtitle to add to | |
| StringBuffer - String buffer created for subtitle | |
| Returns: | |
| EFI_SUCCESS - Subtitle successfully created | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateText ( | |
| IN CHAR16 *String, | |
| IN CHAR16 *String2, | |
| IN CHAR16 *String3, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a line of text | |
| Arguments: | |
| String - First string of the text | |
| String2 - Second string of the text | |
| String3 - Help string of the text | |
| Flags - Flag of the text | |
| Key - Key of the text | |
| FormBuffer - The form where this text adds to | |
| StringBuffer - String buffer created for String, String2 and String3 | |
| Returns: | |
| EFI_SUCCESS - Text successfully created | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateGoto ( | |
| IN UINT16 FormId, | |
| IN CHAR16 *Prompt, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a hyperlink | |
| Arguments: | |
| FormId - Form ID of the hyperlink | |
| Prompt - Prompt of the hyperlink | |
| FormBuffer - The form where this hyperlink adds to | |
| StringBuffer - String buffer created for Prompt | |
| Returns: | |
| EFI_SUCCESS - Hyperlink successfully created | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateOneOf ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN CHAR16 *Prompt, | |
| IN CHAR16 *Help, | |
| IN IFR_OPTION *OptionsList, | |
| IN UINTN OptionCount, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a one-of question with a set of options to choose from. The | |
| OptionsList is a pointer to a null-terminated list of option descriptions. | |
| Arguments: | |
| QuestionId - Question ID of the one-of box | |
| DataWidth - DataWidth of the one-of box | |
| Prompt - Prompt of the one-of box | |
| Help - Help of the one-of box | |
| OptionsList - Each string in it is an option of the one-of box | |
| OptionCount - Option string count | |
| FormBuffer - The form where this one-of box adds to | |
| StringBuffer - String buffer created for Prompt, Help and Option strings | |
| Returns: | |
| EFI_DEVICE_ERROR - DataWidth > 2 | |
| EFI_SUCCESS - One-Of box successfully created. | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateOrderedList ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 MaxEntries, | |
| IN CHAR16 *Prompt, | |
| IN CHAR16 *Help, | |
| IN IFR_OPTION *OptionsList, | |
| IN UINTN OptionCount, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a one-of question with a set of options to choose from. The | |
| OptionsList is a pointer to a null-terminated list of option descriptions. | |
| Arguments: | |
| QuestionId - Question ID of the ordered list | |
| MaxEntries - MaxEntries of the ordered list | |
| Prompt - Prompt of the ordered list | |
| Help - Help of the ordered list | |
| OptionsList - Each string in it is an option of the ordered list | |
| OptionCount - Option string count | |
| FormBuffer - The form where this ordered list adds to | |
| StringBuffer - String buffer created for Prompt, Help and Option strings | |
| Returns: | |
| EFI_SUCCESS - Ordered list successfully created. | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateCheckBox ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN CHAR16 *Prompt, | |
| IN CHAR16 *Help, | |
| IN UINT8 Flags, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a checkbox | |
| Arguments: | |
| QuestionId - Question ID of the check box | |
| DataWidth - DataWidth of the check box | |
| Prompt - Prompt of the check box | |
| Help - Help of the check box | |
| Flags - Flags of the check box | |
| FormBuffer - The form where this check box adds to | |
| StringBuffer - String buffer created for Prompt and Help. | |
| Returns: | |
| EFI_DEVICE_ERROR - DataWidth > 1 | |
| EFI_SUCCESS - Check box successfully created | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateNumeric ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN CHAR16 *Prompt, | |
| IN CHAR16 *Help, | |
| IN UINT16 Minimum, | |
| IN UINT16 Maximum, | |
| IN UINT16 Step, | |
| IN UINT16 Default, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a numeric | |
| Arguments: | |
| QuestionId - Question ID of the numeric | |
| DataWidth - DataWidth of the numeric | |
| Prompt - Prompt of the numeric | |
| Help - Help of the numeric | |
| Minimum - Minumun boundary of the numeric | |
| Maximum - Maximum boundary of the numeric | |
| Step - Step of the numeric | |
| Default - Default value | |
| Flags - Flags of the numeric | |
| Key - Key of the numeric | |
| FormBuffer - The form where this numeric adds to | |
| StringBuffer - String buffer created for Prompt and Help. | |
| Returns: | |
| EFI_DEVICE_ERROR - DataWidth > 2 | |
| EFI_SUCCESS - Numeric is successfully created | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateString ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN CHAR16 *Prompt, | |
| IN CHAR16 *Help, | |
| IN UINT8 MinSize, | |
| IN UINT8 MaxSize, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer, | |
| IN OUT VOID *StringBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a string | |
| Arguments: | |
| QuestionId - Question ID of the string | |
| DataWidth - DataWidth of the string | |
| Prompt - Prompt of the string | |
| Help - Help of the string | |
| MinSize - Min size boundary of the string | |
| MaxSize - Max size boundary of the string | |
| Flags - Flags of the string | |
| Key - Key of the string | |
| FormBuffer - The form where this string adds to | |
| StringBuffer - String buffer created for Prompt and Help. | |
| Returns: | |
| EFI_SUCCESS - String successfully created. | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| ExtractDataFromHiiHandle ( | |
| IN EFI_HII_HANDLE HiiHandle, | |
| IN OUT UINT16 *ImageLength, | |
| OUT UINT8 *DefaultImage, | |
| OUT EFI_GUID *Guid | |
| ) | |
| /*++ | |
| Routine Description: | |
| Extract information pertaining to the HiiHandle | |
| Arguments: | |
| HiiHandle - Hii handle | |
| ImageLength - For input, length of DefaultImage; | |
| For output, length of actually required | |
| DefaultImage - Image buffer prepared by caller | |
| Guid - Guid information about the form | |
| Returns: | |
| EFI_OUT_OF_RESOURCES - No enough buffer to allocate | |
| EFI_BUFFER_TOO_SMALL - DefualtImage has no enough ImageLength | |
| EFI_SUCCESS - Successfully extract data from Hii database. | |
| --*/ | |
| ; | |
| EFI_HII_HANDLE | |
| FindHiiHandle ( | |
| IN OUT EFI_HII_PROTOCOL **HiiProtocol, OPTIONAL | |
| IN EFI_GUID *Guid | |
| ) | |
| /*++ | |
| Routine Description: | |
| Finds HII handle for given pack GUID previously registered with the HII. | |
| Arguments: | |
| HiiProtocol - pointer to pointer to HII protocol interface. | |
| If NULL, the interface will be found but not returned. | |
| If it points to NULL, the interface will be found and | |
| written back to the pointer that is pointed to. | |
| Guid - The GUID of the pack that registered with the HII. | |
| Returns: | |
| Handle to the HII pack previously registered by the memory driver. | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateSubTitleOpCode ( | |
| IN STRING_REF StringToken, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a SubTitle opcode independent of string creation | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| Arguments: | |
| StringToken - StringToken of the subtitle | |
| FormBuffer - Output of subtitle as a form | |
| Returns: | |
| EFI_SUCCESS - Subtitle created to be a form | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateTextOpCode ( | |
| IN STRING_REF StringToken, | |
| IN STRING_REF StringTokenTwo, | |
| IN STRING_REF StringTokenThree, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a Text opcode independent of string creation | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| Arguments: | |
| StringToken - First string token of the text | |
| StringTokenTwo - Second string token of the text | |
| StringTokenThree - Help string token of the text | |
| Flags - Flag of the text | |
| Key - Key of the text | |
| FormBuffer - Output of text as a form | |
| Returns: | |
| EFI_SUCCESS - Text created to be a form | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateGotoOpCode ( | |
| IN UINT16 FormId, | |
| IN STRING_REF StringToken, | |
| IN STRING_REF StringTokenTwo, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a hyperlink opcode independent of string creation | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| Arguments: | |
| FormId - Form ID of the hyperlink | |
| StringToken - Prompt string token of the hyperlink | |
| StringTokenTwo - Help string token of the hyperlink | |
| Flags - Flags of the hyperlink | |
| Key - Key of the hyperlink | |
| FormBuffer - Output of hyperlink as a form | |
| Returns: | |
| EFI_SUCCESS - Hyperlink created to be a form | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateOneOfOpCode ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN STRING_REF PromptToken, | |
| IN STRING_REF HelpToken, | |
| IN IFR_OPTION *OptionsList, | |
| IN UINTN OptionCount, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a one-of opcode with a set of option op-codes to choose from independent of string creation. | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| OptionsList is a pointer to a null-terminated list of option descriptions. Ensure that OptionsList[x].StringToken | |
| has been filled in since this routine will not generate StringToken values. | |
| Arguments: | |
| QuestionId - Question ID of the one-of box | |
| DataWidth - DataWidth of the one-of box | |
| PromptToken - Prompt string token of the one-of box | |
| HelpToken - Help string token of the one-of box | |
| OptionsList - Each string in it is an option of the one-of box | |
| OptionCount - Option string count | |
| FormBuffer - Output of One-Of box as a form | |
| Returns: | |
| EFI_SUCCESS - One-Of box created to be a form | |
| EFI_DEVICE_ERROR - DataWidth > 2 | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateOrderedListOpCode ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 MaxEntries, | |
| IN STRING_REF PromptToken, | |
| IN STRING_REF HelpToken, | |
| IN IFR_OPTION *OptionsList, | |
| IN UINTN OptionCount, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a ordered list opcode with a set of option op-codes to choose from independent of string creation. | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| OptionsList is a pointer to a null-terminated list of option descriptions. Ensure that OptionsList[x].StringToken | |
| has been filled in since this routine will not generate StringToken values. | |
| Arguments: | |
| QuestionId - Question ID of the ordered list | |
| MaxEntries - MaxEntries of the ordered list | |
| PromptToken - Prompt string token of the ordered list | |
| HelpToken - Help string token of the ordered list | |
| OptionsList - Each string in it is an option of the ordered list | |
| OptionCount - Option string count | |
| FormBuffer - Output of ordered list as a form | |
| Returns: | |
| EFI_SUCCESS - Ordered list created to be a form | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateCheckBoxOpCode ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN STRING_REF PromptToken, | |
| IN STRING_REF HelpToken, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a checkbox opcode independent of string creation | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| Arguments: | |
| QuestionId - Question ID of the check box | |
| DataWidth - DataWidth of the check box | |
| PromptToken - Prompt string token of the check box | |
| HelpToken - Help string token of the check box | |
| Flags - Flags of the check box | |
| Key - Key of the check box | |
| FormBuffer - Output of the check box as a form | |
| Returns: | |
| EFI_SUCCESS - Checkbox created to be a form | |
| EFI_DEVICE_ERROR - DataWidth > 1 | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateNumericOpCode ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN STRING_REF PromptToken, | |
| IN STRING_REF HelpToken, | |
| IN UINT16 Minimum, | |
| IN UINT16 Maximum, | |
| IN UINT16 Step, | |
| IN UINT16 Default, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a numeric opcode independent of string creation | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| Arguments: | |
| QuestionId - Question ID of the numeric | |
| DataWidth - DataWidth of the numeric | |
| PromptToken - Prompt string token of the numeric | |
| HelpToken - Help string token of the numeric | |
| Minimum - Minumun boundary of the numeric | |
| Maximum - Maximum boundary of the numeric | |
| Step - Step of the numeric | |
| Default - Default value of the numeric | |
| Flags - Flags of the numeric | |
| Key - Key of the numeric | |
| FormBuffer - Output of the numeric as a form | |
| Returns: | |
| EFI_SUCCESS - The numeric created to be a form. | |
| EFI_DEVICE_ERROR - DataWidth > 2 | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateStringOpCode ( | |
| IN UINT16 QuestionId, | |
| IN UINT8 DataWidth, | |
| IN STRING_REF PromptToken, | |
| IN STRING_REF HelpToken, | |
| IN UINT8 MinSize, | |
| IN UINT8 MaxSize, | |
| IN UINT8 Flags, | |
| IN UINT16 Key, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a numeric opcode independent of string creation | |
| This is used primarily by users who need to create just one particular valid op-code and the string | |
| data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label | |
| location to pre-defined forms in HII) | |
| Arguments: | |
| QuestionId - Question ID of the string | |
| DataWidth - DataWidth of the string | |
| PromptToken - Prompt token of the string | |
| HelpToken - Help token of the string | |
| MinSize - Min size boundary of the string | |
| MaxSize - Max size boundary of the string | |
| Flags - Flags of the string | |
| Key - Key of the string | |
| FormBuffer - Output of the string as a form | |
| Returns: | |
| EFI_SUCCESS - String created to be a form. | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| ValidateDataFromHiiHandle ( | |
| IN EFI_HII_HANDLE HiiHandle, | |
| OUT BOOLEAN *Results | |
| ) | |
| /*++ | |
| Routine Description: | |
| Validate that the data associated with the HiiHandle in NVRAM is within | |
| the reasonable parameters for that FormSet. Values for strings and passwords | |
| are not verified due to their not having the equivalent of valid range settings. | |
| Arguments: | |
| HiiHandle - Handle of the HII database entry to query | |
| Results - If return Status is EFI_SUCCESS, Results provides valid data | |
| TRUE = NVRAM Data is within parameters | |
| FALSE = NVRAM Data is NOT within parameters | |
| Returns: | |
| EFI_OUT_OF_RESOURCES - No enough buffer to allocate | |
| EFI_SUCCESS - Data successfully validated | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| CreateBannerOpCode ( | |
| IN UINT16 Title, | |
| IN UINT16 LineNumber, | |
| IN UINT8 Alignment, | |
| IN OUT VOID *FormBuffer | |
| ) | |
| /*++ | |
| Routine Description: | |
| Create a banner opcode. This is primarily used by the FrontPage implementation from BDS. | |
| Arguments: | |
| Title - Title of the banner | |
| LineNumber - LineNumber of the banner | |
| Alignment - Alignment of the banner | |
| FormBuffer - Output of banner as a form | |
| Returns: | |
| EFI_SUCCESS - Banner created to be a form. | |
| --*/ | |
| ; | |
| VOID | |
| EfiLibHiiVariablePackGetMap ( | |
| IN EFI_HII_VARIABLE_PACK *Pack, | |
| OUT CHAR16 **Name, OPTIONAL | |
| OUT EFI_GUID **Guid, OPTIONAL | |
| OUT UINT16 *Id, OPTIONAL | |
| OUT VOID **Var, OPTIONAL | |
| OUT UINTN *Size OPTIONAL | |
| ) | |
| /*++ | |
| Routine Description: | |
| Extracts a variable form a Pack. | |
| Arguments: | |
| Pack - List of variables | |
| Name - Name of the variable/map | |
| Guid - GUID of the variable/map | |
| Var - Pointer to the variable/map | |
| Size - Size of the variable/map in bytes | |
| Returns: | |
| VOID. | |
| --*/ | |
| ; | |
| UINTN | |
| EfiLibHiiVariablePackListGetMapCnt ( | |
| IN EFI_HII_VARIABLE_PACK_LIST *List | |
| ) | |
| /*++ | |
| Routine Description: | |
| Finds a count of the variables/maps in the List. | |
| Arguments: | |
| List - List of variables | |
| Returns: | |
| Number of Map in the variable pack list. | |
| --*/ | |
| ; | |
| typedef VOID (EFI_LIB_HII_VARIABLE_PACK_LIST_CALLBACK) ( | |
| IN CHAR16 *Name, | |
| IN EFI_GUID *Guid, | |
| IN UINT16 Id, | |
| IN VOID *Var, | |
| IN UINTN Size | |
| ) | |
| /*++ | |
| Routine Description: | |
| type definition for the callback to be | |
| used with EfiLibHiiVariablePackListForEachVar(). | |
| Arguments: | |
| Id - Variable/Map ID | |
| Name - Name of the variable/map | |
| Guid - GUID of the variable/map | |
| Var - Pointer to the variable/map | |
| Size - Size of the variable/map in bytes | |
| Returns: | |
| VOID | |
| --*/ | |
| ; | |
| VOID | |
| EfiLibHiiVariablePackListForEachVar ( | |
| IN EFI_HII_VARIABLE_PACK_LIST *List, | |
| IN EFI_LIB_HII_VARIABLE_PACK_LIST_CALLBACK *Callback | |
| ) | |
| /*++ | |
| Routine Description: | |
| Will iterate all variable/maps as appearing | |
| in List and for each, it will call the Callback. | |
| Arguments: | |
| List - List of variables | |
| Callback - Routine to be called for each iterated variable. | |
| Returns: | |
| VOID | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| EfiLibHiiVariablePackListGetMapByIdx ( | |
| IN UINTN Idx, | |
| IN EFI_HII_VARIABLE_PACK_LIST *List, | |
| OUT CHAR16 **Name, OPTIONAL | |
| OUT EFI_GUID **Guid, OPTIONAL | |
| OUT UINT16 *Id, OPTIONAL | |
| OUT VOID **Var, | |
| OUT UINTN *Size | |
| ) | |
| /*++ | |
| Routine Description: | |
| Finds a variable form List given | |
| the order number as appears in the List. | |
| Arguments: | |
| Idx - The index of the variable/map to retrieve | |
| List - List of variables | |
| Name - Name of the variable/map | |
| Guid - GUID of the variable/map | |
| Var - Pointer to the variable/map | |
| Size - Size of the variable/map in bytes | |
| Returns: | |
| EFI_SUCCESS - Variable is found, OUT parameters are valid | |
| EFI_NOT_FOUND - Variable is not found, OUT parameters are not valid | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| EfiLibHiiVariablePackListGetMapById ( | |
| IN UINT16 Id, | |
| IN EFI_HII_VARIABLE_PACK_LIST *List, | |
| OUT CHAR16 **Name, OPTIONAL | |
| OUT EFI_GUID **Guid, OPTIONAL | |
| OUT VOID **Var, | |
| OUT UINTN *Size | |
| ) | |
| /*++ | |
| Routine Description: | |
| Finds a variable form List given the | |
| order number as appears in the List. | |
| Arguments: | |
| Id - The ID of the variable/map to retrieve | |
| List - List of variables | |
| Name - Name of the variable/map | |
| Guid - GUID of the variable/map | |
| Var - Pointer to the variable/map | |
| Size - Size of the variable/map in bytes | |
| Returns: | |
| EFI_SUCCESS - Variable is found, OUT parameters are valid | |
| EFI_NOT_FOUND - Variable is not found, OUT parameters are not valid | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| EfiLibHiiVariablePackListGetMap ( | |
| IN EFI_HII_VARIABLE_PACK_LIST *List, | |
| IN CHAR16 *Name, | |
| IN EFI_GUID *Guid, | |
| OUT UINT16 *Id, | |
| OUT VOID **Var, | |
| OUT UINTN *Size | |
| ) | |
| /*++ | |
| Routine Description: | |
| Finds a variable form EFI_HII_VARIABLE_PACK_LIST given name and GUID. | |
| Arguments: | |
| List - List of variables | |
| Name - Name of the variable/map to be found | |
| Guid - GUID of the variable/map to be found | |
| Var - Pointer to the variable/map found | |
| Size - Size of the variable/map in bytes found | |
| Returns: | |
| EFI_SUCCESS - variable is found, OUT parameters are valid | |
| EFI_NOT_FOUND - variable is not found, OUT parameters are not valid | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| EfiLibHiiVariableRetrieveFromNv ( | |
| IN CHAR16 *Name, | |
| IN EFI_GUID *Guid, | |
| IN UINTN Size, | |
| OUT VOID **Var | |
| ) | |
| /*++ | |
| Routine Description: | |
| Finds out if a variable of specific Name/Guid/Size exists in NV. | |
| If it does, it will retrieve it into the Var. | |
| Arguments: | |
| Name, Guid, Size - Parameters of the variable to retrieve. Must match exactly. | |
| Var - Variable will be retrieved into buffer pointed by this pointer. | |
| If pointing to NULL, the buffer will be allocated. Caller is responsible for releasing the buffer. | |
| Returns: | |
| EFI_SUCCESS - The variable of exact Name/Guid/Size parameters was retrieved and written to Var. | |
| EFI_NOT_FOUND - The variable of this Name/Guid was not found in the NV. | |
| EFI_LOAD_ERROR - The variable in the NV was of different size, or NV API returned error. | |
| --*/ | |
| ; | |
| //// | |
| //// Variable override support. | |
| //// | |
| EFI_STATUS | |
| EfiLibHiiVariableOverrideIfSuffix ( | |
| IN CHAR16 *Suffix, | |
| IN CHAR16 *Name, | |
| IN EFI_GUID *Guid, | |
| IN UINTN Size, | |
| OUT VOID *Var | |
| ) | |
| /*++ | |
| Routine Description: | |
| Overrrides the variable with NV data if found. | |
| But it only does it if the Name ends with specified Suffix. | |
| For example, if Suffix="MyOverride" and the Name="XyzSetupMyOverride", | |
| the Suffix matches the end of Name, so the variable will be loaded from NV | |
| provided the variable exists and the GUID and Size matches. | |
| Arguments: | |
| Suffix - Suffix the Name should end with. | |
| Name, Guid, Size - Parameters of the variable to retrieve. Must match exactly. | |
| Var - Variable will be retrieved into this buffer. | |
| Caller is responsible for providing storage of exactly Size size in bytes. | |
| Returns: | |
| EFI_SUCCESS - The variable was overriden with NV variable of same Name/Guid/Size. | |
| EFI_INVALID_PARAMETER - The name of the variable does not end with <Suffix>. | |
| EFI_NOT_FOUND - The variable of this Name/Guid was not found in the NV. | |
| EFI_LOAD_ERROR - The variable in the NV was of different size, or NV API returned error. | |
| --*/ | |
| ; | |
| EFI_STATUS | |
| EfiLibHiiVariableOverrideBySuffix ( | |
| IN CHAR16 *Suffix, | |
| IN CHAR16 *Name, | |
| IN EFI_GUID *Guid, | |
| IN UINTN Size, | |
| OUT VOID *Var | |
| ) | |
| /*++ | |
| Routine Description: | |
| Overrrides the variable with NV data if found. | |
| But it only does it if the NV contains the same variable with Name is appended with Suffix. | |
| For example, if Suffix="MyOverride" and the Name="XyzSetup", | |
| the Suffix will be appended to the end of Name, and the variable with Name="XyzSetupMyOverride" | |
| will be loaded from NV provided the variable exists and the GUID and Size matches. | |
| Arguments: | |
| Suffix - Suffix the variable will be appended with. | |
| Name, Guid, Size - Parameters of the variable to retrieve. Must match exactly. | |
| Var - Variable will be retrieved into this buffer. | |
| Caller is responsible for providing storage of exactly Size size in bytes. | |
| Returns: | |
| EFI_SUCCESS - The variable was overriden with NV variable of same Name/Guid/Size. | |
| EFI_NOT_FOUND - The variable of this Name/Guid was not found in the NV. | |
| EFI_LOAD_ERROR - The variable in the NV was of different size, or NV API returned error. | |
| --*/ | |
| ; | |
| #endif |