Module: xenomai-head Branch: master Commit: 35b5239f70b2632efa189f5ef2b622add8dad234 URL: http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=35b5239f70b2632efa189f5ef2b622add8dad234
Author: Philippe Gerum <r...@xenomai.org> Date: Thu May 28 16:04:57 2009 +0200 Update Adeos/arm support --- ....patch => adeos-ipipe-2.6.27-arm-1.12-02.patch} | 42 ++++++++++++++++---- ....patch => adeos-ipipe-2.6.28-arm-1.12-02.patch} | 42 ++++++++++++++++---- 2 files changed, 68 insertions(+), 16 deletions(-) diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.27-arm-1.12-01.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.27-arm-1.12-02.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.27-arm-1.12-01.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.27-arm-1.12-02.patch index 49bf9a6..41e92fa 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.27-arm-1.12-01.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.27-arm-1.12-02.patch @@ -445,10 +445,10 @@ index 0000000..2a0c0e3 +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 0000000..89c352b +index 0000000..e8e76e1 --- /dev/null +++ b/arch/arm/include/asm/ipipe.h -@@ -0,0 +1,200 @@ +@@ -0,0 +1,226 @@ +/* -*- linux-c -*- + * arch/arm/include/asm/ipipe.h + * @@ -479,10 +479,10 @@ index 0000000..89c352b + +#include <linux/ipipe_percpu.h> + -+#define IPIPE_ARCH_STRING "1.12-01" ++#define IPIPE_ARCH_STRING "1.12-02" +#define IPIPE_MAJOR_NUMBER 1 +#define IPIPE_MINOR_NUMBER 12 -+#define IPIPE_PATCH_NUMBER 1 ++#define IPIPE_PATCH_NUMBER 2 + +#ifdef CONFIG_SMP +#error "I-pipe/arm: SMP not yet implemented" @@ -493,11 +493,37 @@ index 0000000..89c352b + +#define smp_processor_id_hw() ipipe_processor_id() + -+#define prepare_arch_switch(next) ipipe_schedule_notify(current, next) ++#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH + -+/* We would need to clear the SYNC flag for the root domain */ -+/* over the current processor in SMP mode. */ -+#define task_hijacked(p) !ipipe_root_domain_p ++#define prepare_arch_switch(next) \ ++ do { \ ++ local_irq_enable_hw(); \ ++ ipipe_schedule_notify(current, next); \ ++ } while(0) ++ ++#define task_hijacked(p) \ ++ ({ \ ++ int x = !ipipe_root_domain_p; \ ++ clear_bit(IPIPE_SYNC_FLAG, &ipipe_root_cpudom_var(status)); \ ++ x; \ ++ }) ++ ++#else /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ ++ ++#define prepare_arch_switch(next) \ ++ do { \ ++ ipipe_schedule_notify(current ,next); \ ++ local_irq_disable_hw(); \ ++ } while(0) ++ ++#define task_hijacked(p) \ ++ ({ \ ++ int x = !ipipe_root_domain_p; \ ++ __clear_bit(IPIPE_SYNC_FLAG, &ipipe_root_cpudom_var(status)); \ ++ if (!x) local_irq_enable_hw(); x; \ ++ }) ++ ++#endif /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ + +extern unsigned long arm_return_addr(int level); + diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-01.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-02.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-01.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-02.patch index 77e315f..1f8dc1b 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-01.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-02.patch @@ -445,10 +445,10 @@ index 0000000..2a0c0e3 +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 0000000..89c352b +index 0000000..e8e76e1 --- /dev/null +++ b/arch/arm/include/asm/ipipe.h -@@ -0,0 +1,200 @@ +@@ -0,0 +1,226 @@ +/* -*- linux-c -*- + * arch/arm/include/asm/ipipe.h + * @@ -479,10 +479,10 @@ index 0000000..89c352b + +#include <linux/ipipe_percpu.h> + -+#define IPIPE_ARCH_STRING "1.12-01" ++#define IPIPE_ARCH_STRING "1.12-02" +#define IPIPE_MAJOR_NUMBER 1 +#define IPIPE_MINOR_NUMBER 12 -+#define IPIPE_PATCH_NUMBER 1 ++#define IPIPE_PATCH_NUMBER 2 + +#ifdef CONFIG_SMP +#error "I-pipe/arm: SMP not yet implemented" @@ -493,11 +493,37 @@ index 0000000..89c352b + +#define smp_processor_id_hw() ipipe_processor_id() + -+#define prepare_arch_switch(next) ipipe_schedule_notify(current, next) ++#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH + -+/* We would need to clear the SYNC flag for the root domain */ -+/* over the current processor in SMP mode. */ -+#define task_hijacked(p) !ipipe_root_domain_p ++#define prepare_arch_switch(next) \ ++ do { \ ++ local_irq_enable_hw(); \ ++ ipipe_schedule_notify(current, next); \ ++ } while(0) ++ ++#define task_hijacked(p) \ ++ ({ \ ++ int x = !ipipe_root_domain_p; \ ++ clear_bit(IPIPE_SYNC_FLAG, &ipipe_root_cpudom_var(status)); \ ++ x; \ ++ }) ++ ++#else /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ ++ ++#define prepare_arch_switch(next) \ ++ do { \ ++ ipipe_schedule_notify(current ,next); \ ++ local_irq_disable_hw(); \ ++ } while(0) ++ ++#define task_hijacked(p) \ ++ ({ \ ++ int x = !ipipe_root_domain_p; \ ++ __clear_bit(IPIPE_SYNC_FLAG, &ipipe_root_cpudom_var(status)); \ ++ if (!x) local_irq_enable_hw(); x; \ ++ }) ++ ++#endif /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ + +extern unsigned long arm_return_addr(int level); + _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git