cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

switch_to.h (923B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2
      3#ifndef __ASM_CSKY_SWITCH_TO_H
      4#define __ASM_CSKY_SWITCH_TO_H
      5
      6#include <linux/thread_info.h>
      7#ifdef CONFIG_CPU_HAS_FPU
      8#include <abi/fpu.h>
      9static inline void __switch_to_fpu(struct task_struct *prev,
     10				   struct task_struct *next)
     11{
     12	save_to_user_fp(&prev->thread.user_fp);
     13	restore_from_user_fp(&next->thread.user_fp);
     14}
     15#else
     16static inline void __switch_to_fpu(struct task_struct *prev,
     17				   struct task_struct *next)
     18{}
     19#endif
     20
     21/*
     22 * Context switching is now performed out-of-line in switch_to.S
     23 */
     24extern struct task_struct *__switch_to(struct task_struct *,
     25				       struct task_struct *);
     26
     27#define switch_to(prev, next, last)					\
     28	do {								\
     29		struct task_struct *__prev = (prev);			\
     30		struct task_struct *__next = (next);			\
     31		__switch_to_fpu(__prev, __next);			\
     32		((last) = __switch_to((prev), (next)));			\
     33	} while (0)
     34
     35#endif /* __ASM_CSKY_SWITCH_TO_H */