mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 02:40:26 +00:00 
			
		
		
		
	git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8526 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			173 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  This protocol is defined in UEFI spec.
 | 
						|
  
 | 
						|
  The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to 
 | 
						|
  leverage the EFI configuration driver interface.
 | 
						|
  
 | 
						|
  Copyright (c) 2006 - 2008, 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.             
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __EFI_FORM_BROWSER2_H__
 | 
						|
#define __EFI_FORM_BROWSER2_H__
 | 
						|
 | 
						|
#define EFI_FORM_BROWSER2_PROTOCOL_GUID \
 | 
						|
  {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58 }}
 | 
						|
 | 
						|
 | 
						|
typedef struct _EFI_FORM_BROWSER2_PROTOCOL   EFI_FORM_BROWSER2_PROTOCOL;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
   
 | 
						|
  @param LeftColumn   Value that designates the text column
 | 
						|
                      where the browser window will begin from
 | 
						|
                      the left-hand side of the screen
 | 
						|
                      
 | 
						|
  @param RightColumn  Value that designates the text
 | 
						|
                      column where the browser window will end
 | 
						|
                      on the right-hand side of the screen.
 | 
						|
 | 
						|
  @param TopRow       Value that designates the text row from the
 | 
						|
                      top of the screen where the browser window
 | 
						|
                      will start.
 | 
						|
 | 
						|
  @param BottomRow    Value that designates the text row from the
 | 
						|
                      bottom of the screen where the browser
 | 
						|
                      window will end. 
 | 
						|
**/
 | 
						|
typedef struct {
 | 
						|
  UINTN   LeftColumn;
 | 
						|
  UINTN   RightColumn;
 | 
						|
  UINTN   TopRow;
 | 
						|
  UINTN   BottomRow;
 | 
						|
} EFI_SCREEN_DESCRIPTOR;
 | 
						|
 | 
						|
typedef UINTN EFI_BROWSER_ACTION_REQUEST;
 | 
						|
 | 
						|
#define EFI_BROWSER_ACTION_REQUEST_NONE   0
 | 
						|
#define EFI_BROWSER_ACTION_REQUEST_RESET  1
 | 
						|
#define EFI_BROWSER_ACTION_REQUEST_SUBMIT 2
 | 
						|
#define EFI_BROWSER_ACTION_REQUEST_EXIT   3
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Initialize the browser to display the specified configuration forms.
 | 
						|
 | 
						|
  This function is the primary interface to the internal forms-based browser. 
 | 
						|
  The forms browser will display forms associated with the specified Handles. 
 | 
						|
  The browser will select all forms in packages which have the specified Type 
 | 
						|
  and (for EFI_HII_PACKAGE_TYPE_GUID) the specified PackageGuid.
 | 
						|
 | 
						|
  @param This            A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance
 | 
						|
 | 
						|
  @param Handles         A pointer to an array of Handles. This value should correspond 
 | 
						|
                         to the value of the HII form package that is required to be displayed.
 | 
						|
 | 
						|
  @param HandleCount     The number of Handles specified in Handle.
 | 
						|
 | 
						|
  @param FormSetGuid     This field points to the EFI_GUID which must match the Guid
 | 
						|
                         field in the EFI_IFR_FORM_SET op-code for the specified
 | 
						|
                         forms-based package. If FormSetGuid is NULL, then this
 | 
						|
                         function will display the first found forms package.
 | 
						|
 | 
						|
  @param FormId          This field specifies which EFI_IFR_FORM to render as the first
 | 
						|
                         displayable page. If this field has a value of 0x0000, then
 | 
						|
                         the forms browser will render the specified forms in their encoded order.
 | 
						|
 | 
						|
  @param ScreenDimensions Points to recommended form dimensions, including any non-content area, in 
 | 
						|
                          characters.
 | 
						|
 | 
						|
  @param ActionRequest   Points to the action recommended by the form.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The function completed successfully
 | 
						|
  
 | 
						|
  @retval EFI_NOT_FOUND         The variable was not found.
 | 
						|
  
 | 
						|
  @retval EFI_INVALID_PARAMETER One of the parameters has an
 | 
						|
                                invalid value.  
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_SEND_FORM2)(
 | 
						|
  IN CONST  EFI_FORM_BROWSER2_PROTOCOL  *This,
 | 
						|
  IN        EFI_HII_HANDLE              *Handle,
 | 
						|
  IN        UINTN                      HandleCount,
 | 
						|
  IN        EFI_GUID                   *FormSetGuid, OPTIONAL
 | 
						|
  IN        EFI_FORM_ID                FormId, OPTIONAL
 | 
						|
  IN CONST  EFI_SCREEN_DESCRIPTOR      *ScreenDimensions, OPTIONAL
 | 
						|
  OUT       EFI_BROWSER_ACTION_REQUEST *ActionRequest  OPTIONAL
 | 
						|
);
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  This function is called by a callback handler to retrieve uncommitted state data from the browser.
 | 
						|
 | 
						|
  This routine is called by a routine which was called by the
 | 
						|
  browser. This routine called this service in the browser to
 | 
						|
  retrieve or set certain uncommitted state information.
 | 
						|
 | 
						|
  @param This           A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance.
 | 
						|
 | 
						|
  @param ResultsDataSize  A pointer to the size of the buffer
 | 
						|
                          associated with ResultsData. On input, the size in
 | 
						|
                          bytes of ResultsData. On output, the size of data returned in ResultsData.
 | 
						|
 | 
						|
  @param ResultsData    A string returned from an IFR browser or
 | 
						|
                        equivalent. The results string will have
 | 
						|
                        no routing information in them.
 | 
						|
 | 
						|
  @param RetrieveData   A BOOLEAN field which allows an agent to
 | 
						|
                        retrieve (if RetrieveData = TRUE) data
 | 
						|
                        from the uncommitted browser state
 | 
						|
                        information or set (if RetrieveData =
 | 
						|
                        FALSE) data in the uncommitted browser
 | 
						|
                        state information.
 | 
						|
 | 
						|
  @param VariableGuid   An optional field to indicate the target
 | 
						|
                        variable GUID name to use.
 | 
						|
 | 
						|
  @param VariableName   An optional field to indicate the target
 | 
						|
                        human-readable variable name.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The results have been distributed or are
 | 
						|
                                awaiting distribution.
 | 
						|
  
 | 
						|
  @retval EFI_OUT_OF_RESOURCES  The ResultsDataSize specified
 | 
						|
                                was too small to contain the
 | 
						|
                                results data.
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_BROWSER_CALLBACK2)(
 | 
						|
  IN CONST  EFI_FORM_BROWSER2_PROTOCOL *This,
 | 
						|
  IN OUT    UINTN                     *ResultsDataSize,
 | 
						|
  IN OUT    EFI_STRING                ResultsData,
 | 
						|
  IN CONST  BOOLEAN                   RetrieveData,
 | 
						|
  IN CONST  EFI_GUID                  *VariableGuid, OPTIONAL
 | 
						|
  IN CONST  CHAR16                    *VariableName OPTIONAL
 | 
						|
);
 | 
						|
 | 
						|
///
 | 
						|
/// This interface will allow the caller to direct the configuration 
 | 
						|
/// driver to use either the HII database or use the passed-in packet of data.
 | 
						|
///
 | 
						|
struct _EFI_FORM_BROWSER2_PROTOCOL {
 | 
						|
  EFI_SEND_FORM2         SendForm;
 | 
						|
  EFI_BROWSER_CALLBACK2  BrowserCallback;
 | 
						|
} ;
 | 
						|
 | 
						|
extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
 | 
						|
 | 
						|
#endif
 | 
						|
 |