Linux Audio

Check our new training course

Loading...
v6.2
 1/*
 2 * Copyright (C) 2004 Microtronix Datacom Ltd.
 3 *
 4 * This file is subject to the terms and conditions of the GNU General Public
 5 * License. See the file "COPYING" in the main directory of this archive
 6 * for more details.
 7 */
 8#ifndef _ASM_NIOS2_SWITCH_TO_H
 9#define _ASM_NIOS2_SWITCH_TO_H
10
11/*
12 * switch_to(n) should switch tasks to task ptr, first checking that
13 * ptr isn't the current task, in which case it does nothing.  This
14 * also clears the TS-flag if the task we switched to has used the
15 * math co-processor latest.
16 */
17#define switch_to(prev, next, last)			\
18{							\
19	void *_last;					\
20	__asm__ __volatile__ (				\
21		"mov	r4, %1\n"			\
22		"mov	r5, %2\n"			\
23		"call	resume\n"			\
24		"mov	%0,r4\n"			\
25		: "=r" (_last)				\
26		: "r" (prev), "r" (next)		\
27		: "r4", "r5", "r7", "r8", "ra");	\
28	(last) = _last;					\
29}
30
31#endif /* _ASM_NIOS2_SWITCH_TO_H */
v4.6
 1/*
 2 * Copyright (C) 2004 Microtronix Datacom Ltd.
 3 *
 4 * This file is subject to the terms and conditions of the GNU General Public
 5 * License. See the file "COPYING" in the main directory of this archive
 6 * for more details.
 7 */
 8#ifndef _ASM_NIOS2_SWITCH_TO_H
 9#define _ASM_NIOS2_SWITCH_TO_H
10
11/*
12 * switch_to(n) should switch tasks to task ptr, first checking that
13 * ptr isn't the current task, in which case it does nothing.  This
14 * also clears the TS-flag if the task we switched to has used the
15 * math co-processor latest.
16 */
17#define switch_to(prev, next, last)			\
18{							\
19	void *_last;					\
20	__asm__ __volatile__ (				\
21		"mov	r4, %1\n"			\
22		"mov	r5, %2\n"			\
23		"call	resume\n"			\
24		"mov	%0,r4\n"			\
25		: "=r" (_last)				\
26		: "r" (prev), "r" (next)		\
27		: "r4", "r5", "r7", "r8", "ra");	\
28	(last) = _last;					\
29}
30
31#endif /* _ASM_NIOS2_SWITCH_TO_H */