more changes on original files
[linux-2.4.git] / include / asm-parisc / gsc.h
1 #ifndef ASM_PARISC_GSC_H
2 #define ASM_PARISC_GSC_H
3 #ifdef __KERNEL__
4
5 #include <linux/types.h>
6 #include <asm/io.h> /* temporary for __raw_{read,write} */
7
8 /* Please, call ioremap and use {read,write}[bwl] instead.  These functions
9  * are not very fast.
10  */
11 #define gsc_readb(x) __raw_readb((unsigned long)x)
12 #define gsc_readw(x) __raw_readw((unsigned long)x)
13 #define gsc_readl(x) __raw_readl((unsigned long)x)
14 #define gsc_writeb(x, y) __raw_writeb(x, (unsigned long)y)
15 #define gsc_writew(x, y) __raw_writew(x, (unsigned long)y)
16 #define gsc_writel(x, y) __raw_writel(x, (unsigned long)y)
17
18 struct gsc_irq {
19         unsigned long txn_addr; /* IRQ "target" */
20         int txn_data;           /* HW "IRQ" */
21         int irq;                /* virtual IRQ */
22 };
23
24 /* PA I/O Architected devices support at least 5 bits in the EIM register. */
25 #define GSC_EIM_WIDTH 5
26
27 extern int gsc_alloc_irq(struct gsc_irq *dev);  /* dev needs an irq */
28 extern int gsc_claim_irq(struct gsc_irq *dev, int irq); /* dev needs this irq */
29
30 extern void probe_serial_gsc(void);
31
32 #endif /* __KERNEL__ */
33 #endif /* LINUX_GSC_H */