diff options
Diffstat (limited to 'arch/c6x/include/asm/switch_to.h')
-rw-r--r-- | arch/c6x/include/asm/switch_to.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/c6x/include/asm/switch_to.h b/arch/c6x/include/asm/switch_to.h new file mode 100644 index 000000000000..af6c71fe75ec --- /dev/null +++ b/arch/c6x/include/asm/switch_to.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Port on Texas Instruments TMS320C6x architecture | ||
3 | * | ||
4 | * Copyright (C) 2004, 2009, 2010, 2011 Texas Instruments Incorporated | ||
5 | * Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com) | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #ifndef _ASM_C6X_SWITCH_TO_H | ||
12 | #define _ASM_C6X_SWITCH_TO_H | ||
13 | |||
14 | #include <linux/linkage.h> | ||
15 | |||
16 | #define prepare_to_switch() do { } while (0) | ||
17 | |||
18 | struct task_struct; | ||
19 | struct thread_struct; | ||
20 | asmlinkage void *__switch_to(struct thread_struct *prev, | ||
21 | struct thread_struct *next, | ||
22 | struct task_struct *tsk); | ||
23 | |||
24 | #define switch_to(prev, next, last) \ | ||
25 | do { \ | ||
26 | current->thread.wchan = (u_long) __builtin_return_address(0); \ | ||
27 | (last) = __switch_to(&(prev)->thread, \ | ||
28 | &(next)->thread, (prev)); \ | ||
29 | mb(); \ | ||
30 | current->thread.wchan = 0; \ | ||
31 | } while (0) | ||
32 | |||
33 | #endif /* _ASM_C6X_SWITCH_TO_H */ | ||