]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add GetCurrentLanguage() to HiiLib in MdeModulePkg
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 27 Nov 2008 07:43:56 +0000 (07:43 +0000)
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 27 Nov 2008 07:43:56 +0000 (07:43 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6758 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Include/Library/HiiLib.h
MdeModulePkg/Library/UefiHiiLib/HiiLanguage.c
MdeModulePkg/Library/UefiHiiLib/InternalHiiLib.h
MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf

index a92431ab4d4444aca44fed61c048bd1bfb67050f..04601b97194191cbd757c6cb92914f93dea3c267 100644 (file)
@@ -497,4 +497,26 @@ Rfc3066ToIso639 (
   CHAR8  *SupportedLanguages\r
   );\r
 \r
+\r
+/**\r
+  Determine what is the current language setting. The space reserved for Lang\r
+  must be at least RFC_3066_ENTRY_SIZE bytes;\r
+\r
+  If Lang is NULL, then ASSERT.\r
+\r
+  @param  Lang                   Pointer of system language. Lang will always be filled with \r
+                                         a valid RFC 3066 language string. If "PlatformLang" is not\r
+                                         set in the system, the default language specifed by PcdUefiVariableDefaultPlatformLang\r
+                                         is returned.\r
+\r
+  @return  EFI_SUCCESS     If the EFI Variable with "PlatformLang" is set and return in Lang.\r
+  @return  EFI_NOT_FOUND If the EFI Variable with "PlatformLang" is not set, but a valid default language is return in Lang.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+GetCurrentLanguage (\r
+  OUT     CHAR8               *Lang\r
+  );\r
+\r
 #endif\r
index 147e5a39423b9e90246d1927b7bc2ebe060c917b..58817c1bafdc4cc91fe4d27c16e8dce7ae9f333c 100644 (file)
@@ -204,3 +204,50 @@ HiiLibGetSupportedSecondaryLanguages (
 }\r
 \r
 \r
+/**\r
+  Determine what is the current language setting. The space reserved for Lang\r
+  must be at least RFC_3066_ENTRY_SIZE bytes;\r
+\r
+  If Lang is NULL, then ASSERT.\r
+\r
+  @param  Lang                   Pointer of system language. Lang will always be filled with \r
+                                 a valid RFC 3066 language string. If "PlatformLang" is not\r
+                                 set in the system, the default language specifed by PcdUefiVariableDefaultPlatformLang\r
+                                 is returned.\r
+\r
+  @return  EFI_SUCCESS     If the EFI Variable with "PlatformLang" is set and return in Lang.\r
+  @return  EFI_NOT_FOUND If the EFI Variable with "PlatformLang" is not set, but a valid default language is return in Lang.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+GetCurrentLanguage (\r
+  OUT     CHAR8               *Lang\r
+  )\r
+{\r
+  EFI_STATUS  Status;\r
+  UINTN       Size;\r
+\r
+  ASSERT (Lang != NULL);\r
+\r
+  //\r
+  // Get current language setting\r
+  //\r
+  Size = RFC_3066_ENTRY_SIZE;\r
+  Status = gRT->GetVariable (\r
+                  L"PlatformLang",\r
+                  &gEfiGlobalVariableGuid,\r
+                  NULL,\r
+                  &Size,\r
+                  Lang\r
+                  );\r
+\r
+  if (EFI_ERROR (Status)) {\r
+    AsciiStrCpy (Lang, (CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang));\r
+  }\r
+\r
+  return Status;\r
+}\r
+\r
+\r
+\r
index 18d168ec70d23f19308b834402bc1e3395fc61f6..28c738fb06f3493e26816c2d09cdad0bf9ee262e 100644 (file)
@@ -21,6 +21,8 @@
 #include <Protocol/HiiString.h>\r
 #include <Protocol/DevicePath.h>\r
 \r
+#include <Guid/GlobalVariable.h>\r
+\r
 #include <Library/BaseLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
 #include <Library/HiiLib.h>\r
@@ -29,6 +31,8 @@
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/DevicePathLib.h>\r
 #include <Library/UefiLib.h>\r
+#include <Library/PcdLib.h>\r
+#include <Library/UefiRuntimeServicesTableLib.h>\r
 \r
 #define HII_LIB_DEFAULT_STRING_SIZE     0x200\r
 \r
index f355d02f1b4505edfc934ecbb72ebf7f9412b730..08dc64a704f3ba694d9baf79a1e6b584ffe36d6a 100644 (file)
   UefiBootServicesTableLib\r
   DevicePathLib\r
   UefiLib\r
+  PcdLib\r
+  UefiRuntimeServicesTableLib\r
 \r
 [Protocols]\r
   gEfiHiiDatabaseProtocolGuid  # ALWAYS_CONSUMED\r
   gEfiHiiStringProtocolGuid    # ALWAYS_CONSUMED\r
   gEfiDevicePathProtocolGuid  \r
 \r
+[Pcd]\r
+  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang\r
+\r
+[Guids]  \r
+  gEfiGlobalVariableGuid \r
+\r
 [Depex]\r
   gEfiHiiDatabaseProtocolGuid AND\r
   gEfiHiiStringProtocolGuid\r
index 243c5ee9f5c9dc92fccf6e681d6719a8ff8ac132..c2917a9233ecaaca36351839eb74573f21385e48 100644 (file)
@@ -40,6 +40,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/IfrSupportLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/PcdLib.h>\r
+#include <Library/HiiLib.h>\r
 \r
 #define HII_DATABASE_NOTIFY_GUID \\r
   { \\r
index d64a3f22cb3cd63aa9569ff51b869c51695057cb..6d2ce944a53c3b02668f07318305602cdbc610a3 100644 (file)
@@ -59,6 +59,7 @@
   DebugLib\r
   IfrSupportLib\r
   UefiLib\r
+  HiiLib\r
 \r
 [Protocols]\r
   gEfiConsoleControlProtocolGuid                \r