3 VfrCompiler internal defintions.
5 Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #ifndef _VFRCOMPILER_H_
17 #define _VFRCOMPILER_H_
19 #include "Common/UefiBaseTypes.h"
21 #include "VfrFormPkg.h"
22 #include "VfrUtilityLib.h"
25 #define PROGRAM_NAME "VfrCompile"
26 #define VFR_COMPILER_VERSION " 2.01 (UEFI 2.4) "
28 // This is how we invoke the C preprocessor on the VFR source file
29 // to resolve #defines, #includes, etc. To make C source files
30 // shareable between VFR and drivers, define VFRCOMPILE so that
31 // #ifdefs can be used in shared .h files.
33 #define PREPROCESSOR_COMMAND "cl "
34 #define PREPROCESSOR_OPTIONS "/nologo /E /TC /DVFRCOMPILE "
37 // Specify the filename extensions for the files we generate.
39 #define VFR_PREPROCESS_FILENAME_EXTENSION ".i"
40 #define VFR_PACKAGE_FILENAME_EXTENSION ".hpk"
41 #define VFR_RECORDLIST_FILENAME_EXTENSION ".lst"
45 CHAR8
*RecordListFile
;
46 CHAR8
*PkgOutputFileName
;
47 CHAR8
*COutputFileName
;
48 bool CreateRecordListFile
;
49 bool CreateIfrPkgFile
;
50 CHAR8
*OutputDirectory
;
51 CHAR8
*PreprocessorOutputFileName
;
52 CHAR8
*VfrBaseFileName
; // name of input VFR file with no path or extension
54 bool SkipCPreprocessor
;
55 CHAR8
*CPreprocessorOptions
;
56 BOOLEAN CompatibleMode
;
57 BOOLEAN HasOverrideClassGuid
;
58 EFI_GUID OverrideClassGuid
;
59 BOOLEAN WarningAsError
;
73 } COMPILER_RUN_STATUS
;
77 COMPILER_RUN_STATUS mRunStatus
;
79 CHAR8
*mPreProcessCmd
;
80 CHAR8
*mPreProcessOpt
;
82 VOID
OptionInitialization (IN INT32
, IN CHAR8
**);
83 VOID
AppendIncludePath (IN CHAR8
*);
84 VOID
AppendCPreprocessorOptions (IN CHAR8
*);
85 INT8
SetBaseFileName (VOID
);
86 INT8
SetPkgOutputFileName (VOID
);
87 INT8
SetCOutputFileName(VOID
);
88 INT8
SetPreprocessorOutputFileName (VOID
);
89 INT8
SetRecordListFileName (VOID
);
91 VOID
SET_RUN_STATUS (IN COMPILER_RUN_STATUS
);
92 BOOLEAN
IS_RUN_STATUS (IN COMPILER_RUN_STATUS
);
95 COMPILER_RUN_STATUS
RunStatus (VOID
) {
100 CVfrCompiler (IN INT32
, IN CHAR8
**);
106 VOID
PreProcess (VOID
);
108 VOID
AdjustBin (VOID
);
109 VOID
GenBinary (VOID
);
110 VOID
GenCFile (VOID
);
111 VOID
GenRecordListFile (VOID
);
112 VOID
DebugError (IN CHAR8
*, IN UINT32
, IN UINT32
, IN CONST CHAR8
*, IN CONST CHAR8
*, ...);