]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/HiiString.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / Protocol / HiiString.h
index a7eab33020f6d672bea792cf8d906bfc8e00475a..b8439c95a6fb3b5bef57d9bf51fe2102a74feec5 100644 (file)
@@ -1,59 +1,54 @@
 /** @file\r
   The file provides services to manipulate string data.\r
-  \r
-  Copyright (c) 2006 - 2008, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
 \r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+  @par Revision Reference:\r
+  This Protocol was introduced in UEFI Specification 2.1.\r
 \r
 **/\r
 \r
 #ifndef __HII_STRING_H__\r
 #define __HII_STRING_H__\r
 \r
-#define EFI_HII_STRING_PROTOCOL_GUID \\r
-  { 0xfd96974, 0x23aa, 0x4cdc, { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } }\r
-\r
-#include <Protocol/HiiDatabase.h>\r
 #include <Protocol/HiiFont.h>\r
 \r
+#define EFI_HII_STRING_PROTOCOL_GUID \\r
+  { 0xfd96974, 0x23aa, 0x4cdc, { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } }\r
 \r
 typedef struct _EFI_HII_STRING_PROTOCOL EFI_HII_STRING_PROTOCOL;\r
 \r
-\r
-\r
 /**\r
-  This function adds the string String to the group of strings\r
-  owned by PackageList, with the specified font information\r
-  StringFontInfo and returns a new string id.\r
-\r
-  @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
-\r
-  @param PackageList  Handle of the package list where this\r
-                      string will be added.\r
-\r
-  @param Language Points to the language for the new string.\r
-\r
-  @param String   Points to the new null-terminated string.\r
-\r
-  @param StringFontInfo Points to the new string's font\r
-                        information or NULL if the string should\r
-                        have the default system font, size and\r
-                        style. StringId On return, contains the\r
-                        new strings id, which is unique within\r
-                        PackageList.\r
-\r
-  @retval EFI_SUCCESS The new string was added successfully\r
-  \r
-  @retval EFI_OUT_OF_RESOURCES  Could not add the string.\r
-  \r
-  @retval EFI_INVALID_PARAMETER String is NULL or StringId is\r
-                                NULL or Language is NULL.\r
-\r
+  This function adds the string String to the group of strings owned by PackageList, with the\r
+  specified font information StringFontInfo, and returns a new string id.\r
+  The new string identifier is guaranteed to be unique within the package list.\r
+  That new string identifier is reserved for all languages in the package list.\r
+\r
+  @param  This                   A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
+  @param  PackageList            The handle of the package list where this string will\r
+                                 be added.\r
+  @param  StringId               On return, contains the new strings id, which is\r
+                                 unique within PackageList.\r
+  @param  Language               Points to the language for the new string.\r
+  @param  LanguageName           Points to the printable language name to associate\r
+                                 with the passed in  Language field.If LanguageName\r
+                                 is not NULL and the string package header's\r
+                                 LanguageName  associated with a given Language is\r
+                                 not zero, the LanguageName being passed in will\r
+                                 be ignored.\r
+  @param  String                 Points to the new null-terminated string.\r
+  @param  StringFontInfo         Points to the new string's font information or\r
+                                 NULL if the string should have the default system\r
+                                 font, size and style.\r
+\r
+  @retval EFI_SUCCESS            The new string was added successfully.\r
+  @retval EFI_NOT_FOUND          The specified PackageList could not be found in\r
+                                 database.\r
+  @retval EFI_OUT_OF_RESOURCES   Could not add the string due to lack of resources.\r
+  @retval EFI_INVALID_PARAMETER  String is NULL, or StringId is NULL, or Language is NULL.\r
+  @retval EFI_INVALID_PARAMETER  The specified StringFontInfo does not exist in\r
+                                 current database.\r
 \r
 **/\r
 typedef\r
@@ -63,65 +58,44 @@ EFI_STATUS
   IN        EFI_HII_HANDLE            PackageList,\r
   OUT       EFI_STRING_ID             *StringId,\r
   IN CONST  CHAR8                     *Language,\r
