home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-parisc / parisc-device.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.7 KB  |  60 lines

  1. #include <linux/device.h>
  2.  
  3. struct 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.  
  28. struct 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.  
  42. static inline char *parisc_pathname(struct parisc_device *d)
  43. {
  44.     return d->dev.bus_id;
  45. }
  46.  
  47. static inline void
  48. parisc_set_drvdata(struct parisc_device *d, void *p)
  49. {
  50.     dev_set_drvdata(&d->dev, p);
  51. }
  52.  
  53. static inline void *
  54. parisc_get_drvdata(struct parisc_device *d)
  55. {
  56.     return dev_get_drvdata(&d->dev);
  57. }
  58.  
  59. extern struct bus_type parisc_bus_type;
  60.