return EFI_SUCCESS;\r
}\r
\r
+/**\r
+ This function initialize the data structure for dynamic opcode.\r
+\r
+ @param UpdateData The adding data;\r
+ @param BufferSize Length of the buffer to fill dynamic opcodes.\r
+\r
+ @retval EFI_SUCCESS Update data is initialized.\r
+ @retval EFI_INVALID_PARAMETER UpdateData is NULL.\r
+ @retval EFI_OUT_OF_RESOURCES No enough memory to allocate.\r
+\r
+**/\r
+EFI_STATUS\r
+IfrLibInitUpdateData (\r
+ IN OUT EFI_HII_UPDATE_DATA *UpdateData,\r
+ IN UINT32 BufferSize\r
+ )\r
+{\r
+ ASSERT (UpdateData != NULL);\r
+\r
+ UpdateData->BufferSize = BufferSize;\r
+ UpdateData->Offset = 0;\r
+ UpdateData->Data = AllocatePool (BufferSize);\r
+\r
+ return (UpdateData->Data != NULL) ? EFI_SUCCESS : EFI_OUT_OF_RESOURCES;\r
+}\r
+\r
+/**\r
+\r
+ This function free the resource of update data.\r
+\r
+ @param UpdateData The adding data;\r
+\r
+ @retval EFI_SUCCESS Resource in UpdateData is released.\r
+ @retval EFI_INVALID_PARAMETER UpdateData is NULL.\r
+\r
+**/\r
+EFI_STATUS\r
+IfrLibFreeUpdateData (\r
+ IN EFI_HII_UPDATE_DATA *UpdateData\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+\r
+ if (UpdateData == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ Status = gBS->FreePool (UpdateData->Data);\r
+ UpdateData->Data = NULL;\r
+\r
+ return Status;\r
+}\r
\r
/**\r
This function allows the caller to update a form that has\r
Status = GetPackageDataFromPackageList (HiiPackageList, Index, &PackageLength, &Package);\r
if (Status == EFI_SUCCESS) {\r
CopyMem (&PackageHeader, Package, sizeof (EFI_HII_PACKAGE_HEADER));\r
- if ((PackageHeader.Type == EFI_HII_PACKAGE_FORM) && !Updated) {\r
+ if ((PackageHeader.Type == EFI_HII_PACKAGE_FORMS) && !Updated) {\r
Status = UpdateFormPackageData (FormSetGuid, FormId, Package, PackageLength, Label, Insert, Data, (UINT8 **)&TempBuffer, &TempBufferSize);\r
if (!EFI_ERROR(Status)) {\r
if (FormSetGuid == NULL) {\r