]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/HiiDatabase.c
Following UEFI spec to do auto booting after a time-out. This feature is implemented
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / FrameworkHiiToUefiHiiThunk / HiiDatabase.c
index d312af46dd778ab93fc816fae2e01f9c193d1cf1..1bf17c174ca033e331fecd97e2058fd891ab4c62 100644 (file)
@@ -71,29 +71,20 @@ CONST EFI_HII_CONFIG_ROUTING_PROTOCOL      *mHiiConfigRoutingProtocol;
 CONST EFI_FORM_BROWSER2_PROTOCOL           *mFormBrowser2Protocol;\r
 \r
 \r
+/**\r
+  This routine initializes the HII Database.\r
+  \r
+  @param ImageHandle     Image handle for PCD DXE driver.\r
+  @param SystemTable     Pointer to SystemTable.\r
 \r
-\r
-\r
-\r
+  @retval  EFI_SUCCESS   The entry point alwasy return successfully.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 InitializeHiiDatabase (\r
   IN EFI_HANDLE           ImageHandle,\r
   IN EFI_SYSTEM_TABLE     *SystemTable\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-  Initialize HII Database\r
-\r
-Arguments:\r
-  (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)\r
-\r
-Returns:\r
-  EFI_SUCCESS - Setup loaded.\r
-  other       - Setup Error\r
-\r
---*/\r
 {\r
   HII_THUNK_PRIVATE_DATA *Private;\r
   EFI_HANDLE              Handle;\r
@@ -227,6 +218,8 @@ Returns:
                            );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
+  InitSetBrowserStrings ();\r
+\r
   mBrowserThunkPrivateDataTemplate.ThunkPrivate = Private;\r
   Status = gBS->InstallProtocolInterface (\r
                   &mBrowserThunkPrivateDataTemplate.Handle,\r
@@ -239,6 +232,26 @@ Returns:
   return Status;\r
 }\r
 \r
+/**\r
+  Determines the handles that are currently active in the database.\r
+\r
+  This function determines the handles that are currently active in the database. \r
+  For example, a program wishing to create a Setup-like configuration utility would use this call \r
+  to determine the handles that are available. It would then use calls defined in the forms section \r
+  below to extract forms and then interpret them.\r
+\r
+  @param This                 A pointer to the EFI_HII_PROTOCOL instance.\r
+  @param HandleBufferLength   On input, a pointer to the length of the handle buffer. \r
+                              On output, the length of the handle buffer that is required for the handles found.\r
+  @param Handle               An array of EFI_HII_HANDLE instances returned. \r
+                              Type EFI_HII_HANDLE is defined in EFI_HII_PROTOCOL.NewPack() in the Packages section.\r
+\r
+  @retval EFI_SUCCESS         Handle was updated successfully.\r
\r
+  @retval EFI_BUFFER_TOO_SMALL The HandleBufferLength parameter indicates that Handle is too small \r
+                               to support the number of handles. HandleBufferLength is updated with a value that \r
+                               will enable the data to fit.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 HiiFindHandles (\r
@@ -246,16 +259,6 @@ HiiFindHandles (
   IN OUT UINT16           *HandleBufferLength,\r
   OUT    FRAMEWORK_EFI_HII_HANDLE    Handle[1]\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-  Determines the handles that are currently active in the database.\r
-\r
-Arguments:\r
-\r
-Returns:\r
-\r
---*/\r
 {\r
   UINT16                                     Count;\r
   LIST_ENTRY                                *Link;\r
@@ -279,7 +282,7 @@ Returns:
   }\r
 \r
   if (Count > *HandleBufferLength) {\r
-    *HandleBufferLength = (Count * sizeof (FRAMEWORK_EFI_HII_HANDLE));\r
+    *HandleBufferLength = (UINT16) (Count * sizeof (FRAMEWORK_EFI_HII_HANDLE));\r
     return EFI_BUFFER_TOO_SMALL;\r
   }\r
 \r
@@ -298,7 +301,7 @@ Returns:
 \r
   }\r
 \r
