alder_lake_bios/Insyde/InsydeSetupPkg/Drivers/H2OFormBrowserDxe/FBProcessVfcf.h

137 lines
3.9 KiB
C

/** @file
Header file for process VFCF of form browser
;******************************************************************************
;* Copyright (c) 2015 - 2020, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#ifndef _FB_PROCESS_VFCF_H_
#define _FB_PROCESS_VFCF_H_
#include "InternalH2OFormBrowser.h"
#include <Library/HiiExLib.h>
#define IS_IMPORT_STATEMENT(Statement) ((BOOLEAN) (Statement != NULL && Statement->ImportInfo != NULL))
#define FORMSET_HII_RESOURCE_STRING_ID_INCREMENT 50
#define FORMSET_HII_RESOURCE_IMAGE_ID_INCREMENT 30
typedef struct _H2O_FORM_BROWSER_FORMSET_HII_RESOURCE H2O_FORM_BROWSER_FORMSET_HII_RESOURCE;
#define H2O_FORM_BROWSER_FORMSET_HII_RESOURCE_SIGNATURE SIGNATURE_32 ('H', 'F', 'H', 'R')
struct _H2O_FORM_BROWSER_FORMSET_HII_RESOURCE {
UINTN Signature;
LIST_ENTRY Link;
EFI_HII_HANDLE HiiHandle;
EFI_GUID FormSetGuid;
//
// Record allocated HII resource which can be reused when form browser refresh formset.
//
EFI_STRING_ID *NewStringIdList;
UINT16 NewStringIdCount;
UINT16 NewStringIdIndex;
EFI_IMAGE_ID *NewImageIdList;
UINT16 NewImageIdCount;
UINT16 NewImageIdIndex;
};
#define H2O_FORM_BROWSER_FORMSET_HII_RESOURCE_FROM_LINK(a) CR (a, H2O_FORM_BROWSER_FORMSET_HII_RESOURCE, Link, H2O_FORM_BROWSER_FORMSET_HII_RESOURCE_SIGNATURE)
FORM_BROWSER_STATEMENT *
CreateDisabledStatementInLastForm (
IN FORM_BROWSER_FORMSET *SrcFormSet,
IN FORM_BROWSER_STATEMENT *SrcStatement,
IN FORM_BROWSER_FORMSET *DstFormSet
);
EFI_STATUS
CopyExpression (
IN FORM_BROWSER_FORMSET *SrcFormSet,
IN FORM_EXPRESSION *SrcExpression,
IN FORM_BROWSER_FORMSET *DstFormSet,
IN FORM_BROWSER_FORM *DstForm,
IN OUT FORM_EXPRESSION **DstExpression
);
BOOLEAN
HaveImportQuestion (
IN FORM_BROWSER_FORM *Form
);
BOOLEAN
HaveImportScuQuestion (
IN FORM_BROWSER_FORMSET *FormSet,
IN FORM_BROWSER_FORM *Form
);
H2O_FORM_BROWSER_FORMSET_HII_RESOURCE *
GetFormSetHiiResource (
IN FORM_BROWSER_FORMSET *FormSet
);
FORM_BROWSER_STATEMENT *
GetStatementByQuestionId (
IN FORM_BROWSER_FORMSET *FormSet,
IN FORM_BROWSER_FORM *Form OPTIONAL,
IN EFI_QUESTION_ID QuestionId
);
FORM_BROWSER_STATEMENT *
GetNewStatement (
IN FORM_BROWSER_FORMSET *FormSet
);
EXPRESSION_OPCODE *
GetNewExpressionOpCode (
IN FORM_BROWSER_FORMSET *FormSet
);
EFI_STATUS
FBProcessImport (
IN OUT FORM_BROWSER_FORMSET *FormSet
);
EFI_STATUS
FBProcessVfcfProperty (
IN FORM_BROWSER_FORMSET *FormSet
);
EFI_STATUS
FBProcessVfcfExpression (
IN FORM_BROWSER_FORMSET *FormSet
);
VOID
DestroyImportFormSet (
VOID
);
VOID
ReloadHiiFormsetWithStaleImportData (
VOID
);
FORM_BROWSER_FORMSET *
GetFormSetByFormSetGuid (
IN EFI_GUID *FormSetGuid,
...
);
FORM_BROWSER_FORMSET *
CreateImportFormSet (
IN EFI_GUID *ImportFormsetGuid
);
extern LIST_ENTRY mH2OBrowserImportFormSetList;
#endif