27 static unsigned char cached_irq_mask[2] = { 0xfb, 0xff };
33 static void shark_disable_8259A_irq(
struct irq_data *
d)
38 cached_irq_mask[0] |=
mask;
39 outb(cached_irq_mask[1],0xA1);
41 mask = 1 << (d->
irq-8);
42 cached_irq_mask[1] |=
mask;
43 outb(cached_irq_mask[0],0x21);
47 static void shark_enable_8259A_irq(
struct irq_data *d)
51 mask = ~(1 << d->
irq);
52 cached_irq_mask[0] &=
mask;
53 outb(cached_irq_mask[0],0x21);
55 mask = ~(1 << (d->
irq-8));
56 cached_irq_mask[1] &=
mask;
57 outb(cached_irq_mask[1],0xA1);
61 static void shark_ack_8259A_irq(
struct irq_data *d){}
65 printk(
"Got interrupt %i!\n",irq);
73 .irq_ack = shark_ack_8259A_irq,
74 .irq_mask = shark_disable_8259A_irq,
75 .irq_unmask = shark_enable_8259A_irq,
82 for (irq = 0; irq <
NR_IRQS; irq++) {
99 outb(cached_irq_mask[1],0xA1);
100 outb(cached_irq_mask[0],0x21);
104 cascade.handler = bogus_int;
105 cascade.name =
"cascade";