2dbf2311669f5cf48b7a79099c76b84579aa474f
[sfrench/cifs-2.6.git] / arch / sh / include / asm / switch_to_64.h
1 /* SPDX-License-Identifier: GPL-2.0
2  *
3  * Copyright (C) 2000, 2001  Paolo Alberelli
4  * Copyright (C) 2003  Paul Mundt
5  * Copyright (C) 2004  Richard Curnow
6  */
7 #ifndef __ASM_SH_SWITCH_TO_64_H
8 #define __ASM_SH_SWITCH_TO_64_H
9
10 struct thread_struct;
11 struct task_struct;
12
13 /*
14  *      switch_to() should switch tasks to task nr n, first
15  */
16 struct task_struct *sh64_switch_to(struct task_struct *prev,
17                                    struct thread_struct *prev_thread,
18                                    struct task_struct *next,
19                                    struct thread_struct *next_thread);
20
21 #define switch_to(prev,next,last)                               \
22 do {                                                            \
23         if (last_task_used_math != next) {                      \
24                 struct pt_regs *regs = next->thread.uregs;      \
25                 if (regs) regs->sr |= SR_FD;                    \
26         }                                                       \
27         last = sh64_switch_to(prev, &prev->thread, next,        \
28                               &next->thread);                   \
29 } while (0)
30
31
32 #endif /* __ASM_SH_SWITCH_TO_64_H */