2007-06-28 09:00:39 +02:00
|
|
|
/*++
|
|
|
|
|
2010-04-28 13:21:53 +02:00
|
|
|
Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
|
|
|
|
This program and the accompanying materials
|
2007-06-28 09:00:39 +02:00
|
|
|
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
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2007-06-28 09:00:39 +02:00
|
|
|
SECTION *
|
|
|
|
DSCFileFindSection (
|
|
|
|
DSC_FILE *DSC,
|
|
|
|
char *Name
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2007-06-28 09:00:39 +02:00
|
|
|
int
|
|
|
|
DSCFileSavePosition (
|
|
|
|
DSC_FILE *DSC
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2007-06-28 09:00:39 +02:00
|
|
|
int
|
|
|
|
DSCFileRestorePosition (
|
|
|
|
DSC_FILE *DSC
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2007-06-28 09:00:39 +02:00
|
|
|
char *
|
|
|
|
DSCFileGetLine (
|
|
|
|
DSC_FILE *DSC,
|
|
|
|
char *Line,
|
|
|
|
int LineLen
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2007-06-28 09:00:39 +02:00
|
|
|
int
|
|
|
|
DSCFileInit (
|
|
|
|
DSC_FILE *DSC
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2007-06-28 09:00:39 +02:00
|
|
|
int
|
|
|
|
DSCFileDestroy (
|
|
|
|
DSC_FILE *DSC
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2007-06-28 09:00:39 +02:00
|
|
|
|
|
|
|
#endif // ifndef _DSC_FILE_H_
|