patch-2.1.34 linux/include/asm-sparc64/irq.h

Next file: linux/include/asm-sparc64/kdebug.h
Previous file: linux/include/asm-sparc64/ipc.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.33/linux/include/asm-sparc64/irq.h linux/include/asm-sparc64/irq.h
@@ -1,11 +1,9 @@
-/* $Id: irq.h,v 1.1 1996/12/26 17:28:13 davem Exp $
+/* $Id: irq.h,v 1.4 1997/04/04 00:50:20 davem Exp $
  * irq.h: IRQ registers on the 64-bit Sparc.
  *
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
  */
 
-/* XXX Write the sun5 specific code... XXX */
-
 #ifndef _SPARC64_IRQ_H
 #define _SPARC64_IRQ_H
 
@@ -15,27 +13,41 @@
 
 #define NR_IRQS    15
 
-/* Dave Redman (djhr@tadpole.co.uk)
- * changed these to function pointers.. it saves cycles and will allow
- * the irq dependencies to be split into different files at a later date
- * sun4c_irq.c, sun4m_irq.c etc so we could reduce the kernel size.
- */
-extern void (*disable_irq)(unsigned int);
-extern void (*enable_irq)(unsigned int);
-extern void (*clear_clock_irq)( void );
-extern void (*clear_profile_irq)( void );
-extern void (*load_profile_irq)( unsigned int timeout );
-extern void (*init_timers)(void (*lvl10_irq)(int, void *, struct pt_regs *));
-extern void claim_ticker14(void (*irq_handler)(int, void *, struct pt_regs *),
-			   int irq,
-			   unsigned int timeout);
+extern void disable_irq(unsigned int);
+extern void enable_irq(unsigned int);
+extern void init_timers(void (*lvl10_irq)(int, void *, struct pt_regs *));
 
 #ifdef __SMP__
-extern void (*set_cpu_int)(int, int);
-extern void (*clear_cpu_int)(int, int);
-extern void (*set_irq_udt)(int);
+extern void set_cpu_int(int, int);
+extern void clear_cpu_int(int, int);
+extern void set_irq_udt(int);
 #endif
 
-extern int request_fast_irq(unsigned int irq, void (*handler)(int, void *, struct pt_regs *), unsigned long flags, __const__ char *devname);
+extern int request_fast_irq(unsigned int irq,
+			    void (*handler)(int, void *, struct pt_regs *),
+			    unsigned long flags, __const__ char *devname);
+
+extern __inline__ void set_softint(unsigned long bits)
+{
+	__asm__ __volatile__("wr	%0, 0x0, %%set_softint"
+			     : /* No outputs */
+			     : "r" (bits));
+}
+
+extern __inline__ void clear_softint(unsigned long bits)
+{
+	__asm__ __volatile__("wr	%0, 0x0, %%clear_softint"
+			     : /* No outputs */
+			     : "r" (bits));
+}
+
+extern __inline__ unsigned long get_softint(void)
+{
+	unsigned long retval;
+
+	__asm__ __volatile__("rd	%%softint, %0"
+			     : "=r" (retval));
+	return retval;
+}
 
 #endif

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov