switch_to_64.h 968 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (C) 2000, 2001 Paolo Alberelli
  3. * Copyright (C) 2003 Paul Mundt
  4. * Copyright (C) 2004 Richard Curnow
  5. *
  6. * This file is subject to the terms and conditions of the GNU General Public
  7. * License. See the file "COPYING" in the main directory of this archive
  8. * for more details.
  9. */
  10. #ifndef __ASM_SH_SWITCH_TO_64_H
  11. #define __ASM_SH_SWITCH_TO_64_H
  12. struct thread_struct;
  13. struct task_struct;
  14. /*
  15. * switch_to() should switch tasks to task nr n, first
  16. */
  17. struct task_struct *sh64_switch_to(struct task_struct *prev,
  18. struct thread_struct *prev_thread,
  19. struct task_struct *next,
  20. struct thread_struct *next_thread);
  21. #define switch_to(prev,next,last) \
  22. do { \
  23. if (last_task_used_math != next) { \
  24. struct pt_regs *regs = next->thread.uregs; \
  25. if (regs) regs->sr |= SR_FD; \
  26. } \
  27. last = sh64_switch_to(prev, &prev->thread, next, \
  28. &next->thread); \
  29. } while (0)
  30. #endif /* __ASM_SH_SWITCH_TO_64_H */