git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11094 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			117 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
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_
 |