]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/Common.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / ProcessDsc / Common.h
1 /*++
2
3 Copyright (c) 2004 - 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 Common.h
15
16 Abstract:
17
18 Common include file for the ProcessDsc utility.
19
20 --*/
21
22 #ifndef _COMMON_H_
23 #define _COMMON_H_
24
25 typedef char INT8;
26 typedef unsigned int UINT32;
27
28 #include "EfiUtilityMsgs.h"
29
30 #define MAX_LINE_LEN 1024
31
32 #ifdef MAX_PATH
33 #undef MAX_PATH
34 #define MAX_PATH 1024
35 #endif
36
37 //
38 // Defines for how to expand symbols
39 //
40 #define EXPANDMODE_NO_UNDEFS 0x01
41 #define EXPANDMODE_NO_DESTDIR 0x02
42 #define EXPANDMODE_NO_SOURCEDIR 0x04
43 #define EXPANDMODE_RECURSIVE 0x08
44
45 //
46 // Defines for adding symbols
47 //
48 #define SYM_OVERWRITE 0x01 // overwrite existing assignments
49 #define SYM_GLOBAL 0x02 // global symbol (persistent)
50 #define SYM_LOCAL 0x04 // symbols at component level
51 #define SYM_FILE 0x08 // symbols at file level
52 #define SYM_FILEPATH 0x10 // symbol is a file path
53 #define SYM_FILENAME 0x20 // symbol is a file name
54 #define FV_DIR "FV_DIR" // symbol for base dir where FV files are
55 #define DSC_FILENAME "DSC_FILENAME"
56
57 //
58 // Smart file for better incremental build support.
59 // Only re-create .pkg .inf or .apr files when it's content is changed.
60 //
61 //
62 typedef struct _SMART_FILE {
63 char *FileName;
64 char *FileContent; // Previous file content
65 int FileLength; // Previous file string length
66 int FilePosition; // The offset from FileContent for next comparison
67 FILE *FilePtr; // New file pointer if the file need to be re-created
68 } SMART_FILE;
69
70 SMART_FILE *
71 SmartOpen (
72 char *FileName
73 );
74
75 int
76 SmartWrite (
77 SMART_FILE *SmartFile,
78 char *String
79 );
80
81 void
82 SmartClose (
83 SMART_FILE *SmartFile
84 );
85
86 INT8 *
87 GetSymbolValue (
88 INT8 *SymbolName
89 );
90
91 int
92 AddSymbol (
93 INT8 *Name,
94 INT8 *Value,
95 int Mode
96 );
97
98 int
99 ExpandSymbols (
100 INT8 *SourceLine,
101 INT8 *DestLine,
102 int LineLen,
103 int ExpandMode
104 );
105
106 void
107 Message (
108 UINT32 PrintMask,
109 INT8 *Fmt,
110 ...
111 );
112
113 int
114 MakeFilePath (
115 INT8 *FileName
116 );
117
118 int
119 IsAbsolutePath (
120 INT8 *FileName
121 );
122
123 #endif // ifndef _COMMON_H_