summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-04-30 06:35:24 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-04-30 06:35:24 +0000
commitf274810c8d6e9178f726d5c8381b5b7d2c09426a (patch)
tree801b8a2b43b7da43cccf74716163d6575b49d435
parent5391c4f16027b5880ca0143993b7eaaef33c2715 (diff)
downloadedk2-platforms-f274810c8d6e9178f726d5c8381b5b7d2c09426a.tar.xz
Add in code to support the deletion of opcode from a form.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5153 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c54
-rw-r--r--EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c2
2 files changed, 37 insertions, 19 deletions
diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
index 95bd618bb6..ee4e2ac988 100644
--- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
+++ b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
@@ -435,32 +435,50 @@ Returns:
}
}
- if (Data->DataCount != 0) {
- if (HandleMapEntry->IsPackageListWithOnlyStringPackages) {
- UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid);
+ if (HandleMapEntry->IsPackageListWithOnlyStringPackages) {
+ UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid);
+
+ if (UefiHiiHandle == NULL) {
+ return EFI_INVALID_PARAMETER;
+ }
+ } else {
+ UefiHiiHandle = HandleMapEntry->UefiHiiHandle;
+ }
- if (UefiHiiHandle == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ UefiHiiUpdateData = NULL;
+
+ if (AddData) {
+ if (Data->DataCount != 0) {
+
+ Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = ThunkLocateFormId (UefiHiiHandle, Label, &FormsetGuid, &FormId);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData);
+ ASSERT_EFI_ERROR (Status);
+
} else {
- UefiHiiHandle = HandleMapEntry->UefiHiiHandle;
+ ASSERT (FALSE);
+ return EFI_INVALID_PARAMETER;
}
-
- UefiHiiUpdateData = NULL;
- Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData);
- ASSERT_EFI_ERROR (Status);
-
+ } else {
Status = ThunkLocateFormId (UefiHiiHandle, Label, &FormsetGuid, &FormId);
ASSERT_EFI_ERROR (Status);
- Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData);
- ASSERT_EFI_ERROR (Status);
+ //
+ // Delete Opcode starting from Labe in FormId found
+ //
- if (UefiHiiUpdateData != NULL) {
- SafeFreePool (UefiHiiUpdateData->Data);
- SafeFreePool (UefiHiiUpdateData);
- }
+ Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, FALSE, NULL);
+ ASSERT_EFI_ERROR (Status);
+ }
+
+ if (UefiHiiUpdateData != NULL) {
+ SafeFreePool (UefiHiiUpdateData->Data);
+ SafeFreePool (UefiHiiUpdateData);
}
return Status;
diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c
index fb6169b29c..391e698d1e 100644
--- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c
+++ b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c
@@ -595,7 +595,7 @@ F2UCreateNumericOpCode (
}
//
- // We need to create a default
+ // We need to create a default value.
//
if (FwOpcode->Default != 0) {
ZeroMem (&UOpcodeDefault, sizeof (UOpcodeDefault));