36 lines
		
	
	
	
		
			592 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
	
		
			592 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef _ASSEMBLER_
 | ||
|  | 
 | ||
|  | struct cpulaunch { | ||
|  |     unsigned long	pc; | ||
|  |     unsigned long	gp; | ||
|  |     unsigned long	sp; | ||
|  |     unsigned long	a0; | ||
|  |     unsigned long	_pad[3]; /* pad to cache line size to avoid thrashing */ | ||
|  |     unsigned long	flags; | ||
|  | }; | ||
|  | 
 | ||
|  | #else
 | ||
|  | 
 | ||
|  | #define LOG2CPULAUNCH	5
 | ||
|  | #define	LAUNCH_PC	0
 | ||
|  | #define	LAUNCH_GP	4
 | ||
|  | #define	LAUNCH_SP	8
 | ||
|  | #define	LAUNCH_A0	12
 | ||
|  | #define	LAUNCH_FLAGS	28
 | ||
|  | 
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define LAUNCH_FREADY	1
 | ||
|  | #define LAUNCH_FGO	2
 | ||
|  | #define LAUNCH_FGONE	4
 | ||
|  | 
 | ||
|  | #define CPULAUNCH	0x00000f00
 | ||
|  | #define NCPULAUNCH	8
 | ||
|  | 
 | ||
|  | /* Polling period in count cycles for secondary CPU's */ | ||
|  | #define LAUNCHPERIOD	10000
 |