summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Protocol/HiiString.h
diff options
context:
space:
mode:
authoryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-19 10:12:02 +0000
committeryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-19 10:12:02 +0000
commitd1f950002362305fcd4c30f108ef7b76679f5843 (patch)
tree7cf4fd91cedb0adf0cb570c5ae95b774a916630a /MdePkg/Include/Protocol/HiiString.h
parent00edb2182b6203a037219c29317ab6362c78b422 (diff)
downloadedk2-platforms-d1f950002362305fcd4c30f108ef7b76679f5843.tar.xz
Checked in the Protocols introduced in UEFI/PI.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2674 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Include/Protocol/HiiString.h')
-rw-r--r--MdePkg/Include/Protocol/HiiString.h303
1 files changed, 303 insertions, 0 deletions
diff --git a/MdePkg/Include/Protocol/HiiString.h b/MdePkg/Include/Protocol/HiiString.h
new file mode 100644
index 0000000000..06ff124b24
--- /dev/null
+++ b/MdePkg/Include/Protocol/HiiString.h
@@ -0,0 +1,303 @@
+/** @file
+ The file provides services to manipulate string data.
+
+ Copyright (c) 2006 - 2007, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ Module Name: HiiString.h
+
+**/
+
+#ifndef __HII_STRING_H__
+#define __HII_STRING_H__
+
+#define EFI_HII_STRING_PROTOCOL_GUID \
+ { 0xfd96974, 0x23aa, 0x4cdc, { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } }
+
+
+typedef struct _EFI_HII_STRING_PROTOCOL EFI_HII_STRING_PROTOCOL;
+
+
+
+/**
+ This function adds the string String to the group of strings
+ owned by PackageList, with the specified font information
+ StringFontInfo and returns a new string id.
+
+ @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
+
+ @param PackageList Handle of the package list where this
+ string will be added.
+
+ @param Language Points to the language for the new string.
+
+ @param String Points to the new null-terminated string.
+
+ @param StringFontInfo Points to the new string's font
+ information or NULL if the string should
+ have the default system font, size and
+ style. StringId On return, contains the
+ new strings id, which is unique within
+ PackageList.
+
+ @retval EFI_SUCCESS The new string was added successfully
+
+ @retval EFI_OUT_OF_RESOURCES Could not add the string.
+
+ @retval EFI_INVALID_PARAMETER String is NULL or StringId is
+ NULL or Language is NULL.
+
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_NEW_STRING) (
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN CONST EFI_HII_HANDLE PackageList,
+ OUT EFI_STRING_ID *StringId
+ IN CONST CHAR8 *Language,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL,
+);
+
+
+/**
+
+ This function retrieves the string specified by StringId which
+ is associated with the specified PackageList in the language
+ Language and copies it into the buffer specified by String. If
+ the string specified by StringId is not present in the
+ specified PackageList, then EFI_NOT_FOUND is returned. If the
+ string specified by StringId is present, but not in the
+ specified language then EFI_INVALID_LANGUAGE is returned. If
+ the buffer specified by StringSize is too small to hold the
+ string, then EFI_BUFFER_TOO_SMALL will be returned. StringSize
+ will be updated to the size of buffer actually required to
+ hold the string.
+
+ @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
+
+ @param PackageList The package list in the HII database to
+ search for the specified string.
+
+ @param Language Points to the language for the retrieved
+ string.
+
+ @param StringId The string's id, which is unique within
+ PackageList.
+
+ @param String Points to the new null-terminated string.
+
+ @param StringSize On entry, points to the size of the buffer
+ pointed to by String, in bytes. On return,
+ points to the length of the string, in
+ bytes.
+
+ @param StringFontInfo Points to the string's font
+ information or NULL if the string font
+ information is not desired.
+
+ @retval EFI_SUCCESS The string was returned successfully.
+
+ @retval EFI_NOT_FOUND The string specified by StringId is not
+ available.
+
+ @retval EFI_INVALID_LANGUAGE The string specified by StringId
+ is available but not in the
+ specified language.
+
+ @retval EFI_BUFFER_TOO_SMALL The buffer specified by
+ StringLength is too small to
+ hold the string.
+
+ @retval EFI_INVALID_PARAMETER The String or Language was NULL.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_GET_STRING) (
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN CONST CHAR8 *Language,
+ IN CONST EFI_HII_HANDLE PackageList,
+ IN CONST EFI_STRING_ID StringId,
+ OUT EFI_STRING String,
+ IN OUT UINTN StringSize,
+ OUT EFI_FONT_INFO *StringFontInfo OPTIONAL
+);
+
+/**
+ This function updates the string specified by StringId in the
+ specified PackageList to the text specified by String and,
+ optionally, the font information specified by StringFontInfo.
+ There is no way to change the font information without changing
+ the string text.
+
+ @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
+
+ @param PackageList The package list containing the strings.
+
+ @param Language Points to the language for the updated string.
+
+ @param StringId The string id, which is unique within
+ PackageList.
+
+ @param String Points to the new null-terminated string.
+
+ @param StringFontInfo Points to the string's font information
+ or NULL if the string font information
+ is not changed.
+
+ @retval EFI_SUCCESS The string was successfully updated.
+
+ @retval EFI_NOT_FOUND The string specified by StringId is not
+ in the database.
+
+ @retval EFI_INVALID_PARAMETER The String or Language was NULL.
+
+ @retval EFI_OUT_OF_RESOURCES The system is out of resources
+ to accomplish the task.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_SET_STRING) (
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN CONST EFI_HII_HANDLE PackageList,
+ IN CONST EFI_STRING_ID StringId,
+ IN CONST CHAR8 *Language,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
+);
+
+
+/**
+
+ This function returns the list of supported languages.
+
+ @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
+
+ @param PackageList The package list to examine.
+
+ @param Languages Points to the buffer to hold the returned
+ string.
+
+ @param LanguageSize On entry, points to the size of the
+ buffer pointed to by Languages, in
+ bytes. On return, points to the length
+ of Languages, in bytes.
+
+
+ @retval EFI_SUCCESS The languages were returned successfully.
+
+ @retval EFI_BUFFER_TOO_SMALL The LanguagesSize is too small
+ to hold the list of supported
+ languages. LanguageSize is
+ updated to contain the required
+ size.
+
+ @retval EFI_INVALID_PARAMETER Languages is NULL.
+
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_HII_GET_LANGUAGES) (
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN CONST EFI_HII_HANDLE PackageList,
+ IN OUT CHAR8 *Languages,
+ IN OUT UINTN LanguagesSize
+);
+
+
+/**
+
+ Each string package has associated with it a single primary
+ language and zero or more secondary languages. This routine
+ returns the secondary languages associated with a package list.
+
+ @param This A pointer to the EFI_HII_STRING_PROTOCOL
+ instance.
+
+ @param PackageList The package list to examine.
+
+ @param FirstLanguage Points to the primary language.
+
+ @param Languages are specified in the format specified in
+ Appendix M of the UEFI 2.0 specification.
+
+ @param SecondaryLanguages Points to the buffer to hold the
+ returned list of secondary languages
+ for the specified FirstLanguage. If
+ there are no secondary languages,
+ the function returns successfully,
+ but this is set to NULL.
+
+ @param SecondaryLanguageSize On entry, points to the size of
+ the buffer pointed to by
+ Languages, in bytes. On return,
+ points to the length of
+ Languages in bytes.
+
+ @retval EFI_SUCCESS Secondary languages correctly returned
+
+ @retval EFI_BUFFER_TOO_SMALL The buffer specified by
+ SecondLanguagesSize is too small
+ to hold the returned
+ information. SecondLanguageSize
+ is updated to hold the size of
+ the buffer required.
+
+ @retval EFI_INVALID_LANGUAGE The language specified by
+ FirstLanguage is not present in
+ the specified package list.
+
+ @retval EFI_INVALID_PARAMETER FirstLanguage is NULL or
+ SecondLanguage is NULL.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_GET_2ND_LANGUAGES) (
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN CONST EFI_HII_HANDLE PackageList,
+ IN CONST CHAR8 *FirstLanguage;
+ IN OUT CHAR8 *SecondLanguages,
+ IN OUT UINTN SecondLanguagesSize
+);
+
+
+/**
+ Services to manipulate the string.
+
+ @param NewString Add a new string. GetString Retrieve a
+ string and related string information.
+
+ @param SetString Change a string.
+
+ @param GetLanguages List the languages for a particular
+ package list.
+
+ @param GetSecondaryLanguages List supported secondary
+ languages for a particular
+ primary language.
+
+**/
+struct _EFI_HII_STRING_PROTOCOL {
+ EFI_HII_NEW_STRING NewString;
+ EFI_HII_GET_STRING GetString;
+ EFI_HII_SET_STRING SetString;
+ EFI_HII_GET_LANGUAGES GetLanguages;
+ EFI_HII_GET_2ND_LANGUAGES GetSecondaryLanguages;
+};
+
+
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+
+#endif
+