[SPARC32]: Add irqflags.h to sparc32 and use it from generic code.
[deliverable/linux.git] / include / asm-sparc / system.h
index cb7dda1e5e91fe93a853d60b382e74e723ae155a..8c259de02614be6ab1e8053f124b332a613a6456 100644 (file)
 #include <asm/psr.h>
 #include <asm/ptrace.h>
 #include <asm/btfixup.h>
+#include <asm/smp.h>
 
 #ifndef __ASSEMBLY__
 
+#include <linux/irqflags.h>
+
 /*
  * Sparc (general) CPU types
  */
@@ -163,43 +166,12 @@ extern void fpsave(unsigned long *fpregs, unsigned long *fsr,
          "o0", "o1", "o2", "o3",                   "o7");      \
        } while(0)
 
-/*
- * On SMP systems, when the scheduler does migration-cost autodetection,
- * it needs a way to flush as much of the CPU's caches as possible.
- *
- * TODO: fill this in!
- */
-static inline void sched_cacheflush(void)
-{
-}
-
-/*
- * Changing the IRQ level on the Sparc.
- */
-extern void local_irq_restore(unsigned long);
-extern unsigned long __local_irq_save(void);
-extern void local_irq_enable(void);
-
-static inline unsigned long getipl(void)
-{
-       unsigned long retval;
-
-       __asm__ __volatile__("rd        %%psr, %0" : "=r" (retval));
-       return retval;
-}
-
-#define local_save_flags(flags)        ((flags) = getipl())
-#define local_irq_save(flags)  ((flags) = __local_irq_save())
-#define local_irq_disable()    ((void) __local_irq_save())
-#define irqs_disabled()                ((getipl() & PSR_PIL) != 0)
-
 /* XXX Change this if we ever use a PSO mode kernel. */
 #define mb()   __asm__ __volatile__ ("" : : : "memory")
 #define rmb()  mb()
 #define wmb()  mb()
 #define read_barrier_depends() do { } while(0)
 #define set_mb(__var, __value)  do { __var = __value; mb(); } while(0)
-#define set_wmb(__var, __value) set_mb(__var, __value)
 #define smp_mb()       __asm__ __volatile__("":::"memory")
 #define smp_rmb()      __asm__ __volatile__("":::"memory")
 #define smp_wmb()      __asm__ __volatile__("":::"memory")
@@ -242,7 +214,6 @@ static inline unsigned long xchg_u32(__volatile__ unsigned long *m, unsigned lon
 }
 
 #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
-#define tas(ptr) (xchg((ptr),1))
 
 extern void __xchg_called_with_bad_pointer(void);
 
This page took 0.026567 seconds and 5 git commands to generate.