audk/EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/Common.h

124 lines
2.9 KiB
C

/*++
Copyright (c) 2004 - 2007, 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:
Common.h
Abstract:
Common include file for the ProcessDsc utility.
--*/
#ifndef _COMMON_H_
#define _COMMON_H_
typedef char INT8;
typedef unsigned int UINT32;
#include "EfiUtilityMsgs.h"
#define MAX_LINE_LEN 1024
#ifdef MAX_PATH
#undef MAX_PATH
#define MAX_PATH 1024
#endif
//
// Defines for how to expand symbols
//
#define EXPANDMODE_NO_UNDEFS 0x01
#define EXPANDMODE_NO_DESTDIR 0x02
#define EXPANDMODE_NO_SOURCEDIR 0x04
#define EXPANDMODE_RECURSIVE 0x08
//
// Defines for adding symbols
//
#define SYM_OVERWRITE 0x01 // overwrite existing assignments
#define SYM_GLOBAL 0x02 // global symbol (persistent)
#define SYM_LOCAL 0x04 // symbols at component level
#define SYM_FILE 0x08 // symbols at file level
#define SYM_FILEPATH 0x10 // symbol is a file path
#define SYM_FILENAME 0x20 // symbol is a file name
#define FV_DIR "FV_DIR" // symbol for base dir where FV files are
#define DSC_FILENAME "DSC_FILENAME"
//
// Smart file for better incremental build support.
// Only re-create .pkg .inf or .apr files when it's content is changed.
//
//
typedef struct _SMART_FILE {
char *FileName;
char *FileContent; // Previous file content
int FileLength; // Previous file string length
int FilePosition; // The offset from FileContent for next comparison
FILE *FilePtr; // New file pointer if the file need to be re-created
} SMART_FILE;
SMART_FILE *
SmartOpen (
char *FileName
);
int
SmartWrite (
SMART_FILE *SmartFile,
char *String
);
void
SmartClose (
SMART_FILE *SmartFile
);
INT8 *
GetSymbolValue (
INT8 *SymbolName
);
int
AddSymbol (
INT8 *Name,
INT8 *Value,
int Mode
);
int
ExpandSymbols (
INT8 *SourceLine,
INT8 *DestLine,
int LineLen,
int ExpandMode
);
void
Message (
UINT32 PrintMask,
INT8 *Fmt,
...
);
int
MakeFilePath (
INT8 *FileName
);
int
IsAbsolutePath (
INT8 *FileName
);
#endif // ifndef _COMMON_H_