Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v2.6.25-rc2 46 lines 968 B view raw
1#ifndef __ASM_SH_FPU_H 2#define __ASM_SH_FPU_H 3 4#define SR_FD 0x00008000 5 6#ifndef __ASSEMBLY__ 7#include <asm/ptrace.h> 8 9#ifdef CONFIG_SH_FPU 10static inline void release_fpu(struct pt_regs *regs) 11{ 12 regs->sr |= SR_FD; 13} 14 15static inline void grab_fpu(struct pt_regs *regs) 16{ 17 regs->sr &= ~SR_FD; 18} 19 20struct task_struct; 21 22extern void save_fpu(struct task_struct *__tsk, struct pt_regs *regs); 23#else 24#define release_fpu(regs) do { } while (0) 25#define grab_fpu(regs) do { } while (0) 26#define save_fpu(tsk, regs) do { } while (0) 27#endif 28 29extern int do_fpu_inst(unsigned short, struct pt_regs *); 30 31#define unlazy_fpu(tsk, regs) do { \ 32 if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \ 33 save_fpu(tsk, regs); \ 34 } \ 35} while (0) 36 37#define clear_fpu(tsk, regs) do { \ 38 if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \ 39 clear_tsk_thread_flag(tsk, TIF_USEDFPU); \ 40 release_fpu(regs); \ 41 } \ 42} while (0) 43 44#endif /* __ASSEMBLY__ */ 45 46#endif /* __ASM_SH_FPU_H */