vserver 1.9.5.x5
[linux-2.6.git] / include / asm-parisc / parisc-device.h
1 #include <linux/device.h>
2
3 struct parisc_device {
4         unsigned long   hpa;            /* Hard Physical Address */
5         struct parisc_device_id id;
6         struct parisc_driver *driver;   /* Driver for this device */
7         char            name[80];       /* The hardware description */
8         int             irq;
9
10         char            hw_path;        /* The module number on this bus */
11         unsigned int    num_addrs;      /* some devices have additional address ranges. */
12         unsigned long   *addr;          /* which will be stored here */
13  
14 #ifdef __LP64__
15         /* parms for pdc_pat_cell_module() call */
16         unsigned long   pcell_loc;      /* Physical Cell location */
17         unsigned long   mod_index;      /* PAT specific - Misc Module info */
18
19         /* generic info returned from pdc_pat_cell_module() */
20         unsigned long   mod_info;       /* PAT specific - Misc Module info */
21         unsigned long   pmod_loc;       /* physical Module location */
22 #endif
23         u64             dma_mask;       /* DMA mask for I/O */
24         struct device   dev;
25 };
26
27 struct parisc_driver {
28         struct parisc_driver *next;
29         char *name; 
30         const struct parisc_device_id *id_table;
31         int (*probe) (struct parisc_device *dev); /* New device discovered */
32         int (*remove) (struct parisc_device *dev);
33         struct device_driver drv;
34 };
35
36
37 #define to_parisc_device(d)     container_of(d, struct parisc_device, dev)
38 #define to_parisc_driver(d)     container_of(d, struct parisc_driver, drv)
39 #define parisc_parent(d)        to_parisc_device(d->dev.parent)
40
41 static inline void
42 parisc_set_drvdata(struct parisc_device *d, void *p)
43 {
44         dev_set_drvdata(&d->dev, p);
45 }
46
47 static inline void *
48 parisc_get_drvdata(struct parisc_device *d)
49 {
50         return dev_get_drvdata(&d->dev);
51 }
52
53 extern struct bus_type parisc_bus_type;