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
- Lines: 73
- Date:
Fri Apr 11 10:47:39 1997
- Orig file:
v2.1.33/linux/include/asm-sparc64/irq.h
- Orig date:
Mon Dec 30 02:00:03 1996
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