1*9f97da78SDavid Howells #ifndef __ASM_ARM_SWITCH_TO_H 2*9f97da78SDavid Howells #define __ASM_ARM_SWITCH_TO_H 3*9f97da78SDavid Howells 4*9f97da78SDavid Howells #include <linux/thread_info.h> 5*9f97da78SDavid Howells 6*9f97da78SDavid Howells /* 7*9f97da78SDavid Howells * switch_to(prev, next) should switch from task `prev' to `next' 8*9f97da78SDavid Howells * `prev' will never be the same as `next'. schedule() itself 9*9f97da78SDavid Howells * contains the memory barrier to tell GCC not to cache `current'. 10*9f97da78SDavid Howells */ 11*9f97da78SDavid Howells extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *); 12*9f97da78SDavid Howells 13*9f97da78SDavid Howells #define switch_to(prev,next,last) \ 14*9f97da78SDavid Howells do { \ 15*9f97da78SDavid Howells last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ 16*9f97da78SDavid Howells } while (0) 17*9f97da78SDavid Howells 18*9f97da78SDavid Howells #endif /* __ASM_ARM_SWITCH_TO_H */ 19