+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- VfrCompiler.h\r
-\r
-Abstract:\r
-\r
---*/\r
-\r
-#ifndef _VFRCOMPILER_H_\r
-#define _VFRCOMPILER_H_\r
-\r
-#include "Tiano.h"\r
-#include "EfiTypes.h"\r
-#include "EfiVfr.h"\r
-#include "VfrFormPkg.h"\r
-#include "VfrUtilityLib.h"\r
-\r
-#define UTILITY_NAME "VfrCompile"\r
-#define UTILITY_VERSION "v1.1"\r
-\r
-//\r
-// This is how we invoke the C preprocessor on the VFR source file\r
-// to resolve #defines, #includes, etc. To make C source files\r
-// shareable between VFR and drivers, define VFRCOMPILE so that\r
-// #ifdefs can be used in shared .h files.\r
-//\r
-#define PREPROCESSOR_COMMAND "cl "\r
-#define PREPROCESSOR_OPTIONS "/nologo /E /TC /DVFRCOMPILE "\r
-\r
-//\r
-// Specify the filename extensions for the files we generate.\r
-//\r
-#define VFR_PREPROCESS_FILENAME_EXTENSION ".i"\r
-#define VFR_PACKAGE_FILENAME_EXTENSION ".hpk"\r
-#define VFR_RECORDLIST_FILENAME_EXTENSION ".lst"\r
-\r
-typedef struct {\r
- INT8 VfrFileName[MAX_PATH];\r
- INT8 RecordListFile[MAX_PATH];\r
- INT8 PkgOutputFileName[MAX_PATH];\r
- INT8 COutputFileName[MAX_PATH];\r
- bool CreateRecordListFile;\r
- bool CreateIfrPkgFile;\r
- INT8 OutputDirectory[MAX_PATH];\r
- INT8 PreprocessorOutputFileName[MAX_PATH];\r
- INT8 VfrBaseFileName[MAX_PATH]; // name of input VFR file with no path or extension\r
- INT8 *IncludePaths;\r
- bool SkipCPreprocessor;\r
- INT8 *CPreprocessorOptions;\r
-} OPTIONS;\r
-\r
-typedef enum {\r
- STATUS_INITIALIZED = 1,\r
- STATUS_PREPROCESSED,\r
- STATUS_COMPILEED,\r
- STATUS_GENBINARY,\r
- STATUS_FINISHED,\r
- STATUS_FAILED,\r
- STATUS_DEAD,\r
-} COMPILER_RUN_STATUS;\r
-\r
-class CVfrCompiler {\r
-private:\r
- COMPILER_RUN_STATUS mRunStatus;\r
- OPTIONS mOptions;\r
- INT8 *mPreProcessCmd;\r
- INT8 *mPreProcessOpt;\r
-\r
- VOID OptionInitialization (IN INT32 , IN INT8 **);\r
- VOID AppendIncludePath (IN INT8 *);\r
- VOID AppendCPreprocessorOptions (IN INT8 *);\r
- INT8 SetBaseFileName (VOID);\r
- INT8 SetPkgOutputFileName (VOID);\r
- INT8 SetCOutputFileName(VOID);\r
- INT8 SetPreprocessorOutputFileName (VOID);\r
- INT8 SetRecordListFileName (VOID);\r
-\r
- VOID SET_RUN_STATUS (IN COMPILER_RUN_STATUS);\r
- BOOLEAN IS_RUN_STATUS (IN COMPILER_RUN_STATUS);\r
-\r
-public:\r
- COMPILER_RUN_STATUS RunStatus (VOID) {\r
- return mRunStatus;\r
- }\r
-\r
-public:\r
- CVfrCompiler (IN INT32 , IN INT8 **);\r
- ~CVfrCompiler ();\r
-\r
- VOID Usage (VOID);\r
-\r
- VOID PreProcess (VOID);\r
- VOID Compile (VOID);\r
- VOID GenBinary (VOID);\r
- VOID GenCFile (VOID);\r
- VOID GenRecordListFile (VOID);\r
-};\r
-\r
-#endif\r