]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Coding style and Doxygen update.
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 5 Nov 2008 11:59:01 +0000 (11:59 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 5 Nov 2008 11:59:01 +0000 (11:59 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6406 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Package.c

index 9717c2f56e7ec7f66f121d986c56a3a11573d91f..154b9cfa58f11b84c7d2c446904dc8f28e5a285d 100644 (file)
@@ -17,11 +17,25 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include "HiiHandle.h"\r
 \r
 \r
-STATIC BOOLEAN mInFrameworkHiiNewPack = FALSE;\r
-STATIC BOOLEAN mInFrameworkHiiRemovePack = FALSE;\r
+BOOLEAN mInFrameworkHiiNewPack = FALSE;\r
+BOOLEAN mInFrameworkHiiRemovePack = FALSE;\r
 BOOLEAN mInFrameworkUpdatePakcage = FALSE;\r
+UINT64  mGuidCount = 0;\r
 \r
 \r
+/**\r
+  Get the number of package IFR and STRING packages in the package list passed in.\r
+\r
+  @param Packages             Package List.\r
+  @param IfrPackageCount      Number of IFR Packages.\r
+  @param StringPackageCount   Number of String Packages.\r
+\r
+  @retval EFI_INVALID_PARAMETER If the Package List has package with type of \r
+                                EFI_HII_PACKAGE_KEYBOARD_LAYOUT, EFI_HII_PACKAGE_FONTS, EFI_HII_PACKAGE_IMAGES.\r
+  @reval  EFI_SUCCESS           Successfully get the number of IFR and STRING package.\r
+                                 \r
+\r
+**/\r
 EFI_STATUS\r
 GetPackageCount (\r
   IN CONST EFI_HII_PACKAGES               *Packages,\r
@@ -76,6 +90,18 @@ GetPackageCount (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Insert the String Package into the Package Lists which has the TAG GUID matching\r
+  the PackageListGuid of the String Package. \r
+\r
+  The Package List must have only IFR Package and no String Package. \r
+  Otherwise, ASSERT.\r
+\r
+  @param Private                      The HII THUNK driver context data.\r
+  @param StringPackageThunkContext    The HII THUNK context data.\r
+  @param StringPackageListHeader      The String Package List Header.\r
+  \r
+**/\r
 VOID\r
 UpdatePackListWithOnlyIfrPack (\r
   IN       HII_THUNK_PRIVATE_DATA      *Private,\r
@@ -119,6 +145,18 @@ UpdatePackListWithOnlyIfrPack (
 }\r
 \r
 \r
+/**\r
+  Prepare a UEFI Package List from a Framework HII package list registered\r
+  from a Framework HII NewPack () function.\r
+\r
+  If either Packages or PackageListGuid is NULL, then ASSERT.\r
+  \r
+  @param Packages                     The Framework HII Package List.\r
+  @param PackageListGuid              The Package List GUID.\r
+\r
+\r
+  @return The UEFI Package List.  \r
+**/\r
 EFI_HII_PACKAGE_LIST_HEADER *\r
 PrepareUefiPackageListFromFrameworkHiiPackages (\r
   IN CONST EFI_HII_PACKAGES            *Packages,\r
@@ -179,20 +217,41 @@ PrepareUefiPackageListFromFrameworkHiiPackages (
   return PackageListHeader;  \r
 }\r
 \r
+\r
+/**\r
+  Generate a Random GUID.\r
+  \r
+  @param Guid On output, a Random GUID will be filled.\r
+\r
+**/\r
 VOID\r
 GenerateRandomGuid (\r
   OUT           EFI_GUID * Guid\r
   )\r
 {\r
   EFI_GUID        GuidBase = { 0x14f95e01, 0xd562, 0x432e, { 0x84, 0x4a, 0x95, 0xa4, 0x39, 0x5, 0x10, 0x7e }};\r
-  static  UINT64  Count = 0;\r
 \r
   CopyGuid (Guid, &GuidBase);\r
 \r
-  Count++;  \r
-  *((UINT64 *) Guid) = *((UINT64 *) Guid) + Count;\r
+  mGuidCount++;  \r
+  *((UINT64 *) Guid) = *((UINT64 *) Guid) + mGuidCount;\r
 }\r
 \r
+/**\r
+  Given a Package List with only a IFR package, find the Package List that only has a String Package based on\r
+  the TAG GUID. Then export the String Package from the Package List and insert it\r
+  to the given IFR package.\r
+\r
+  This is to handle the case of Framework HII interface which allow String Package\r
+  and IFR package to be registered using two different NewPack () calls.\r
+\r
+  @param Private                      The HII THUNK driver context data.\r
+  @param IfrThunkContext              Package List with only a IFR package.\r
+\r
+  @retval EFI_SUCCESS                 If the String Package is found and inserted to the\r
+                                      Package List with only a IFR package.\r
+  @retval EFI_NOT_FOUND               No String Package matching the TAG GUID is found.\r
+**/\r
 EFI_STATUS\r
 FindStringPackAndUpdatePackListWithOnlyIfrPack (\r
   IN HII_THUNK_PRIVATE_DATA          *Private,\r
@@ -243,11 +302,26 @@ FindStringPackAndUpdatePackListWithOnlyIfrPack (
 }\r
 \r
 \r
-//\r
-// \r
-//\r
+/**\r
+  Register the Package List passed from the Framework HII NewPack () interface.\r
+  The FRAMEWORK_EFI_HII_HANDLE will be returned.\r
+\r
+  @param This                         The EFI_HII_PROTOCOL context data. Only used\r
+                                      to call HiiRemovePack.\r
+  @param Private                      The HII THUNK driver context data.\r
+  @param Package                      Package List.\r
+  @param Handle                       On output, a FRAMEWORK_EFI_HII_HANDLE number is\r
+                                      returned.\r
+\r
+  @retval EFI_SUCCESS                 The Package List is registered successfull in \r
+                                      the database.\r
+  @retval EFI_UNSUPPORTED             The number of IFR package in the package list\r
+                                      is greater than 1.\r
+  @retval EFI_OUT_OF_RESOURCE         Not enough resouce.\r
+  \r
+**/\r
 EFI_STATUS\r
-UefiRegisterPackageList(\r
+UefiRegisterPackageList (\r
   IN  EFI_HII_PROTOCOL               *This,\r
   IN  HII_THUNK_PRIVATE_DATA      *Private,\r
   IN  EFI_HII_PACKAGES            *Packages,\r
@@ -461,7 +535,7 @@ Returns:
 EFI_STATUS\r
 EFIAPI\r
 HiiRemovePack (\r
-  IN EFI_HII_PROTOCOL    *This,\r
+  IN EFI_HII_PROTOCOL               *This,\r
   IN FRAMEWORK_EFI_HII_HANDLE       Handle\r
   )\r
 /*++\r