summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h
diff options
context:
space:
mode:
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_