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