19 lines
		
	
	
	
		
			582 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			19 lines
		
	
	
	
		
			582 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef __ASM_ARM_SWITCH_TO_H
							 | 
						||
| 
								 | 
							
								#define __ASM_ARM_SWITCH_TO_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <linux/thread_info.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * switch_to(prev, next) should switch from task `prev' to `next'
							 | 
						||
| 
								 | 
							
								 * `prev' will never be the same as `next'.  schedule() itself
							 | 
						||
| 
								 | 
							
								 * contains the memory barrier to tell GCC not to cache `current'.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define switch_to(prev,next,last)					\
							 | 
						||
| 
								 | 
							
								do {									\
							 | 
						||
| 
								 | 
							
									last = __switch_to(prev,task_thread_info(prev), task_thread_info(next));	\
							 | 
						||
| 
								 | 
							
								} while (0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* __ASM_ARM_SWITCH_TO_H */
							 |