-  *HandleBufferLength = (Count * sizeof (FRAMEWORK_EFI_HII_HANDLE));\r
+  *HandleBufferLength = (UINT16) (Count * sizeof (FRAMEWORK_EFI_HII_HANDLE));\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -348,24 +351,30 @@ LangCodes3066To639 (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Allows a program to determine the primary languages that are supported on a given handle.\r
+\r
+  This routine is intended to be used by drivers to query the interface database for supported languages. \r
+  This routine returns a string of concatenated 3-byte language identifiers, one per string package associated with the handle.\r
+\r
+  @param This           A pointer to the EFI_HII_PROTOCOL instance.\r
+  @param Handle         The handle on which the strings reside. Type EFI_HII_HANDLE is defined in EFI_HII_PROTOCOL.NewPack() \r
+                        in the Packages section.\r
+  @param LanguageString A string allocated by GetPrimaryLanguages() that contains a list of all primary languages \r
+                        registered on the handle. The routine will not return the three-spaces language identifier used in \r
+                        other functions to indicate non-language-specific strings.\r
+\r
+  @reval EFI_SUCCESS            LanguageString was correctly returned.\r
\r
+  @reval EFI_INVALID_PARAMETER The Handle was unknown.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 HiiGetPrimaryLanguages (\r
-  IN  EFI_HII_PROTOCOL      *This,\r
-  IN  FRAMEWORK_EFI_HII_HANDLE         Handle,\r
-  OUT EFI_STRING            *LanguageString\r
+  IN  EFI_HII_PROTOCOL            *This,\r
+  IN  FRAMEWORK_EFI_HII_HANDLE    Handle,\r
+  OUT EFI_STRING                  *LanguageString\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function allows a program to determine what the primary languages that are supported on a given handle.\r
-\r
-Arguments:\r
-\r
-Returns:\r
-\r
---*/\r
 {\r
   HII_THUNK_PRIVATE_DATA     *Private;\r
   EFI_HII_HANDLE             UefiHiiHandle;\r
@@ -416,7 +425,26 @@ Done:
 }\r
 \r
 \r
+/**\r
+  Allows a program to determine which secondary languages are supported on a given handle for a given primary language\r
+\r
+  This routine is intended to be used by drivers to query the interface database for supported languages. \r
+  This routine returns a string of concatenated 3-byte language identifiers, one per string package associated with the handle.\r
 \r
+  @param This           A pointer to the EFI_HII_PROTOCOL instance.\r
+  @param Handle         The handle on which the strings reside. Type EFI_HII_HANDLE is defined in EFI_HII_PROTOCOL.NewPack() \r
+                        in the Packages section.\r
+  @param PrimaryLanguage Pointer to a NULL-terminated string containing a single ISO 639-2 language identifier, indicating \r
+                         the primary language.\r
+  @param LanguageString  A string allocated by GetSecondaryLanguages() containing a list of all secondary languages registered \r
+                         on the handle. The routine will not return the three-spaces language identifier used in other functions \r
+                         to indicate non-language-specific strings, nor will it return the primary language. This function succeeds \r
+                         but returns a NULL LanguageString if there are no secondary languages associated with the input Handle and \r
+                         PrimaryLanguage pair. Type EFI_STRING is defined in String.\r
+  \r
+  @reval EFI_SUCCESS            LanguageString was correctly returned.\r
+  @reval EFI_INVALID_PARAMETER  The Handle was unknown.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 HiiGetSecondaryLanguages (\r
@@ -425,18 +453,6 @@ HiiGetSecondaryLanguages (
   IN  CHAR16                        *PrimaryLanguage,\r
   OUT EFI_STRING                    *LanguageString\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function allows a program to determine which secondary languages are supported\r
-  on a given handle for a given primary language.\r
-\r
-  Arguments:\r
-\r
-Returns:\r
-\r
---*/\r
 {\r
   HII_THUNK_PRIVATE_DATA *Private;\r
   EFI_HII_HANDLE             UefiHiiHandle;\r