git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5802 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			170 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  The EFI_FORM_BROWSER_PROTOCOL is the interface to the EFI
 | 
						|
  Configuration Driver.  This will allow the caller to direct the
 | 
						|
  configuration driver to use either the HII database or use the passed
 | 
						|
  in packet of data.  This will also allow the caller to post messages
 | 
						|
  into the configuration drivers internal mailbox.
 | 
						|
 | 
						|
  Copyright (c) 2006, 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:  FrameworkFormBrowser.h
 | 
						|
 | 
						|
  @par Revision Reference:
 | 
						|
  This protocol is defined in HII spec 0.92.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __FRAMEWORK_FORM_BROWSER_H__
 | 
						|
#define __FRAMEWORK_FORM_BROWSER_H__
 | 
						|
 | 
						|
#include <Protocol/FrameworkHii.h>
 | 
						|
 | 
						|
 | 
						|
#define EFI_FORM_BROWSER_PROTOCOL_GUID \
 | 
						|
  { \
 | 
						|
    0xe5a1333e, 0xe1b4, 0x4d55, {0xce, 0xeb, 0x35, 0xc3, 0xef, 0x13, 0x34, 0x43 } \
 | 
						|
  }
 | 
						|
 | 
						|
#define EFI_FORM_BROWSER_COMPATIBILITY_PROTOCOL_GUID \
 | 
						|
  { \
 | 
						|
    0xe5a1333e, 0xe1b4, 0x4d55, {0xce, 0xeb, 0x35, 0xc3, 0xef, 0x13, 0x34, 0x43 } \
 | 
						|
  }
 | 
						|
 | 
						|
typedef struct _EFI_FORM_BROWSER_PROTOCOL EFI_FORM_BROWSER_PROTOCOL;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINT32  Length;
 | 
						|
  UINT16  Type;
 | 
						|
  UINT8   Data[1];
 | 
						|
} EFI_HII_PACKET;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_HII_IFR_PACK    *IfrData;
 | 
						|
  EFI_HII_STRING_PACK *StringData;
 | 
						|
} FRAMEWORK_EFI_IFR_PACKET;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINTN LeftColumn;
 | 
						|
  UINTN RightColumn;
 | 
						|
  UINTN TopRow;
 | 
						|
  UINTN BottomRow;
 | 
						|
} FRAMEWORK_EFI_SCREEN_DESCRIPTOR;
 | 
						|
 | 
						|
