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