1 /* Generic task switch macro wrapper. 2 * 3 * It should be possible to use these on really simple architectures, 4 * but it serves more as a starting point for new ports. 5 * 6 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 7 * Written by David Howells (dhowells@redhat.com) 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public Licence 11 * as published by the Free Software Foundation; either version 12 * 2 of the Licence, or (at your option) any later version. 13 */ 14 #ifndef __ASM_GENERIC_SWITCH_TO_H 15 #define __ASM_GENERIC_SWITCH_TO_H 16 17 #include <linux/thread_info.h> 18 19 /* 20 * Context switching is now performed out-of-line in switch_to.S 21 */ 22 extern struct task_struct *__switch_to(struct task_struct *, 23 struct task_struct *); 24 25 #define switch_to(prev, next, last) \ 26 do { \ 27 ((last) = __switch_to((prev), (next))); \ 28 } while (0) 29 30 #endif /* __ASM_GENERIC_SWITCH_TO_H */ 31