-  IN  CONST CHAR16                    *LanguageName, OPTIONAL  \r
+  IN  CONST CHAR16                    *LanguageName, OPTIONAL\r
   IN CONST  EFI_STRING                String,\r
   IN CONST  EFI_FONT_INFO             *StringFontInfo OPTIONAL\r
 );\r
 \r
 \r
 /**\r
+  This function retrieves the string specified by StringId which is associated\r
+  with the specified PackageList in the language Language and copies it into\r
+  the buffer specified by String.\r
+\r
+  @param  This                   A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
+  @param  Language               Points to the language for the retrieved string.\r
+  @param  PackageList            The package list in the HII database to search for\r
+                                 the  specified string.\r
+  @param  StringId               The string's id, which is unique within\r
+                                 PackageList.\r
+  @param  String                 Points to the new null-terminated string.\r
+  @param  StringSize             On entry, points to the size of the buffer pointed\r
+                                 to by  String, in bytes. On return, points to the\r
+                                 length of the string, in bytes.\r
+  @param  StringFontInfo         If not NULL, points to the string's font\r
+                                 information.  It's caller's responsibility to free\r
+                                 this buffer.\r
+\r
+  @retval EFI_SUCCESS            The string was returned successfully.\r
+  @retval EFI_NOT_FOUND          The string specified by StringId is not available.\r
+                                 The specified PackageList is not in the database.\r
+  @retval EFI_INVALID_LANGUAGE    The string specified by StringId is available but\r
+                                  not in the specified language.\r
+  @retval EFI_BUFFER_TOO_SMALL   The buffer specified by StringSize is too small to\r
+                                 hold the string.\r
+  @retval EFI_INVALID_PARAMETER   The Language or StringSize was NULL.\r
+  @retval EFI_INVALID_PARAMETER   The value referenced by StringSize was not zero and\r
+                                  String was NULL.\r
+  @retval EFI_OUT_OF_RESOURCES    There were insufficient resources to complete the\r
+                                  request.\r
 \r
-  This function retrieves the string specified by StringId which\r
-  is associated with the specified PackageList in the language\r
-  Language and copies it into the buffer specified by String. If\r
-  the string specified by StringId is not present in the\r
-  specified PackageList, then EFI_NOT_FOUND is returned. If the\r
-  string specified by StringId is present, but not in the\r
-  specified language then EFI_INVALID_LANGUAGE is returned. If\r
-  the buffer specified by StringSize is too small to hold the\r
-  string, then EFI_BUFFER_TOO_SMALL will be returned. StringSize\r
-  will be updated to the size of buffer actually required to\r
-  hold the string.\r
-\r
-  @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
-  \r
-  @param PackageList  The package list in the HII database to\r
-                      search for the specified string.\r
-  \r
-  @param Language   Points to the language for the retrieved\r
-                    string.\r
-  \r
-  @param StringId   The string's id, which is unique within\r
-                    PackageList.\r
-  \r
-  @param String   Points to the new null-terminated string.\r
-  \r
-  @param StringSize On entry, points to the size of the buffer\r
-                    pointed to by String, in bytes. On return,\r
-                    points to the length of the string, in\r
-                    bytes.\r
-  \r
-  @param StringFontInfo  Points to a buffer that will be callee allocated and will \r
-                      have the string's font information into this buffer.  \r
-                      The caller is responsible for freeing this buffer.  \r
-                      If the parameter is NULL a buffer will not be allocated \r
-                      and the string font information will not be returned.\r
-  \r
-  @retval EFI_SUCCESS The string was returned successfully.\r
-  \r
-  @retval EFI_NOT_FOUND The string specified by StringId is not\r
-                        available. The specified PackageList is not in the database.\r
-  \r
-  @retval EFI_INVALID_LANGUAGE  The string specified by StringId\r
-                                is available but not in the\r
-                                specified language.\r
-  \r
-  @retval EFI_BUFFER_TOO_SMALL  The buffer specified by\r
-                                StringLength is too small to\r
-                                hold the string.\r
-  \r
-  @retval EFI_INVALID_PARAMETER The String or Language was NULL.\r
-  \r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -136,36 +110,26 @@ EFI_STATUS
 );\r
 \r
 /**\r
-  This function updates the string specified by StringId in the\r
-  specified PackageList to the text specified by String and,\r
-  optionally, the font information specified by StringFontInfo.\r
-  There is no way to change the font information without changing\r
-  the string text.\r
-\r
-  @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
-\r
-  @param PackageList  The package list containing the strings.\r
-\r
-  @param Language Points to the language for the updated string.\r
-\r
-  @param StringId The string id, which is unique within\r
-                  PackageList.\r
-\r
-  @param String   Points to the new null-terminated string.\r
-\r
-  @param StringFontInfo Points to the string's font information\r
-                        or NULL if the string font information\r
-                        is not changed.\r
-\r
-  @retval EFI_SUCCESS   The string was successfully updated.\r
-  \r
-  @retval EFI_NOT_FOUND The string specified by StringId is not\r
-                        in the database. The specified PackageList is not in the database.\r
-  \r
-  @retval EFI_INVALID_PARAMETER The String or Language was NULL.\r
-  \r
-  @retval EFI_OUT_OF_RESOURCES  The system is out of resources\r
-                                to accomplish the task.\r
+  This function updates the string specified by StringId in the specified PackageList to the text\r
+  specified by String and, optionally, the font information specified by StringFontInfo.\r
+\r
+  @param  This                   A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
+  @param  PackageList            The package list containing the strings.\r
+  @param  StringId               The string's id, which is unique within\r
+                                 PackageList.\r
+  @param  Language               Points to the language for the updated string.\r
+  @param  String                 Points to the new null-terminated string.\r
+  @param  StringFontInfo         Points to the string's font information or NULL if\r
+                                 the  string font information is not changed.\r
+\r
+  @retval EFI_SUCCESS            The string was updated successfully.\r
+  @retval EFI_NOT_FOUND          The string specified by StringId is not in the\r
+                                 database.\r
+  @retval EFI_INVALID_PARAMETER  The String or Language was NULL.\r
+  @retval EFI_INVALID_PARAMETER  The specified StringFontInfo does not exist in\r
+                                 current database.\r
+  @retval EFI_OUT_OF_RESOURCES   The system is out of resources to accomplish the\r
+                                 task.\r
 \r
 **/\r
 typedef\r
