Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v2.6.18-rc3 59 lines 1.7 kB view raw
1#include <linux/device.h> 2 3struct parisc_device { 4 struct resource 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 int aux_irq; /* Some devices have a second IRQ */ 10 11 char hw_path; /* The module number on this bus */ 12 unsigned int num_addrs; /* some devices have additional address ranges. */ 13 unsigned long *addr; /* which will be stored here */ 14 15#ifdef __LP64__ 16 /* parms for pdc_pat_cell_module() call */ 17 unsigned long pcell_loc; /* Physical Cell location */ 18 unsigned long mod_index; /* PAT specific - Misc Module info */ 19 20 /* generic info returned from pdc_pat_cell_module() */ 21 unsigned long mod_info; /* PAT specific - Misc Module info */ 22 unsigned long pmod_loc; /* physical Module location */ 23#endif 24 u64 dma_mask; /* DMA mask for I/O */ 25 struct device dev; 26}; 27 28struct parisc_driver { 29 struct parisc_driver *next; 30 char *name; 31 const struct parisc_device_id *id_table; 32 int (*probe) (struct parisc_device *dev); /* New device discovered */ 33 int (*remove) (struct parisc_device *dev); 34 struct device_driver drv; 35}; 36 37 38#define to_parisc_device(d) container_of(d, struct parisc_device, dev) 39#define to_parisc_driver(d) container_of(d, struct parisc_driver, drv) 40#define parisc_parent(d) to_parisc_device(d->dev.parent) 41 42static inline char *parisc_pathname(struct parisc_device *d) 43{ 44 return d->dev.bus_id; 45} 46 47static inline void 48parisc_set_drvdata(struct parisc_device *d, void *p) 49{ 50 dev_set_drvdata(&d->dev, p); 51} 52 53static inline void * 54parisc_get_drvdata(struct parisc_device *d) 55{ 56 return dev_get_drvdata(&d->dev); 57} 58 59extern struct bus_type parisc_bus_type;