1 /* 2 * Copyright 2004-2009 Analog Devices Inc. 3 * Tony Kou (tonyko@lineo.ca) 4 * 5 * Licensed under the GPL-2 or later 6 */ 7 8 #ifndef _BLACKFIN_SWITCH_TO_H 9 #define _BLACKFIN_SWITCH_TO_H 10 11 #define prepare_to_switch() do { } while(0) 12 13 /* 14 * switch_to(n) should switch tasks to task ptr, first checking that 15 * ptr isn't the current task, in which case it does nothing. 16 */ 17 18 #include <asm/l1layout.h> 19 #include <asm/mem_map.h> 20 21 asmlinkage struct task_struct *resume(struct task_struct *prev, struct task_struct *next); 22 23 #ifndef CONFIG_SMP 24 #define switch_to(prev,next,last) \ 25 do { \ 26 memcpy (&task_thread_info(prev)->l1_task_info, L1_SCRATCH_TASK_INFO, \ 27 sizeof *L1_SCRATCH_TASK_INFO); \ 28 memcpy (L1_SCRATCH_TASK_INFO, &task_thread_info(next)->l1_task_info, \ 29 sizeof *L1_SCRATCH_TASK_INFO); \ 30 (last) = resume (prev, next); \ 31 } while (0) 32 #else 33 #define switch_to(prev, next, last) \ 34 do { \ 35 (last) = resume(prev, next); \ 36 } while (0) 37 #endif 38 39 #endif /* _BLACKFIN_SWITCH_TO_H */ 40
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.