Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
switch_to.h
Go to the documentation of this file.
1 /*
2  * Port on Texas Instruments TMS320C6x architecture
3  *
4  * Copyright (C) 2004, 2009, 2010, 2011 Texas Instruments Incorporated
5  * Author: Aurelien Jacquiot ([email protected])
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;
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 */