@@ -181,33 +145,25 @@ EFI_STATUS
 \r
 \r
 /**\r
-\r
   This function returns the list of supported languages.\r
 \r
-  @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
-\r
-  @param PackageList  The package list to examine.\r
-\r
-  @param Languages  Points to the buffer to hold the returned\r
-                    string.\r
-\r
-  @param LanguageSize   On entry, points to the size of the\r
-                        buffer pointed to by Languages, in\r
-                        bytes. On return, points to the length\r
-                        of Languages, in bytes.\r
-\r
-\r
-  @retval EFI_SUCCESS The languages were returned successfully.\r
-  \r
-  @retval EFI_BUFFER_TOO_SMALL  The LanguagesSize is too small\r
-                                to hold the list of supported\r
-                                languages. LanguageSize is\r
-                                updated to contain the required\r
-                                size.\r
-  \r
-  @retval EFI_INVALID_PARAMETER Languages or LanguagesSize is NULL.\r
-  @retval EFI_NOT_FOUND The specified PackageList is not in the database.\r
-\r
+  @param  This                   A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
+  @param  PackageList            The package list to examine.\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 pointed\r
+                                 to by Languages, in bytes. On return, points to\r
+                                 the length of Languages, in bytes.\r
+\r
+  @retval EFI_SUCCESS            The languages were returned successfully.\r
+  @retval EFI_INVALID_PARAMETER  The LanguagesSize was NULL.\r
+  @retval EFI_INVALID_PARAMETER  The value referenced by LanguagesSize is not zero\r
+                                 and Languages is NULL.\r
+  @retval EFI_BUFFER_TOO_SMALL   The LanguagesSize is too small to hold the list of\r
+                                 supported languages. LanguageSize is updated to\r
+                                 contain the required size.\r
+  @retval EFI_NOT_FOUND          Could not find string package in specified\r
+                                 packagelist.\r
 \r
 **/\r
 typedef\r
