]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
1) Fix GCC version EBC interpreter bug.
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / HiiDatabase.h
index 554d7c892127686db4e586345e827d89f9a142e6..ccb9263923b5be03f87cc9b4b58340d60add0d46 100644 (file)
@@ -42,12 +42,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/UefiRuntimeServicesTableLib.h>\r
 #include <Library/PrintLib.h>\r
 \r
-\r
-#define HII_DATABASE_NOTIFY_GUID \\r
-  { \\r
-    0xc1c76, 0xd79e, 0x42fe, {0x86, 0xb, 0x8b, 0xe8, 0x7b, 0x3e, 0x7a, 0x78} \\r
-  }\r
-\r
 #define MAX_STRING_LENGTH                  1024\r
 #define MAX_FONT_NAME_LEN                  256\r
 #define NARROW_BASELINE                    15\r
@@ -86,10 +80,21 @@ typedef struct {
   LIST_ENTRY          DefaultValueEntry; // Link to its default value array\r
 } IFR_BLOCK_DATA;\r
 \r
+//\r
+// Get default value from IFR data.\r
+//\r
+typedef enum {\r
+  DEFAULT_VALUE_FROM_DEFAULT = 0,   // Get from the minimum or first one when not set default value.\r
+  DEFAULT_VALUE_FROM_FLAG,          // Get default value from the defalut flag.\r
+  DEFAULT_VALUE_FROM_OPCODE         // Get default value from default opcode, highest priority.\r
+} DEFAULT_VALUE_TYPE;\r
+\r
 typedef struct {\r
   LIST_ENTRY          Entry;\r
-  UINT8               OpCode;\r
-  EFI_STRING_ID       DefaultName;\r
+  DEFAULT_VALUE_TYPE  Type;\r
+  BOOLEAN             Cleaned;       // Whether this value is cleaned\r
+                                     // TRUE  Cleaned, the value can't be used\r
+                                     // FALSE Not cleaned, the value can  be used.\r
   UINT16              DefaultId;\r
   UINT64              Value;\r
 } IFR_DEFAULT_DATA;\r
@@ -158,6 +163,8 @@ typedef struct _HII_SIMPLE_FONT_PACKAGE_INSTANCE {
 typedef struct _HII_FONT_PACKAGE_INSTANCE {\r
   UINTN                                 Signature;\r
   EFI_HII_FONT_PACKAGE_HDR              *FontPkgHdr;\r
+  UINT16                                Height;\r
+  UINT16                                BaseLine;\r
   UINT8                                 *GlyphBlock;\r
   LIST_ENTRY                            FontEntry;\r
   LIST_ENTRY                            GlyphInfoList;\r
@@ -1059,7 +1066,8 @@ HiiSetString (
   @param  This                    A pointer to the EFI_HII_STRING_PROTOCOL\r
                                   instance.\r
   @param  PackageList             The package list to examine.\r
-  @param  Languages               Points to the buffer to hold the returned string.\r
+  @param  Languages               Points to the buffer to hold the returned\r
+                                  null-terminated ASCII string.\r
   @param  LanguagesSize           On entry, points to the size of the buffer\r
                                   pointed to by  Languages, in bytes. On  return,\r
                                   points to the length of Languages, in bytes.\r
@@ -1091,25 +1099,28 @@ HiiGetLanguages (
   @param  This                    A pointer to the EFI_HII_STRING_PROTOCOL\r
                                   instance.\r
   @param  PackageList             The package list to examine.\r
-  @param  FirstLanguage           Points to the primary language.\r
-  @param  SecondaryLanguages      Points to the buffer to hold the returned list of\r
-                                   secondary languages for the specified\r
-                                  FirstLanguage. If there are no secondary\r
-                                  languages, the function  returns successfully,\r
+  @param  PrimaryLanguage         Points to the null-terminated ASCII string that specifies\r
+                                  the primary language. Languages are specified in the\r
+                                  format specified in Appendix M of the UEFI 2.0 specification.\r
+  @param  SecondaryLanguages      Points to the buffer to hold the returned null-terminated\r
+                                  ASCII string that describes the list of\r
+                                  secondary languages for the specified\r
+                                  PrimaryLanguage. If there are no secondary\r
+                                  languages, the function returns successfully,\r
                                   but this is set to NULL.\r
   @param  SecondaryLanguagesSize  On entry, points to the size of the buffer\r
-                                  pointed to  by SecondLanguages, in bytes. On\r
-                                  return, points to the length of SecondLanguages\r
+                                  pointed to by SecondaryLanguages, in bytes. On\r
+                                  return, points to the length of SecondaryLanguages\r
                                   in bytes.\r
 \r
   @retval EFI_SUCCESS             Secondary languages were correctly returned.\r
-  @retval EFI_INVALID_PARAMETER   FirstLanguage or SecondLanguages or\r
-                                  SecondLanguagesSize was NULL.\r
-  @retval EFI_BUFFER_TOO_SMALL    The buffer specified by SecondLanguagesSize is\r
+  @retval EFI_INVALID_PARAMETER   PrimaryLanguage or SecondaryLanguages or\r
+                                  SecondaryLanguagesSize was NULL.\r
+  @retval EFI_BUFFER_TOO_SMALL    The buffer specified by SecondaryLanguagesSize is\r
                                   too small to hold the returned information.\r
-                                  SecondLanguageSize is updated to hold the size of\r
+                                  SecondaryLanguageSize is updated to hold the size of\r
                                   the buffer required.\r
-  @retval EFI_INVALID_LANGUAGE           The language specified by FirstLanguage is not\r
+  @retval EFI_INVALID_LANGUAGE    The language specified by PrimaryLanguage is not\r
                                   present in the specified package list.\r
   @retval EFI_NOT_FOUND          The specified PackageList is not in the Database.                                \r
 \r
@@ -1119,7 +1130,7 @@ EFIAPI
 HiiGetSecondaryLanguages (\r
   IN CONST EFI_HII_STRING_PROTOCOL   *This,\r
   IN EFI_HII_HANDLE                  PackageList,\r
-  IN CONST CHAR8                     *FirstLanguage,\r
+  IN CONST CHAR8                     *PrimaryLanguage,\r
   IN OUT CHAR8                       *SecondaryLanguages,\r
   IN OUT UINTN                       *SecondaryLanguagesSize\r
   );\r
@@ -1755,8 +1766,8 @@ HiiGetAltCfg (
 /**\r
   Compare whether two names of languages are identical.\r
 \r
-  @param  Language1              Name of language 1\r
-  @param  Language2              Name of language 2\r
+  @param  Language1              Name of language 1 from StringPackage\r
+  @param  Language2              Name of language 2 to be compared with language 1.\r
 \r
   @retval TRUE                   same\r
   @retval FALSE                  not same\r