git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10432 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
Copyright (c) 2004, 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:  
 | 
						|
 | 
						|
  DscFile.h
 | 
						|
  
 | 
						|
Abstract:
 | 
						|
 | 
						|
  Defines and function prototypes for the ProcessDsc utility.
 | 
						|
  
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef _DSC_FILE_H_
 | 
						|
#define _DSC_FILE_H_
 | 
						|
 | 
						|
typedef struct _SECTION_LINE {
 | 
						|
  struct _SECTION_LINE  *Next;
 | 
						|
  char                  *Line;
 | 
						|
  char                  *FileName;
 | 
						|
  UINT32                LineNum;
 | 
						|
} SECTION_LINE;
 | 
						|
 | 
						|
//
 | 
						|
// Use this structure to keep track of parsed file names. Then
 | 
						|
// if we get a parse error we can figure out the file/line of
 | 
						|
// the error and print a useful message.
 | 
						|
//
 | 
						|
typedef struct _DSC_FILE_NAME {
 | 
						|
  struct _DSC_FILE_NAME *Next;
 | 
						|
  char                  *FileName;
 | 
						|
} DSC_FILE_NAME;
 | 
						|
 | 
						|
//
 | 
						|
// We create a list of section names when we pre-parse a description file.
 | 
						|
// Use this structure.
 | 
						|
//
 | 
						|
typedef struct _SECTION {
 | 
						|
  struct _SECTION *Next;
 | 
						|
  char            *Name;
 | 
						|
  SECTION_LINE    *FirstLine;
 | 
						|
} SECTION;
 | 
						|
 | 
						|
#define MAX_SAVES 4
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  SECTION_LINE  *SavedPosition[MAX_SAVES];
 | 
						|
  int           SavedPositionIndex;
 | 
						|
  SECTION       *Sections;
 | 
						|
  SECTION_LINE  *Lines;
 | 
						|
  SECTION       *LastSection;
 | 
						|
  SECTION_LINE  *LastLine;
 | 
						|
  SECTION_LINE  *CurrentLine;
 | 
						|
  DSC_FILE_NAME *FileName;
 | 
						|
  DSC_FILE_NAME *LastFileName;
 | 
						|
} DSC_FILE;
 | 
						|
 | 
						|
//
 | 
						|
// Function prototypes
 | 
						|
//
 | 
						|
int
 | 
						|
DSCFileSetFile (
 | 
						|
  DSC_FILE *DSC,
 | 
						|
  char     *FileName
 | 
						|
  );
 | 
						|
SECTION *
 | 
						|
DSCFileFindSection (
 | 
						|
  DSC_FILE *DSC,
 | 
						|
  char     *Name
 | 
						|
  );
 | 
						|
int
 | 
						|
DSCFileSavePosition (
 | 
						|
  DSC_FILE *DSC
 | 
						|
  );
 | 
						|
int
 | 
						|
DSCFileRestorePosition (
 | 
						|
  DSC_FILE *DSC
 | 
						|
  );
 | 
						|
char    *
 | 
						|
DSCFileGetLine (
 | 
						|
  DSC_FILE *DSC,
 | 
						|
  char     *Line,
 | 
						|
  int      LineLen
 | 
						|
  );
 | 
						|
int
 | 
						|
DSCFileInit (
 | 
						|
  DSC_FILE *DSC
 | 
						|
  );
 | 
						|
int
 | 
						|
DSCFileDestroy (
 | 
						|
  DSC_FILE *DSC
 | 
						|
  );
 | 
						|
 | 
						|
#endif // ifndef _DSC_FILE_H_
 |