| 
				
			 | 
			
			
				
				@@ -122,6 +122,18 @@ extern void process_add ( struct process *process ); 
			 | 
		
		
	
		
			
			| 
				122
			 | 
			
				122
			 | 
			
			
				
				 extern void process_del ( struct process *process ); 
			 | 
		
		
	
		
			
			| 
				123
			 | 
			
				123
			 | 
			
			
				
				 extern void step ( void ); 
			 | 
		
		
	
		
			
			| 
				124
			 | 
			
				124
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				125
			 | 
			
			
				
				+/** 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				126
			 | 
			
			
				
				+ * Initialise a static process 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				127
			 | 
			
			
				
				+ * 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				128
			 | 
			
			
				
				+ * @v process		Process 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				129
			 | 
			
			
				
				+ * @v desc		Process descriptor 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				130
			 | 
			
			
				
				+ */ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				131
			 | 
			
			
				
				+#define PROC_INIT( _process, _desc ) {					      \ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				132
			 | 
			
			
				
				+		.list = LIST_HEAD_INIT ( (_process).list ),		      \ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				133
			 | 
			
			
				
				+		.desc = (_desc),					      \ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				134
			 | 
			
			
				
				+		.refcnt = NULL,						      \ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				135
			 | 
			
			
				
				+	} 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				136
			 | 
			
			
				
				+ 
			 | 
		
		
	
		
			
			| 
				125
			 | 
			
				137
			 | 
			
			
				
				 /** 
			 | 
		
		
	
		
			
			| 
				126
			 | 
			
				138
			 | 
			
			
				
				  * Initialise process without adding to process list 
			 | 
		
		
	
		
			
			| 
				127
			 | 
			
				139
			 | 
			
			
				
				  * 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -180,11 +192,7 @@ process_running ( struct process *process ) { 
			 | 
		
		
	
		
			
			| 
				180
			 | 
			
				192
			 | 
			
			
				
				  */ 
			 | 
		
		
	
		
			
			| 
				181
			 | 
			
				193
			 | 
			
			
				
				 #define PERMANENT_PROCESS( name, step )					      \ 
			 | 
		
		
	
		
			
			| 
				182
			 | 
			
				194
			 | 
			
			
				
				 static struct process_descriptor name ## _desc = PROC_DESC_PURE ( step );     \ 
			 | 
		
		
	
		
			
			| 
				183
			 | 
			
				
			 | 
			
			
				
				-struct process name __permanent_process = {				      \ 
			 | 
		
		
	
		
			
			| 
				184
			 | 
			
				
			 | 
			
			
				
				-	.list = LIST_HEAD_INIT ( name.list ),				      \ 
			 | 
		
		
	
		
			
			| 
				185
			 | 
			
				
			 | 
			
			
				
				-	.desc = & name ## _desc,					      \ 
			 | 
		
		
	
		
			
			| 
				186
			 | 
			
				
			 | 
			
			
				
				-	.refcnt = NULL,							      \ 
			 | 
		
		
	
		
			
			| 
				187
			 | 
			
				
			 | 
			
			
				
				-}; 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				195
			 | 
			
			
				
				+struct process name __permanent_process = PROC_INIT ( name, & name ## _desc ); 
			 | 
		
		
	
		
			
			| 
				188
			 | 
			
				196
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				189
			 | 
			
				197
			 | 
			
			
				
				 /** 
			 | 
		
		
	
		
			
			| 
				190
			 | 
			
				198
			 | 
			
			
				
				  * Find debugging colourisation for a process 
			 |