File: busdevice.h

package info (click to toggle)
kernel-image-2.4.18-hppa 62.3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 156,012 kB
  • ctags: 448,723
  • sloc: ansic: 2,586,445; asm: 145,047; makefile: 8,574; sh: 3,097; perl: 2,578; yacc: 1,177; tcl: 577; lex: 352; awk: 251; lisp: 218; sed: 72
file content (34 lines) | stat: -rw-r--r-- 888 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef BUSDEVICE_H
#define BUSDEVICE_H

#include <linux/types.h>
#include <linux/interrupt.h>
#include <asm/hardware.h>
#include <asm/gsc.h>

#define OFFSET_IRR 0x0000   /* Interrupt request register */
#define OFFSET_IMR 0x0004   /* Interrupt mask register */
#define OFFSET_IPR 0x0008   /* Interrupt pending register */
#define OFFSET_ICR 0x000C   /* Interrupt control register */
#define OFFSET_IAR 0x0010   /* Interrupt address register */


struct busdevice {
	struct parisc_device *gsc;
	unsigned long hpa;
	char *name;
	int version;
	int type;
	int parent_irq;
	int eim;
	struct irq_region *busdev_region;
};

/* short cut to keep the compiler happy */
#define BUSDEV_DEV(x)	((struct busdevice *) (x))

int gsc_common_irqsetup(struct parisc_device *parent, struct busdevice *busdev);

void busdev_barked(int busdev_irq, void *dev, struct pt_regs *regs);

#endif /* BUSDEVICE_H */