git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11094 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			268 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			268 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
 | 
						|
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:
 | 
						|
 | 
						|
  IfrParse.h
 | 
						|
 | 
						|
Abstract:
 | 
						|
 | 
						|
  Prototypes and defines for the IFR parsing services.
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef _IFR_PARSE_H_
 | 
						|
#define _IFR_PARSE_H_
 | 
						|
 | 
						|
#define DEFAULT_HII_PACK_FILENAME_EXTENSION ".hpk"
 | 
						|
//
 | 
						|
// When we parse IFR, we'll keep the IFR in a linked list of
 | 
						|
// these.
 | 
						|
//
 | 
						|
typedef struct _IFR_PARSE_ENTRY {
 | 
						|
  struct _IFR_PARSE_ENTRY *Next;
 | 
						|
  int                     Tag;  // for debugging
 | 
						|
  EFI_IFR_OP_HEADER       *RawIfrHeader;
 | 
						|
  //
 | 
						|
  // GUIDs for variable storage
 | 
						|
  //
 | 
						|
  EFI_GUID                *VarStoreGuid1;
 | 
						|
  char                    *VarStoreName1;
 | 
						|
  EFI_GUID                *VarStoreGuid2;
 | 
						|
  char                    *VarStoreName2;
 | 
						|
} IFR_PARSE_ENTRY;
 | 
						|
 | 
						|
typedef struct _IFR_PARSE_CONTEXT {
 | 
						|
  struct _IFR_PARSE_CONTEXT *Next;
 | 
						|
  EFI_HII_IFR_PACK          *PackHeader;
 | 
						|
  char                      *IfrBufferStart;
 | 
						|
  char                      *CurrentPos;
 | 
						|
  long                      IfrBufferLen;
 | 
						|
  int                       Handle;
 | 
						|
  IFR_PARSE_ENTRY           *Ifr;
 | 
						|
  IFR_PARSE_ENTRY           *LastIfr;
 | 
						|
  IFR_PARSE_ENTRY           *CurrentIfr;
 | 
						|
  FILE                      *OutFptr;
 | 
						|
  CHAR16                    *Language;
 | 
						|
  EFI_GUID                  *FormsetGuid;
 | 
						|
  EFI_GUID                  NullGuid;     // for use until we set the Guid field correctly
 | 
						|
  EFI_GUID                  PackageGuid;  // from the PackageGuid in the HII data table
 | 
						|
} IFR_PARSE_CONTEXT;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrGetVarPack (
 | 
						|
  int                   VarIndex,
 | 
						|
  EFI_HII_VARIABLE_PACK **VarPack
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  VarIndex  - GC_TODO: add argument description
 | 
						|
  VarPack   - GC_TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrParsePack (
 | 
						|
  int              Handle,
 | 
						|
  EFI_HII_IFR_PACK *PackHeader,
 | 
						|
  EFI_GUID         *PackageGuid
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Handle      - GC_TODO: add argument description
 | 
						|
  PackHeader  - GC_TODO: add argument description
 | 
						|
  PackageGuid - GC_TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrParseCheck (
 | 
						|
  char *Buffer,
 | 
						|
  long BufferSize
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Buffer      - GC_TODO: add argument description
 | 
						|
  BufferSize  - GC_TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrParseInit (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  None
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrParseEnd (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  None
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrParseDump (
 | 
						|
  int    Handle,
 | 
						|
  CHAR16 *Language,
 | 
						|
  FILE   *OutFptr
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Handle    - GC_TODO: add argument description
 | 
						|
  Language  - GC_TODO: add argument description
 | 
						|
  OutFptr   - GC_TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrSetDefaults (
 | 
						|
  int MfgDefaults
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  MfgDefaults - GC_TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrGetIfrPack (
 | 
						|
  int              Handle,
 | 
						|
  EFI_HII_IFR_PACK **PackHeader,
 | 
						|
  EFI_GUID         *FormsetGuid
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  Handle      - GC_TODO: add argument description
 | 
						|
  PackHeader  - GC_TODO: add argument description
 | 
						|
  FormsetGuid - GC_TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
STATUS
 | 
						|
IfrReferencesVarPack (
 | 
						|
  int                   IfrHandle,
 | 
						|
  EFI_HII_VARIABLE_PACK *VarPack
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
 | 
						|
  GC_TODO: Add function description
 | 
						|
 | 
						|
Arguments:
 | 
						|
 | 
						|
  IfrHandle - GC_TODO: add argument description
 | 
						|
  VarPack   - GC_TODO: add argument description
 | 
						|
 | 
						|
Returns:
 | 
						|
 | 
						|
  GC_TODO: add return values
 | 
						|
 | 
						|
--*/
 | 
						|
;
 | 
						|
 | 
						|
#endif // #ifndef _IFR_PARSE_H_
 |