| /*++ | |
| 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_ |