1 /* 2 * Copyright (C) 2000, 2001 Paolo Alberelli 3 * Copyright (C) 2003 Paul Mundt 4 * Copyright (C) 2004 Richard Curnow 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. 9 */ 10 #ifndef __ASM_SH_SWITCH_TO_64_H 11 #define __ASM_SH_SWITCH_TO_64_H 12 13 struct thread_struct; 14 struct task_struct; 15 16 /* 17 * switch_to() should switch tasks to task nr n, first 18 */ 19 struct task_struct *sh64_switch_to(struct task_struct *prev, 20 struct thread_struct *prev_thread, 21 struct task_struct *next, 22 struct thread_struct *next_thread); 23 24 #define switch_to(prev,next,last) \ 25 do { \ 26 if (last_task_used_math != next) { \ 27 struct pt_regs *regs = next->thread.uregs; \ 28 if (regs) regs->sr |= SR_FD; \ 29 } \ 30 last = sh64_switch_to(prev, &prev->thread, next, \ 31 &next->thread); \ 32 } while (0) 33 34 35 #endif /* __ASM_SH_SWITCH_TO_64_H */ 36