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