/**
 | 
						|
  Provides direction to the configuration driver whether to use the HII
 | 
						|
  database or a passed-in set of data. This function also establishes a
 | 
						|
  pointer to the calling driver's callback interface.
 | 
						|
 | 
						|
  @param  This                  A pointer to the EFI_FORM_BROWSER_PROTOCOL instance.
 | 
						|
  @param  UseDatabase           Determines whether the HII database is to be
 | 
						|
                                used to gather information. If the value is FALSE, the configuration
 | 
						|
                                driver will get the information provided in the passed-in Packet parameters.
 | 
						|
  @param  Handle                A pointer to an array of HII handles to display. This value
 | 
						|
                                should correspond to the value of the HII form package that is required to
 | 
						|
                                be displayed.
 | 
						|
  @param  HandleCount           The number of handles in the array specified by Handle.
 | 
						|
  @param  Packet                A pointer to a set of data containing pointers to IFR
 | 
						|
                                and/or string data.
 | 
						|
  @param  CallbackHandle        The handle to the driver's callback interface.
 | 
						|
                                This parameter is used only when the UseDatabase parameter is FALSE
 | 
						|
                                and an application wants to register a callback with the browser
 | 
						|
  @param  NvMapOverride         This buffer is used only when there is no NV variable
 | 
						|
                                to define the current settings and the caller needs to provide to the browser
 | 
						|
                                the current settings for the "fake" NV variable.
 | 
						|
  @param  ScreenDimensions      Allows the browser to be called so that it occupies
 | 
						|
                                a portion of the physical screen instead of dynamically determining the
 | 
						|
                                screen dimensions.
 | 
						|
  @param  ResetRequired         This BOOLEAN value will tell the caller if a reset
 | 
						|
                                is required based on the data that might have been changed. The ResetRequired
 | 
						|
                                parameter is primarily applicable for configuration applications, and is an
 | 
						|
                                optional parameter.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The function completed successfully
 | 
						|
  @retval EFI_NOT_FOUND         The variable was not found.
 | 
						|
  @retval EFI_BUFFER_TOO_SMALL  The DataSize is too small for the result.
 | 
						|
                                DataSize has been updated with the size needed to complete the request.
 | 
						|
  @retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.
 | 
						|
  @retval EFI_DEVICE_ERROR      The variable could not be saved due to a hardware failure.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_SEND_FORM)(
 | 
						|
  IN  EFI_FORM_BROWSER_PROTOCOL       *This,
 | 
						|
  IN  BOOLEAN                         UseDatabase,
 | 
						|
  IN  FRAMEWORK_EFI_HII_HANDLE        *Handle,
 | 
						|
  IN  UINTN                           HandleCount,
 | 
						|
  IN  FRAMEWORK_EFI_IFR_PACKET                  *Packet, OPTIONAL
 | 
						|
  IN  EFI_HANDLE                      CallbackHandle, OPTIONAL
 | 
						|
  IN  UINT8                           *NvMapOverride, OPTIONAL
 | 
						|
  IN  FRAMEWORK_EFI_SCREEN_DESCRIPTOR            *ScreenDimensions, OPTIONAL
 | 
						|
  OUT BOOLEAN                         *ResetRequired OPTIONAL
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Routine used to abstract a generic dialog interface and return the selected
 | 
						|
  key or string.
 | 
						|
 | 
						|
  @param  NumberOfLines         The number of lines for the dialog box.
 | 
						|
  @param  HotKey                Defines whether a single character is parsed (TRUE)
 | 
						|
                                and returned in KeyValue or if a string is returned in StringBuffer.
 | 
						|
  @param  MaximumStringSize     The maximum size in bytes of a typed-in string.
 | 
						|
                                Because each character is a CHAR16, the minimum string returned is two bytes.
 | 
						|
  @param  StringBuffer          The passed-in pointer to the buffer that will hold
 | 
						|
                                the typed in string if HotKey is FALSE.
 | 
						|
  @param  KeyValue              The EFI_INPUT_KEY value returned if HotKey is TRUE.
 | 
						|
  @param  String                The pointer to the first string in the list of strings
 | 
						|
                                that comprise the dialog box.
 | 
						|
  @param  ...                   A series of NumberOfLines text strings that will be used
 | 
						|
                                to construct the dialog box.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The dialog was displayed and user interaction was received.
 | 
						|
  @retval EFI_DEVICE_ERROR      The user typed in an ESC character to exit the routine.
 | 
						|
  @retval EFI_INVALID_PARAMETER One of the parameters was invalid
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_CREATE_POP_UP)(
 | 
						|
  IN  UINTN                           NumberOfLines,
 | 
						|
  IN  BOOLEAN                         HotKey,
 | 
						|
  IN  UINTN                           MaximumStringSize,
 | 
						|
  OUT CHAR16                          *StringBuffer,
 | 
						|
  OUT EFI_INPUT_KEY                   *KeyValue,
 | 
						|
  IN  CHAR16                          *String,
 | 
						|
  ...
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  @par Protocol Description:
 | 
						|
  The EFI_FORM_BROWSER_PROTOCOL is the interface to call for drivers to
 | 
						|
  leverage the EFI configuration driver interface.
 | 
						|
 | 
						|
  @param SendForm
 | 
						|
  Provides direction to the configuration driver whether to use the HII
 | 
						|
  database or to use a passed-in set of data. This functions also establishes
 | 
						|
  a pointer to the calling driver's callback interface.
 | 
						|
 | 
						|
  @param CreatePopUp
 | 
						|
  Routine used to abstract a generic dialog interface and return the
 | 
						|
  selected key or string.
 | 
						|
 | 
						|
**/
 | 
						|
struct _EFI_FORM_BROWSER_PROTOCOL {
 | 
						|
  EFI_SEND_FORM     SendForm;
 | 
						|
  EFI_CREATE_POP_UP CreatePopUp;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID gEfiFormBrowserProtocolGuid;
 | 
						|
extern EFI_GUID gEfiFormBrowserCompatibilityProtocolGuid;
 | 
						|
 | 
						|
 | 
						|
#endif
 |