more changes on original files
[linux-2.4.git] / drivers / gsc / busdevice.h
1 #ifndef BUSDEVICE_H
2 #define BUSDEVICE_H
3
4 #include <linux/types.h>
5 #include <linux/interrupt.h>
6 #include <asm/hardware.h>
7 #include <asm/gsc.h>
8
9 #define OFFSET_IRR 0x0000   /* Interrupt request register */
10 #define OFFSET_IMR 0x0004   /* Interrupt mask register */
11 #define OFFSET_IPR 0x0008   /* Interrupt pending register */
12 #define OFFSET_ICR 0x000C   /* Interrupt control register */
13 #define OFFSET_IAR 0x0010   /* Interrupt address register */
14
15
16 struct busdevice {
17         struct parisc_device *gsc;
18         unsigned long hpa;
19         char *name;
20         int version;
21         int type;
22         int parent_irq;
23         int eim;
24         struct irq_region *busdev_region;
25 };
26
27 /* short cut to keep the compiler happy */
28 #define BUSDEV_DEV(x)   ((struct busdevice *) (x))
29
30 int gsc_common_irqsetup(struct parisc_device *parent, struct busdevice *busdev);
31
32 void busdev_barked(int busdev_irq, void *dev, struct pt_regs *regs);
33
34 #endif /* BUSDEVICE_H */