summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-05-07 08:49:04 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-05-07 08:49:04 +0000
commitea58467bf78ef522e85912efec55c41f094b5a4b (patch)
treefcd540e58cdeab559dd521f851795d3068d21370 /EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
parent91d92e25647e9a26392b454499d309330710a076 (diff)
downloadedk2-platforms-ea58467bf78ef522e85912efec55c41f094b5a4b.tar.xz
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
Diffstat (limited to 'EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c')
-rw-r--r--EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c58
1 files changed, 56 insertions, 2 deletions
diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
index 205eea604b..17f12a75eb 100644
--- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
+++ b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
@@ -42,6 +42,39 @@ Returns:
return EFI_UNSUPPORTED;
}
+#pragma pack(push, 1)
+typedef struct {
+ EFI_HII_PACK_HEADER PackageHeader;
+ FRAMEWORK_EFI_IFR_FORM_SET FormSet;
+ FRAMEWORK_EFI_IFR_END_FORM_SET EndFormSet;
+} FRAMEWORK_HII_FORMSET_TEMPLATE;
+#pragma pack(pop)
+
+FRAMEWORK_HII_FORMSET_TEMPLATE FormSetTemplate = {
+ {
+ sizeof (FRAMEWORK_HII_FORMSET_TEMPLATE),
+ EFI_HII_IFR
+ },
+ {
+ {
+ FRAMEWORK_EFI_IFR_FORM_SET_OP,
+ sizeof (FRAMEWORK_EFI_IFR_FORM_SET)
+ },
+ //Guid
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ },
+ {
+ FRAMEWORK_EFI_IFR_END_FORM_SET_OP,
+ sizeof (FRAMEWORK_EFI_IFR_END_FORM_SET)
+ }
+};
+
EFI_STATUS
EFIAPI
HiiGetForms (
@@ -87,8 +120,29 @@ Returns:
--*/
{
- ASSERT (FALSE);
- return EFI_UNSUPPORTED;
+ EFI_HII_THUNK_PRIVATE_DATA *Private;
+ HII_TRHUNK_HANDLE_MAPPING_DATABASE_ENTRY *MapEntry;
+ FRAMEWORK_HII_FORMSET_TEMPLATE *OutputFormSet;
+
+ if (*BufferLengthTemp < sizeof(FRAMEWORK_HII_FORMSET_TEMPLATE)) {
+ *BufferLengthTemp = sizeof(FRAMEWORK_HII_FORMSET_TEMPLATE);
+ return EFI_BUFFER_TOO_SMALL;
+ }
+
+ Private = EFI_HII_THUNK_PRIVATE_DATA_FROM_THIS(This);
+
+ MapEntry = FrameworkHiiHandleToMapDatabaseEntry (Private, Handle);
+
+ if (MapEntry == NULL) {
+ return EFI_NOT_FOUND;
+ }
+
+ OutputFormSet = (FRAMEWORK_HII_FORMSET_TEMPLATE *) Buffer;
+
+ CopyMem (OutputFormSet, &FormSetTemplate, sizeof (FRAMEWORK_HII_FORMSET_TEMPLATE));
+ CopyMem (&OutputFormSet->FormSet.Guid, &MapEntry->TagGuid, sizeof (EFI_GUID));
+
+ return EFI_SUCCESS;
}