| 1 |
|
| 2 | #include <linux/device.h>
|
| 3 |
|
| 4 | struct gio_device_id {
|
| 5 | __u8 id;
|
| 6 | };
|
| 7 |
|
| 8 | struct gio_device {
|
| 9 | struct device dev;
|
| 10 | struct resource resource;
|
| 11 | unsigned int irq;
|
| 12 | unsigned int slotno;
|
| 13 |
|
| 14 | const char *name;
|
| 15 | struct gio_device_id id;
|
| 16 | unsigned id32:1;
|
| 17 | unsigned gio64:1;
|
| 18 | };
|
| 19 | #define to_gio_device(d) container_of(d, struct gio_device, dev)
|
| 20 |
|
| 21 | struct gio_driver {
|
| 22 | const char *name;
|
| 23 | struct module *owner;
|
| 24 | const struct gio_device_id *id_table;
|
| 25 |
|
| 26 | int (*probe)(struct gio_device *, const struct gio_device_id *);
|
| 27 | void (*remove)(struct gio_device *);
|
| 28 | void (*shutdown)(struct gio_device *);
|
| 29 |
|
| 30 | struct device_driver driver;
|
| 31 | };
|
| 32 | #define to_gio_driver(drv) container_of(drv, struct gio_driver, driver)
|
| 33 |
|
| 34 | extern struct gio_device *gio_dev_get(struct gio_device *);
|
| 35 | extern void gio_dev_put(struct gio_device *);
|
| 36 |
|
| 37 | extern int gio_device_register(struct gio_device *);
|
| 38 | extern void gio_device_unregister(struct gio_device *);
|
| 39 |
|
| 40 | extern int gio_register_driver(struct gio_driver *);
|
| 41 | extern void gio_unregister_driver(struct gio_driver *);
|
| 42 |
|
| 43 | #define gio_get_drvdata(_dev) dev_get_drvdata(&(_dev)->dev)
|
| 44 | #define gio_set_drvdata(_dev, data) dev_set_drvdata(&(_dev)->dev, (data))
|
| 45 |
|
| 46 | extern void gio_set_master(struct gio_device *);
|