From 2f529f9b558ca1c1bd74be7437a84e4711743404 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 01 Nov 2024 02:11:33 +0000 Subject: [PATCH] add xenomai --- kernel/arch/x86/include/asm/fpu/api.h | 25 +++++++++++++++++++------ 1 files changed, 19 insertions(+), 6 deletions(-) diff --git a/kernel/arch/x86/include/asm/fpu/api.h b/kernel/arch/x86/include/asm/fpu/api.h index 8b9bfaa..5ef1216 100644 --- a/kernel/arch/x86/include/asm/fpu/api.h +++ b/kernel/arch/x86/include/asm/fpu/api.h @@ -41,16 +41,25 @@ * fpu->state and set TIF_NEED_FPU_LOAD leaving CPU's FPU registers in * a random state. */ -static inline void fpregs_lock(void) +static inline unsigned long fpregs_lock(void) { - preempt_disable(); - local_bh_disable(); + if (IS_ENABLED(CONFIG_IRQ_PIPELINE)) { + return hard_preempt_disable(); + } else { + preempt_disable(); + local_bh_disable(); + return 0; + } } -static inline void fpregs_unlock(void) +static inline void fpregs_unlock(unsigned long flags) { - local_bh_enable(); - preempt_enable(); + if (IS_ENABLED(CONFIG_IRQ_PIPELINE)) { + hard_preempt_enable(flags); + } else { + local_bh_enable(); + preempt_enable(); + } } #ifdef CONFIG_X86_DEBUG_FPU @@ -64,6 +73,10 @@ */ extern void switch_fpu_return(void); +/* For Dovetail context switching. */ +void fpu__suspend_inband(void); +void fpu__resume_inband(void); + /* * Query the presence of one or more xfeatures. Works on any legacy CPU as well. * -- Gitblit v1.6.2