34 lines
992 B
C
34 lines
992 B
C
|
/*
|
||
|
* Port on Texas Instruments TMS320C6x architecture
|
||
|
*
|
||
|
* Copyright (C) 2004, 2009, 2010, 2011 Texas Instruments Incorporated
|
||
|
* Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 as
|
||
|
* published by the Free Software Foundation.
|
||
|
*/
|
||
|
#ifndef _ASM_C6X_SWITCH_TO_H
|
||
|
#define _ASM_C6X_SWITCH_TO_H
|
||
|
|
||
|
#include <linux/linkage.h>
|
||
|
|
||
|
#define prepare_to_switch() do { } while (0)
|
||
|
|
||
|
struct task_struct;
|
||
|
struct thread_struct;
|
||
|
asmlinkage void *__switch_to(struct thread_struct *prev,
|
||
|
struct thread_struct *next,
|
||
|
struct task_struct *tsk);
|
||
|
|
||
|
#define switch_to(prev, next, last) \
|
||
|
do { \
|
||
|
current->thread.wchan = (u_long) __builtin_return_address(0); \
|
||
|
(last) = __switch_to(&(prev)->thread, \
|
||
|
&(next)->thread, (prev)); \
|
||
|
mb(); \
|
||
|
current->thread.wchan = 0; \
|
||
|
} while (0)
|
||
|
|
||
|
#endif /* _ASM_C6X_SWITCH_TO_H */
|