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/include/linux/entry-common.h | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/kernel/include/linux/entry-common.h b/kernel/include/linux/entry-common.h index 46c4247..3d7d78c 100644 --- a/kernel/include/linux/entry-common.h +++ b/kernel/include/linux/entry-common.h @@ -72,6 +72,14 @@ _TIF_NEED_RESCHED | _TIF_PATCH_PENDING | _TIF_NOTIFY_SIGNAL | \ ARCH_EXIT_TO_USER_MODE_WORK) +/* + * Status codes of syscall entry when Dovetail is enabled. Must not + * conflict with valid syscall numbers. And with -1 which seccomp uses + * to skip an syscall. + */ +#define EXIT_SYSCALL_OOB (-2) +#define EXIT_SYSCALL_TAIL (-3) + /** * arch_check_user_regs - Architecture specific sanity check for user mode regs * @regs: Pointer to currents pt_regs @@ -181,7 +189,7 @@ #ifndef local_irq_enable_exit_to_user static inline void local_irq_enable_exit_to_user(unsigned long ti_work) { - local_irq_enable(); + local_irq_enable_full(); } #endif @@ -196,7 +204,7 @@ #ifndef local_irq_disable_exit_to_user static inline void local_irq_disable_exit_to_user(void) { - local_irq_disable(); + local_irq_disable_full(); } #endif @@ -341,6 +349,12 @@ */ void irqentry_exit_to_user_mode(struct pt_regs *regs); +enum irqentry_info { + IRQENTRY_INBAND_UNSTALLED = 0, + IRQENTRY_INBAND_STALLED, + IRQENTRY_OOB, +}; + #ifndef irqentry_state /** * struct irqentry_state - Opaque object for exception state storage @@ -348,6 +362,7 @@ * exit path has to invoke rcu_irq_exit(). * @lockdep: Used exclusively in the irqentry_nmi_*() calls; ensures that * lockdep state is restored correctly on exit from nmi. + * @stage_info: Information about pipeline state and current stage on IRQ entry. * * This opaque object is filled in by the irqentry_*_enter() functions and * must be passed back into the corresponding irqentry_*_exit() functions @@ -362,6 +377,9 @@ bool exit_rcu; bool lockdep; }; +#ifdef CONFIG_IRQ_PIPELINE + enum irqentry_info stage_info; +#endif } irqentry_state_t; #endif -- Gitblit v1.6.2