Add in supports for platform Setup module which is programmed using Framework HII interface.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5175 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2008-05-07 08:49:04 +00:00
parent 91d92e2564
commit ea58467bf7
7 changed files with 567 additions and 21 deletions

View File

@@ -83,6 +83,28 @@ FrameworkHiiHandleToMapDatabaseEntry (
return (HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY *) NULL;
}
HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY *
UefiHiiHandleToMapDatabaseEntry (
IN CONST EFI_HII_THUNK_PRIVATE_DATA *Private,
IN EFI_HII_HANDLE UefiHiiHandle
)
{
LIST_ENTRY *ListEntry;
HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY *HandleMapEntry;
for (ListEntry = Private->HiiThunkHandleMappingDBListHead.ForwardLink;
ListEntry != &Private->HiiThunkHandleMappingDBListHead;
ListEntry = ListEntry->ForwardLink
) {
HandleMapEntry = HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY_FROM_LISTENTRY (ListEntry);
if (UefiHiiHandle == HandleMapEntry->UefiHiiHandle) {
return HandleMapEntry;
}
}
return (HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY *) NULL;
}
EFI_HII_HANDLE *
TagGuidToUefiIfrHiiHandle (
@@ -108,7 +130,48 @@ TagGuidToUefiIfrHiiHandle (
}
BOOLEAN
IsFrameworkHiiDatabaseHandleDepleted (
IN CONST EFI_HII_THUNK_PRIVATE_DATA *Private
)
{
return (BOOLEAN) (Private->StaticHiiHandle == (UINTN) Private->StaticPureUefiHiiHandle);
}
EFI_STATUS
AssignHiiHandle (
IN OUT EFI_HII_THUNK_PRIVATE_DATA *Private,
OUT FRAMEWORK_EFI_HII_HANDLE *Handle
)
{
ASSERT (Handle != NULL);
*Handle = Private->StaticHiiHandle;
Private->StaticHiiHandle += 1;
if (IsFrameworkHiiDatabaseHandleDepleted (Private)) {
return EFI_OUT_OF_RESOURCES;
}
return EFI_SUCCESS;
}
EFI_STATUS
AssignPureUefiHiiHandle (
IN OUT EFI_HII_THUNK_PRIVATE_DATA *Private,
OUT FRAMEWORK_EFI_HII_HANDLE *Handle
)
{
ASSERT (Handle != NULL);
*Handle = Private->StaticPureUefiHiiHandle;
Private->StaticPureUefiHiiHandle -= 1;
if (IsFrameworkHiiDatabaseHandleDepleted (Private)) {
return EFI_OUT_OF_RESOURCES;
}
return EFI_SUCCESS;
}