3 This file contains the keyboard processing code to the HII database.
5 Copyright (c) 2006 - 2008, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #include "HiiDatabase.h"
20 GetGuidOfFirstFormset (
21 CONST EFI_HII_FORM_PACKAGE
* FormPackage
24 UINT8
*StartOfNextPackage
;
25 EFI_IFR_OP_HEADER
*OpCodeData
;
27 StartOfNextPackage
= (UINT8
*) FormPackage
+ FormPackage
->Header
.Length
;
28 OpCodeData
= (EFI_IFR_OP_HEADER
*) (FormPackage
+ 1);
30 while ((UINT8
*) OpCodeData
< StartOfNextPackage
) {
31 if (OpCodeData
->OpCode
== EFI_IFR_FORM_SET_OP
) {
32 return &(((EFI_IFR_FORM_SET
*) OpCodeData
)->Guid
);
34 OpCodeData
= (EFI_IFR_OP_HEADER
*) ((UINT8
*) OpCodeData
+ OpCodeData
->Length
);
43 FrameworkHiiHandleToUefiHiiHandle (
44 IN CONST EFI_HII_THUNK_PRIVATE_DATA
*Private
,
45 IN FRAMEWORK_EFI_HII_HANDLE FrameworkHiiHandle
48 LIST_ENTRY
*ListEntry
;
49 HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY
*HandleMapEntry
;
51 ASSERT (FrameworkHiiHandle
!= (FRAMEWORK_EFI_HII_HANDLE
) 0);
52 ASSERT (Private
!= NULL
);
54 for (ListEntry
= Private
->HiiThunkHandleMappingDBListHead
.ForwardLink
;
55 ListEntry
!= &Private
->HiiThunkHandleMappingDBListHead
;
56 ListEntry
= ListEntry
->ForwardLink
59 HandleMapEntry
= HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY_FROM_LISTENTRY (ListEntry
);
61 if (FrameworkHiiHandle
== HandleMapEntry
->FrameworkHiiHandle
) {
62 return HandleMapEntry
->UefiHiiHandle
;
66 return (EFI_HII_HANDLE
) NULL
;
70 HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY
*
71 FrameworkHiiHandleToMapDatabaseEntry (
72 IN CONST EFI_HII_THUNK_PRIVATE_DATA
*Private
,
73 IN FRAMEWORK_EFI_HII_HANDLE FrameworkHiiHandle
76 LIST_ENTRY
*ListEntry
;
77 HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY
*HandleMapEntry
;
79 for (ListEntry
= Private
->HiiThunkHandleMappingDBListHead
.ForwardLink
;
80 ListEntry
!= &Private
->HiiThunkHandleMappingDBListHead
;
81 ListEntry
= ListEntry
->ForwardLink
83 HandleMapEntry
= HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY_FROM_LISTENTRY (ListEntry
);
85 if (FrameworkHiiHandle
== HandleMapEntry
->FrameworkHiiHandle
) {
86 return HandleMapEntry
;
90 return (HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY
*) NULL
;