10 #include <linux/ptrace.h>
11 #include <linux/errno.h>
13 #include <linux/signal.h>
14 #include <linux/sched.h>
17 #include <linux/bitops.h>
21 #include <linux/bitmap.h>
25 #define IMASK_PRIORITY 15
28 static int interrupt_priority;
30 static inline void set_interrupt_registers(
int ip)
32 unsigned long __dummy;
35 #ifdef CONFIG_CPU_HAS_SR_RB
41 "cmp/eq #0x3c, %0\n\t"
42 "bt/s 1f ! CLI-ed\n\t"
49 :
"r" (~0xf0),
"r" (ip << 4)
55 unsigned int irq = data->
irq;
60 set_interrupt_registers(interrupt_priority);
63 static void unmask_imask_irq(
struct irq_data *data)
65 unsigned int irq = data->
irq;
70 set_interrupt_registers(interrupt_priority);
73 static struct irq_chip imask_irq_chip = {
75 .irq_mask = mask_imask_irq,
76 .irq_unmask = unmask_imask_irq,
77 .irq_mask_ack = mask_imask_irq,