@@ -221,50 +177,36 @@ EFI_STATUS
 \r
 \r
 /**\r
-\r
-  Each string package has associated with it a single primary\r
-  language and zero or more secondary languages. This routine\r
-  returns the secondary languages associated with a package list.\r
-\r
-  @param This   A pointer to the EFI_HII_STRING_PROTOCOL\r
-                instance.\r
-\r
-  @param PackageList  The package list to examine.\r
-\r
-  @param FirstLanguage  Points to the primary language.\r
-\r
-  @param Languages  are specified in the format specified in\r
-                    Appendix M of the UEFI 2.0 specification.\r
-\r
-  @param SecondaryLanguages Points to the buffer to hold the\r
-                            returned list of secondary languages\r
-                            for the specified FirstLanguage. If\r
-                            there are no secondary languages,\r
-                            the function returns successfully,\r
-                            but this is set to NULL.\r
-\r
-  @param SecondaryLanguageSize  On entry, points to the size of\r
-                                the buffer pointed to by\r
-                                Languages, in bytes. On return,\r
-                                points to the length of\r
-                                Languages in bytes.\r
-\r
-  @retval EFI_SUCCESS   Secondary languages correctly returned\r
-\r
-  @retval EFI_BUFFER_TOO_SMALL  The buffer specified by\r
-                                SecondLanguagesSize is too small\r
-                                to hold the returned\r
-                                information. SecondLanguageSize\r
-                                is updated to hold the size of\r
-                                the buffer required.\r
-\r
-  @retval EFI_INVALID_LANGUAGE  The language specified by\r
-                                FirstLanguage is not present in\r
-                                the specified package list.\r
-\r
-  @retval EFI_INVALID_PARAMETER FirstLanguage is NULL or\r
-                                SecondLanguage is NULL.\r
-  @retval EFI_NOT_FOUND The specified PackageList is not in the database.\r
+  Each string package has associated with it a single primary language and zero\r
+  or more secondary languages. This routine returns the secondary languages\r
+  associated with a package list.\r
+\r
+  @param  This                   A pointer to the EFI_HII_STRING_PROTOCOL instance.\r
+  @param  PackageList            The package list to examine.\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, but\r
+                                 this is set to NULL.\r
+  @param  SecondaryLanguagesSize On entry, points to the size of the buffer pointed\r
+                                 to by SecondaryLanguages, in bytes. On return,\r
+                                 points to the length of SecondaryLanguages in bytes.\r
+\r
+  @retval EFI_SUCCESS            Secondary languages were correctly returned.\r
+  @retval EFI_INVALID_PARAMETER  PrimaryLanguage or SecondaryLanguagesSize was NULL.\r
+  @retval EFI_INVALID_PARAMETER  The value referenced by SecondaryLanguagesSize is not\r
+                                 zero and SecondaryLanguages is NULL.\r
+  @retval EFI_BUFFER_TOO_SMALL   The buffer specified by SecondaryLanguagesSize is\r
+                                 too small to hold the returned information.\r
+                                 SecondaryLanguageSize is updated to hold the size of\r
+                                 the buffer required.\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
 **/\r
 typedef\r
@@ -272,28 +214,15 @@ EFI_STATUS
 (EFIAPI *EFI_HII_GET_2ND_LANGUAGES)(\r
   IN CONST  EFI_HII_STRING_PROTOCOL   *This,\r
   IN        EFI_HII_HANDLE            PackageList,\r
-  IN CONST  CHAR8                     *FirstLanguage,\r
-  IN OUT    CHAR8                     *SecondLanguages,\r
-  IN OUT    UINTN                     *SecondLanguagesSize\r
+  IN CONST  CHAR8                     *PrimaryLanguage,\r
+  IN OUT    CHAR8                     *SecondaryLanguages,\r
+  IN OUT    UINTN                     *SecondaryLanguagesSize\r
 );\r
 \r
 \r
-/**\r
-  Services to manipulate the string.\r
-   \r
-  @param NewString  Add a new string. GetString Retrieve a\r
-                    string and related string information.\r
-\r
-  @param SetString  Change a string. \r
-\r
-  @param GetLanguages   List the languages for a particular\r
-                        package list.\r
-\r
-  @param GetSecondaryLanguages  List supported secondary\r
-                                languages for a particular\r
-                                primary language.\r
-\r
-**/\r
+///\r
+/// Services to manipulate the string.\r
+///\r
 struct _EFI_HII_STRING_PROTOCOL {\r
   EFI_HII_NEW_STRING        NewString;\r
   EFI_HII_GET_STRING        GetString;\r
@@ -307,4 +236,3 @@ extern EFI_GUID gEfiHiiStringProtocolGuid;
 \r
 #endif\r
 \r
-\r