From 3e99020dbf0a159e34b84e7ae9125f2e368d5390 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Fri, 26 Nov 2010 01:54:49 +0000 Subject: 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 --- .../Sample/Tools/Source/ProcessDsc/MultiThread.h | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h (limited to 'EdkCompatibilityPkg/Sample/Tools/Source/ProcessDsc/MultiThread.h') 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.
+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_ -- cgit v1.2.3