diff options
Diffstat (limited to 'EDK/MiniSetup/uefi2.0/hii.h')
-rw-r--r-- | EDK/MiniSetup/uefi2.0/hii.h | 328 |
1 files changed, 328 insertions, 0 deletions
diff --git a/EDK/MiniSetup/uefi2.0/hii.h b/EDK/MiniSetup/uefi2.0/hii.h new file mode 100644 index 0000000..d6bd70d --- /dev/null +++ b/EDK/MiniSetup/uefi2.0/hii.h @@ -0,0 +1,328 @@ +//*****************************************************************// +//*****************************************************************// +//*****************************************************************// +//** **// +//** (C)Copyright 2013, American Megatrends, Inc. **// +//** **// +//** All Rights Reserved. **// +//** **// +//** 5555 Oakbrook Pkwy, Building 200,Norcross, Georgia 30093 **// +//** **// +//** Phone (770)-246-8600 **// +//** **// +//*****************************************************************// +//*****************************************************************// +//*****************************************************************// +// $Archive: /Alaska/SOURCE/Modules/AMITSE2_0/AMITSE/uefi2.0/hii.h $ +// +// $Author: Arunsb $ +// +// $Revision: 18 $ +// +// $Date: 4/18/13 9:33a $ +// +//*****************************************************************// +//*****************************************************************// +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/AMITSE2_0/AMITSE/uefi2.0/hii.h $ +// +// 18 4/18/13 9:33a Arunsb +// Function declarations added to avoid build error in 2.0 +// +// 17 3/25/13 8:34a Premkumara +// [TAG] EIP116315 +// [Category] Improvement +// [Description] Display control prompt string for password control. +// (for String on CHAP secret popup) +// [Files] - AMITSE.sdl +// - CommonHelper.c +// - FakeToken.c +// - AmiTSEStr.uni +// - TseLite\PopupPassword.c +// - uefi2.1\UefiWapper21.c +// - uefi2.0\HiiCallback.c +// - uefi2.0\hii.h +// - uefi2.0\hii.c +// +// 16 10/18/12 6:00a Arunsb +// Updated for 2.16.1235 QA submission +// +// 16 10/10/12 12:39p Arunsb +// Synched the source for v2.16.1232, backup with Aptio +// +// 15 11/28/11 5:05a Rajashakerg +// [TAG] EIP73231 +// [Category] Improvement +// [Description] Callback handling :For interactive controls updating +// the currnet vaule in cache even when hii callback returns error status. +// [Files] Date.c, SubMenu.c, ordlistbox.c, time.c, UefiAction.c, +// hii.h, uefi20Wapper.c, HiiCallback.c, TseUefiHii.h, Uefi21Wapper.c +// +// 14 11/23/11 5:22a Rajashakerg +// [TAG] EIP75473 +// [Category] Improvement +// [Description] System Time is not updated every second +// [Files] variable.h, variable.c, FormBrowser2.c, TseUefiHii.h, +// Uefi21Wapper.c, hii.h, uefi20Wapper.c +// +// 13 3/28/11 5:01p Rajashakerg +// [TAG] EIP56413 +// [Category] Improvement +// [Description] TSE: Support for EFI_IFR_RESET_BUTTON opcode +// [Files] ezport.c, minisetupext.h, ResetButton.c, ResetButton.h, +// Hii.c, TseUefiHii.h, Uefi21Wapper.c, hii.h, Uefi20Wapper.c +// +// 12 3/09/11 7:25p Madhans +// [TAG] EIPEIP48615 +// [Category] Improvement +// [Description] To support UEFI 2.1 RefreshOp. Based in Refersh Rate +// Controls are refershed periodically. +// [Files] minisetupext.h +// SubMenu.h +// SubMenu.c +// Memo.c +// Memo.h +// numeric.c +// numeric.h +// time.c +// Date.c +// PopupSel.c +// PopupSel.h +// PopupString.c +// PopupString.h +// ordlistbox.c +// minisetupext.c +// UefiAction.c +// hii.h +// Uefi20wapper.c +// hiicallback.c +// Parse.c +// tseuefihii.h +// Uefi21wapper.c +// +// 11 2/01/11 7:35p Madhans +// [TAG] - EIP 50737 +// [Category]- Defect +// [Severity]- Mordarate +// [Symptom] - Suppressing the Interactive control does not work +// correctly. +// [RootCause] - The control conditional pointer if not set correctly. +// [Solution]- To fix the Control condition pointer. And identify the +// suppress if related to UEFI action control +// [Files] - UefiAction.c TseLiteHelper.c hii.h uefi20wapper.c +// uefi21wapper.c +// +// 10 12/02/10 6:09p Madhans +// [TAG] - EIP49562 +// [Category]- Improvment. +// [Severity]- Mordarate +// [Symptom]- Need to support UEFI 2.2 requirements related to Calling +// Formcallback with +// EFI_BROWSER_ACTION_CHANGING and EFI_BROWSER_ACTION_CHANGED action. +// [Solution]- Implemented the support. +// [Files] - submenu.c, numeric.c, popupsel.c, popupString.c, +// uefi20\hii.h, uefi20\uefi20wrapper.c +// uefi21\hiicalback.c, uefi21\tseuefihii.h +// +// 9 9/16/10 8:38p Madhans +// Update for TSE 2.10. Refer Changelog.log for more details. +// +// 8 6/15/10 12:16p Blaines +// Update functon prototype for UefiSetTime and UefiGetTime +// +// 7 6/04/10 12:53p Blaines +// Add support for UEFI 2.1 date and time controls +// +// 6 2/26/10 8:54p Madhans +// For TSE 2.01.1024. refer changelog.log for file checkin history . +// +// 9 2/26/10 1:30p Madhans +// To avoid build issues with EDK. +// +// 8 2/19/10 8:20a Mallikarjunanv +// updated year in copyright message +// +// 7 2/17/10 7:03p Madhans +// +// 6 1/09/10 7:22a Mallikarjunanv +// Updated TSE2.01 Release sources with coding standards +// +// 5 8/17/09 12:28p Presannar +// Removed References to Tiano.h and replace it with Efi.h +// +// 4 7/09/09 12:30p Mallikarjunanv +// updated the password encoding fix +// +// 3 6/16/09 2:16p Presannar +// Added File Headers for Header Files +// +// 2 6/12/09 7:44p Presannar +// Initial implementation of coding standards for AMITSE2.0 +// +// 1 6/04/09 8:05p Madhans +// +// 1 4/28/09 11:08p Madhans +// Tse 2.0 Code complete Checkin. +// +// 4 4/28/09 9:40p Madhans +// Tse 2.0 Code complete Checkin. +// +// 3 3/31/09 4:14p Madhans +// UEFI Wrapper improvments. +// +// 2 1/30/09 6:06p Madhans +// Function headers added. +// +// 1 12/18/08 7:59p Madhans +// Intial version of TSE Lite sources +//*****************************************************************// +//*****************************************************************// +//<AMI_FHDR_START> +//---------------------------------------------------------------------------- +// +// Name: Hii.h +// +// Description: Header file for Hii functionallities +// +//---------------------------------------------------------------------------- +//<AMI_FHDR_END> + +#ifndef _AMIHII_H_ // DO NOT CHANGE THIS TO _HII_H_ !! That is used by the HII Protocol header +#define _AMIHII_H_ + +#if TSE_USE_EDK_LIBRARY +#include "Tiano.h" +#else +#include "Efi.h" +#endif + +extern /*EFI_HII_HANDLE*/VOID* gHiiHandle; + + +EFI_STATUS HiiExit( VOID ); +EFI_STATUS HiiFixupData( ); +UINTN HiiGetStringLength( /*EFI_HII_HANDLE*/VOID* handle, UINT16 token ); +/*EFI_HII_HANDLE*/VOID* HiiFindHandle( EFI_GUID *guid, UINT16 *index ); +UINT16 HiiAddStringLanguage( /*EFI_HII_HANDLE*/VOID* handle, CHAR16 *lang, CHAR16 *string ); +UINT16 HiiChangeString( /*EFI_HII_HANDLE*/VOID* handle, UINT16 token, CHAR16 *string ); +EFI_STATUS HiiLoadDefaults( VOID **VariableList, UINTN DefaultMask ); +VOID HiiRemoveString(VOID* Handle, UINT16 Token); + +/*EFI_HII_HANDLE*/VOID* * _HiiGetHandles( UINT16 *bufferSize ); +EFI_STATUS _HiiLocateSetupHandles( VOID ); +VOID *_HiiGetForm( /*EFI_HII_HANDLE*/VOID* handle, UINT16 form, UINTN *Length ); +UINT16 _HiiGetLinkIndex( EFI_GUID *guid, UINT16 class, UINT16 subclass, UINT16 formid ); + +EFI_STATUS _HiiWrapperFindHandles( UINT16 *bufferSize, /*EFI_HII_HANDLE*/VOID* *buffer ); + +#if HII_VERSION <= 1 +EFI_STATUS _HiiWrapperGetForm( /*EFI_HII_HANDLE*/VOID* handle, UINT16 form, UINT16 *bufferSize, VOID *buffer ); +#else +EFI_STATUS _HiiWrapperGetForm( /*EFI_HII_HANDLE*/VOID* handle, UINT16 form, UINTN *bufferSize, VOID *buffer ); +#endif +UINTN HiiMyGetStringLength( /*EFI_HII_HANDLE*/VOID* handle, UINT16 token ); +UINTN HiiMyGetMultiLineStringLength( /*EFI_HII_HANDLE*/VOID* handle, UINT16 token ); +UINTN IsCharWide( CHAR16 strWide); + + +extern UINTN gTitle; +extern UINTN gHelp; +extern UINTN gSubTitle; +extern UINTN gHelpTitle; +extern UINTN gNavStrings; + +UINT16 UefiGetHelpField(VOID *); +UINT16 UefiGetPromptField(VOID *); +BOOLEAN UefiIsInteractive(CONTROL_INFO *ControlData); +UINT16 UefiGetKeyField(VOID *IfrPtr); +UINT8 UefiGetFlagsField(VOID *IfrPtr); +UINT16 UefiGetControlKey(CONTROL_INFO *ControlData); +UINT16 UefiGetTextField(VOID *IfrPtr); +UINT16 UefiGetTextTwoField(VOID *IfrPtr); +EFI_STATUS CallTextCallBack(TEXT_DATA *text, ACTION_DATA *Data); + +UINT16 UefiGetMessageBoxTitle(VOID *ptr); +UINT16 UefiGetMessageBoxText(VOID *ptr); +VOID* UefiGetMessageBoxHandle(VOID *ptr); +VOID UefiSetSubTitleField(VOID *IfrPtr,UINT16 Token); +VOID * UefiCreateSubTitleTemplate(UINT16 Token); +UINT16 UefiGetTitleField(VOID *IfrPtr); +UINT64 UefiGetMinValue(VOID *IfrPtr); +UINT64 UefiGetMaxValue(VOID *IfrPtr); +UINT16 UefiGetWidth(VOID *IfrPtr); +UINT64 UefiGetStepValue(VOID *IfrPtr); +UINT8 UefiGetBaseValue(VOID *IfrPtr); +UINT16 UefiGetQuestionOffset(VOID *IfrPtr); +EFI_STATUS UefiGetTime(CONTROL_INFO *control, EFI_TIME *Tm); +EFI_STATUS UefiSetTime(CONTROL_INFO *control, EFI_TIME *Tm); +#define AMI_TIME_HOUR 1 +#define AMI_TIME_MIN 2 +#define AMI_TIME_SEC 3 +#define AMI_DATE_YEAR 4 +#define AMI_DATE_MONTH 5 +#define AMI_DATE_DAY 6 +VOID UefiGetDateTimeDetails(VOID *IfrPtr,UINT8 Type,UINT16 * Help,UINT16 * Min,UINT16 * Max); +UINT8 UefiGetIfrLength(VOID *IfrPtr); +VOID UefiSetPromptField(VOID *IfrPtr,UINT16 Token); +EFI_STATUS UefiGetOneOfOptions(CONTROL_INFO *IfrPtr,VOID **Handle,UINT16 **OptionPtrTokens, UINT64 **ValuePtrTokens, UINT16 * ItemCount,UINT16 * Interactive,UINT16 * CallBackKey ); +UINT8 UefiGetMaxEntries(VOID *IfrPtr); +UINT16 UefiTseLiteGetBootOverRideIndex(VOID *Ptr); +UINT16 UefiTseLiteGetAmiCallbackIndex(VOID * Ptr,VOID * Ptr2 ); +EFI_STATUS UefiFormCallbackNVRead(CHAR16 *name, EFI_GUID *guid, UINT32 *attributes, UINTN *size, VOID **buffer); +EFI_STATUS UefiFormCallbackNVWrite(CHAR16 *name, EFI_GUID *guid, UINT32 attributes, VOID *buffer, UINTN size); + +BOOLEAN UefiIsEfiVariable(UINT32 variable, VARIABLE_INFO *varInfo); +EFI_STATUS UefiVarGetNvram(VARIABLE_INFO *VariableInfo, VOID **Buffer, UINTN Offset, UINTN Size); +EFI_STATUS UefiVarSetNvram(VARIABLE_INFO *VariableInfo, VOID *Buffer, UINTN Offset, UINTN Size); + +UINTN HiiGetManufactuingMask(VOID); +UINTN HiiGetDefaultMask(VOID); + +VOID* UefiGetSpecialEqIDIfrPtr(CONTROL_INFO *ControlInfo, UINT32 *Variable, GUID_INFO **GuidInfo); +UINT16 UefiGetSpecialEqIDValue(CONTROL_INFO *ControlInfo, GUID_INFO **GuidInfo); +VOID UefiSpecialGuidCallback(VOID * HiiHandle, UINT16 Key, EFI_GUID *pGUID); +VOID UefiSetEqIDValue(VOID *IfrPtr, UINT16 Value); +BOOLEAN UefiIsOneOfControl(VOID *IfrPtr); +UINT16 UefiGetEqIDQuestionID(VOID *IfrPtr); +VOID UefiSetEqIDQuestionID(VOID *IfrPtr, UINT16 Value); +VOID* UefiCreateOneOfWithOptionsTemplate(UINTN OptionCount, CONTROL_INFO *CtrlInfo); +VOID UefiSetOneOfOption(VOID *IfrPtr, UINT64 Value, UINT32 Size, UINT8 Flag, UINT16 Option); +UINT32 GetControlConditionVarId(CONTROL_INFO *control); +VOID UefiUpdateControlVarOffset(VOID *IfrPtr, UINT16 Value); +VOID UefiSetWidth(VOID *IfrPtr,UINT8 Width); +VOID UefiAddEndOp(VOID *IfrPtr); +VOID BBSUpdateControlOffset(CONTROL_INFO *control); +UINT16 UefiGetQuestionID(CONTROL_INFO *control); +VOID UefiCreateDynamicControlCondition(CONTROL_INFO *control,UINT16 VarId, UINT16 PrevControlQuestionID,UINT16 Value); +EFI_STATUS SpecialActionCallBack(CONTROL_INFO * ControlData, UINT16 Key); +EFI_STATUS ProcessActionQuestionConfiguration(CONTROL_INFO *control); +//EIP 23354 : Start +BOOLEAN IsPasswordEncodeEnabled(VOID *PwDataPtr); +//EIP 23354 : End +EFI_STATUS UefiIsProceedWithPageChange(EFI_STATUS Status); +VOID UefiPreControlUpdate(CONTROL_INFO *ControlData); +EFI_STATUS UefiRefershQuestionValueNvRAM(CONTROL_INFO *ControlData); +UINT16 UefiGetResetButtonDefaultid(VOID *IfrPtr);//EIP:56413 Function decleration to get the Default ID +//EIP:56413 Function to update the Resetbutton Defaults to the control +EFI_STATUS UefiupdateResetButtonDefault(CONTROL_INFO ControlData, UINT16 DefaultId); +BOOLEAN CheckTimeFlags(UINT8 Flags); +BOOLEAN CheckDateFlags(UINT8 Flags); +UINTN UefiGetActionWapper(UINTN Action); +VOID UefiGetValidOptionType(CONTROL_INFO *CtrlInfo, UINTN *Type, UINT32 *SizeOfData); +#endif /* _AMIHII_H_ */ + + +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2013, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Pkwy, Building 200,Norcross, Georgia 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** |