summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-11-26 01:54:49 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-11-26 01:54:49 +0000
commit3e99020dbf0a159e34b84e7ae9125f2e368d5390 (patch)
tree0eb6339318f7bf7da1b679b8009cf267b2234566 /EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h
parent68bb5ce77e51cf35791e46f2202e36da97e5e6be (diff)
downloadedk2-platforms-3e99020dbf0a159e34b84e7ae9125f2e368d5390.tar.xz
Sync all bug fixes between EDK1.04 and EDK1.06 into EdkCompatibilityPkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11094 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h')
-rw-r--r--EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h b/EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h
new file mode 100644
index 0000000000..7a5566a913
--- /dev/null
+++ b/EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h
@@ -0,0 +1,116 @@
+/*++
+
+Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+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:
+
+ MultiThread.h
+
+Abstract:
+
+ Defines and function prototypes for the ProcessDsc utility.
+
+--*/
+
+#ifndef _MULTI_THREAD_H_
+#define _MULTI_THREAD_H_
+
+typedef struct _COMPONENTS_ITEM COMPONENTS_ITEM;
+typedef struct _BUILD_ITEM BUILD_ITEM;
+typedef struct _SOURCE_FILE_ITEM SOURCE_FILE_ITEM;
+typedef struct _DEPENDENCY_ITEM DEPENDENCY_ITEM;
+
+//
+// Use this structure to keep track of module build items
+//
+typedef struct _BUILD_ITEM {
+ BUILD_ITEM *Next;
+ INT8 *BaseName;
+ INT8 *Processor;
+ INT8 *Makefile;
+ UINT32 Index;
+ UINT32 CompleteFlag;
+ SOURCE_FILE_ITEM *SourceFileList;
+ DEPENDENCY_ITEM *DependencyList;
+} BUILD_ITEM;
+
+//
+// Use this structure to keep track of module source files
+//
+typedef struct _SOURCE_FILE_ITEM {
+ SOURCE_FILE_ITEM *Next;
+ INT8 *FileName;
+} SOURCE_FILE_ITEM;
+
+//
+// Use this structure to keep track of module build dependencies
+//
+typedef struct _DEPENDENCY_ITEM {
+ DEPENDENCY_ITEM *Next;
+ BUILD_ITEM *Dependency;
+} DEPENDENCY_ITEM;
+
+//
+// Use this structure to keep track of [components] and [components.n] sections
+//
+typedef struct _COMPONENTS_ITEM {
+ COMPONENTS_ITEM *Next;
+ BUILD_ITEM *BuildList;
+} COMPONENTS_ITEM;
+
+//
+// Function prototypes
+//
+BUILD_ITEM *
+AddBuildItem (
+ BUILD_ITEM **BuildList,
+ INT8 *BaseName,
+ INT8 *Processor,
+ INT8 *Makefile
+ );
+
+
+SOURCE_FILE_ITEM *
+AddSourceFile (
+ BUILD_ITEM *BuildItem,
+ INT8 *FileName
+ );
+
+DEPENDENCY_ITEM *
+AddDependency (
+ BUILD_ITEM *BuildList,
+ BUILD_ITEM *BuildItem,
+ INT8 *BaseName,
+ INT8 AdjustIndex
+ );
+
+void
+FreeBuildList (
+ BUILD_ITEM *BuildList
+ );
+
+COMPONENTS_ITEM *
+AddComponentsItem (
+ COMPONENTS_ITEM **ComponentsList
+ );
+
+void
+FreeComponentsList (
+ COMPONENTS_ITEM *ComponentsList
+ );
+
+INT8
+StartMultiThreadBuild (
+ BUILD_ITEM **BuildList,
+ UINT32 ThreadNumber,
+ INT8 *BuildDir
+ );
+
+#endif // ifndef _MULTI_THREAD_H_