Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.11-rc6 73 lines 1.8 kB view raw
1#ifndef __ASM_SH_FPU_H 2#define __ASM_SH_FPU_H 3 4#ifndef __ASSEMBLY__ 5 6#include <asm/ptrace.h> 7 8struct task_struct; 9 10#ifdef CONFIG_SH_FPU 11static inline void release_fpu(struct pt_regs *regs) 12{ 13 regs->sr |= SR_FD; 14} 15 16static inline void grab_fpu(struct pt_regs *regs) 17{ 18 regs->sr &= ~SR_FD; 19} 20 21extern void save_fpu(struct task_struct *__tsk); 22extern void restore_fpu(struct task_struct *__tsk); 23extern void fpu_state_restore(struct pt_regs *regs); 24extern void __fpu_state_restore(void); 25#else 26#define save_fpu(tsk) do { } while (0) 27#define restore_fpu(tsk) do { } while (0) 28#define release_fpu(regs) do { } while (0) 29#define grab_fpu(regs) do { } while (0) 30#define fpu_state_restore(regs) do { } while (0) 31#define __fpu_state_restore(regs) do { } while (0) 32#endif 33 34struct user_regset; 35 36extern int do_fpu_inst(unsigned short, struct pt_regs *); 37extern int init_fpu(struct task_struct *); 38 39extern int fpregs_get(struct task_struct *target, 40 const struct user_regset *regset, 41 unsigned int pos, unsigned int count, 42 void *kbuf, void __user *ubuf); 43 44static inline void __unlazy_fpu(struct task_struct *tsk, struct pt_regs *regs) 45{ 46 if (task_thread_info(tsk)->status & TS_USEDFPU) { 47 task_thread_info(tsk)->status &= ~TS_USEDFPU; 48 save_fpu(tsk); 49 release_fpu(regs); 50 } else 51 tsk->thread.fpu_counter = 0; 52} 53 54static inline void unlazy_fpu(struct task_struct *tsk, struct pt_regs *regs) 55{ 56 preempt_disable(); 57 __unlazy_fpu(tsk, regs); 58 preempt_enable(); 59} 60 61static inline void clear_fpu(struct task_struct *tsk, struct pt_regs *regs) 62{ 63 preempt_disable(); 64 if (task_thread_info(tsk)->status & TS_USEDFPU) { 65 task_thread_info(tsk)->status &= ~TS_USEDFPU; 66 release_fpu(regs); 67 } 68 preempt_enable(); 69} 70 71#endif /* __ASSEMBLY__ */ 72 73#endif /* __ASM_SH_FPU_H */