diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Include/Protocol/HiiUtilities.h | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'Include/Protocol/HiiUtilities.h')
-rw-r--r-- | Include/Protocol/HiiUtilities.h | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/Include/Protocol/HiiUtilities.h b/Include/Protocol/HiiUtilities.h new file mode 100644 index 0000000..3c90e19 --- /dev/null +++ b/Include/Protocol/HiiUtilities.h @@ -0,0 +1,155 @@ +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2009, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** + +//********************************************************************** +// $Header: /Alaska/BIN/Core/Include/Protocol/HiiUtilities.h 3 5/23/12 3:54p Artems $ +// +// $Revision: 3 $ +// +// $Date: 5/23/12 3:54p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/BIN/Core/Include/Protocol/HiiUtilities.h $ +// +// 3 5/23/12 3:54p Artems +// [TAG] EIP N/A +// [Category] Improvement +// [Description] Rewrite GraphicsConsole driver to draw strings as a +// whole, +// not symbol-by-symbol for performance reasons +// [Files] HiiUtilities.h, AmiDxeLib.h, EfiLib.h, GC.c, UefiHiiUtils.c +// +// 2 2/23/10 10:14p Felixp +// SetBrowserData function is added +// +// 1 10/09/09 3:15p Felixp +// +//********************************************************************** +//<AMI_FHDR_START> +// +// Name: HiiUtilities.h +// +// Description: HII Utilities Protocol +// +//<AMI_FHDR_END> +//********************************************************************** +#ifndef __HII_UTILITIES_PROTOCOL__H__ +#define __HII_UTILITIES_PROTOCOL__H__ +#ifdef __cplusplus +extern "C" { +#endif +#include <EFI.h> + +// {67B5787C-0E6A-4796-943E-A093B73A0267} +#define HII_UTILITIES_PROTOCOL_GUID \ + { 0x67b5787c, 0xe6a, 0x4796, 0x94, 0x3e, 0xa0, 0x93, 0xb7, 0x3a, 0x2, 0x67 } + +GUID_VARIABLE_DECLARATION(gHiiUtilitiesProtocolGuid,HII_UTILITIES_PROTOCOL_GUID); + +#ifndef GUID_VARIABLE_DEFINITION +#if EFI_SPECIFICATION_VERSION>0x20000 +#include <Protocol/HiiConfigAccess.h> +#else +#include <Protocol/FormCallBack.h > +#endif + +typedef struct _CALLBACK_INFO CALLBACK_INFO; + +typedef VOID(*INIT_HII_PACK)( + EFI_HII_HANDLE HiiHandle, + CALLBACK_INFO *pCallBackFound +); + +struct _CALLBACK_INFO{ + EFI_GUID *pGuid; +#if EFI_SPECIFICATION_VERSION>0x20000 + EFI_HII_CONFIG_ACCESS_PROTOCOL *pFormCallback; +#else + EFI_FORM_CALLBACK_PROTOCOL *pFormCallback; +#endif + UINT16 Class, SubClass; + EFI_HII_HANDLE HiiHandle; +}; + +typedef EFI_STATUS (EFIAPI *HII_UTILS_LOAD_RESOURCES)( + IN EFI_HANDLE ImageHandle, IN UINTN NumberOfCallbacks, + IN CALLBACK_INFO *CallbackInfo, IN INIT_HII_PACK InitFunction OPTIONAL +); + +typedef EFI_STATUS (EFIAPI *HII_UTILS_LOAD_STRINGS)( + EFI_HANDLE ImageHandle, OUT EFI_HII_HANDLE *HiiHandle +); + +typedef EFI_STATUS (EFIAPI *HII_UTILS_GET_STRING)( + IN EFI_HII_HANDLE HiiHandle, IN STRING_REF StringId, + IN OUT UINTN *StringSize, OUT EFI_STRING String +); + +typedef EFI_STATUS (EFIAPI *HII_UTILS_SET_STRING)( + IN EFI_HII_HANDLE HiiHandle, IN STRING_REF StringId, IN EFI_STRING String +); + +typedef EFI_STATUS (EFIAPI *HII_UTILS_PUBLISH_PACKAGES)( + IN VOID *PackagePointers, IN UINTN NumberOfPackages, + IN EFI_GUID *PackageGuid, IN EFI_HANDLE DriverHandle OPTIONAL, + OUT EFI_HII_HANDLE *HiiHandle +); + +typedef EFI_STATUS (EFIAPI *HII_UTILS_GET_BROWSER_DATA)( + IN UINTN *BufferSize, OUT VOID *Buffer, + IN CONST EFI_GUID *VarStoreGuid OPTIONAL, + IN CONST CHAR16 *VarStoreName OPTIONAL +); + +typedef EFI_STATUS (EFIAPI *HII_UTILS_SET_BROWSER_DATA)( + IN UINTN BufferSize, IN VOID *Buffer, + IN CONST EFI_GUID *VarStoreGuid, OPTIONAL + IN CONST CHAR16 *VarStoreName OPTIONAL +); + +typedef EFI_STATUS (EFIAPI *HII_UTILS_GET_GLYPH_WIDTH)( + IN CHAR16 Char, OUT UINT16 *Width +); + +typedef struct{ + HII_UTILS_LOAD_RESOURCES LoadResources; + HII_UTILS_LOAD_STRINGS LoadStrings; + HII_UTILS_PUBLISH_PACKAGES PublishPackages; + HII_UTILS_GET_BROWSER_DATA GetBrowserData; + HII_UTILS_SET_BROWSER_DATA SetBrowserData; + HII_UTILS_GET_STRING GetString; + HII_UTILS_SET_STRING SetString; + HII_UTILS_GET_GLYPH_WIDTH GetGlyphWidth; +}HII_UTILITIES_PROTOCOL; + +/****** DO NOT WRITE BELOW THIS LINE *******/ +#endif // #ifndef GUID_VARIABLE_DEFINITION +#ifdef __cplusplus +} +#endif +#endif +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2009, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** |