These patches introduce minimalistic ipipe_base.h to be included by
every header out there in the kernel without any dependencies. That is
exploited here to move all *stall_root() related prototypes out off
irqflags.h, to following patches need ipipe_base.h as well.

BTW, I started removing fastcalls with __ipipe_restore_root - as far as
I understood it's pointless now with CONFIG_REGPARM being always on.

Jan
---
 include/linux/ipipe.h      |   15 +--------------
 include/linux/ipipe_base.h |   45 +++++++++++++++++++++++++++++++++++++++++++++
 kernel/ipipe/core.c        |    2 +-
 3 files changed, 47 insertions(+), 15 deletions(-)

Index: linux-2.6.20/include/linux/ipipe.h
===================================================================
--- linux-2.6.20.orig/include/linux/ipipe.h
+++ linux-2.6.20/include/linux/ipipe.h
@@ -27,6 +27,7 @@
 #include <linux/percpu.h>
 #include <linux/mutex.h>
 #include <linux/linkage.h>
+#include <linux/ipipe_base.h>
 #include <asm/ipipe.h>
 
 #ifdef CONFIG_IPIPE
@@ -276,10 +277,6 @@ do {                                               \
 
 DECLARE_PER_CPU(struct ipipe_domain *, ipipe_percpu_domain);
 
-extern struct ipipe_domain ipipe_root;
-
-#define ipipe_root_domain (&ipipe_root)
-
 extern unsigned __ipipe_printk_virq;
 
 extern unsigned long __ipipe_virtual_irq_map;
@@ -315,18 +312,8 @@ void __ipipe_remove_domain_proc(struct i
 
 void __ipipe_flush_printk(unsigned irq, void *cookie);
 
-void __ipipe_stall_root(void);
-
-void __ipipe_unstall_root(void);
-
-unsigned long __ipipe_test_root(void);
-
-unsigned long __ipipe_test_and_stall_root(void);
-
 void fastcall __ipipe_walk_pipeline(struct list_head *pos, int cpuid);
 
-void fastcall __ipipe_restore_root(unsigned long x);
-
 int fastcall __ipipe_schedule_irq(unsigned irq, struct list_head *head);
 
 int fastcall __ipipe_dispatch_event(unsigned event, void *data);
Index: linux-2.6.20/include/linux/ipipe_base.h
===================================================================
--- /dev/null
+++ linux-2.6.20/include/linux/ipipe_base.h
@@ -0,0 +1,45 @@
+/* -*- linux-c -*-
+ * include/linux/ipipe.h
+ *
+ * Copyright (C) 2002-2005 Philippe Gerum.
+ *               2007 Jan Kiszka.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __LINUX_IPIPE_BASE_H
+#define __LINUX_IPIPE_BASE_H
+
+#ifdef CONFIG_IPIPE
+
+extern struct ipipe_domain ipipe_root;
+
+#define ipipe_root_domain (&ipipe_root)
+
+
+void __ipipe_stall_root(void);
+
+void __ipipe_unstall_root(void);
+
+unsigned long __ipipe_test_root(void);
+
+unsigned long __ipipe_test_and_stall_root(void);
+
+void __ipipe_restore_root(unsigned long x);
+
+#endif /* CONFIG_IPIPE */
+
+#endif /* !__LINUX_IPIPE_BASE_H */
Index: linux-2.6.20/kernel/ipipe/core.c
===================================================================
--- linux-2.6.20.orig/kernel/ipipe/core.c
+++ linux-2.6.20/kernel/ipipe/core.c
@@ -198,7 +198,7 @@ unsigned long __ipipe_test_and_stall_roo
        return x;
 }
 
-void fastcall __ipipe_restore_root(unsigned long x)
+void __ipipe_restore_root(unsigned long x)
 {
        if (x)
                __ipipe_stall_root();
---
 include/asm-i386/irqflags.h |   11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

Index: linux-2.6.20/include/asm-i386/irqflags.h
===================================================================
--- linux-2.6.20.orig/include/asm-i386/irqflags.h
+++ linux-2.6.20/include/asm-i386/irqflags.h
@@ -15,18 +15,9 @@
 #else
 #ifndef __ASSEMBLY__
 
+#include <linux/ipipe_base.h>
 #include <linux/ipipe_trace.h>
 
-void __ipipe_stall_root(void);
-
-void __ipipe_unstall_root(void);
-
-unsigned long __ipipe_test_root(void);
-
-unsigned long __ipipe_test_and_stall_root(void);
-
-void fastcall __ipipe_restore_root(unsigned long flags);
-
 static inline unsigned long __raw_local_save_flags(void)
 {
        unsigned long flags;
---
 include/asm-x86_64/irqflags.h |   11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

Index: linux-2.6.20-x64/include/asm-x86_64/irqflags.h
===================================================================
--- linux-2.6.20-x64.orig/include/asm-x86_64/irqflags.h
+++ linux-2.6.20-x64/include/asm-x86_64/irqflags.h
@@ -15,18 +15,9 @@
  * Interrupt control:
  */
 
+#include <linux/ipipe_base.h>
 #include <linux/ipipe_trace.h>
 
-void __ipipe_stall_root(void);
-
-void __ipipe_unstall_root(void);
-
-unsigned long __ipipe_test_root(void);
-
-unsigned long __ipipe_test_and_stall_root(void);
-
-void fastcall __ipipe_restore_root(unsigned long flags);
-
 static inline unsigned long __raw_local_save_flags(void)
 {
        unsigned long flags;

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to