Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
gio_device.h
Go to the documentation of this file.
1 #include <linux/device.h>
3 
4 struct gio_device_id {
6 };
7 
8 struct gio_device {
9  struct device dev;
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 *);
29  int (*resume)(struct gio_device *);
30  void (*shutdown)(struct gio_device *);
31 
33 };
34 #define to_gio_driver(drv) container_of(drv, struct gio_driver, driver)
35 
36 extern const struct gio_device_id *gio_match_device(const struct gio_device_id *,
37  const struct gio_device *);
38 extern struct gio_device *gio_dev_get(struct gio_device *);
39 extern void gio_dev_put(struct gio_device *);
40 
41 extern int gio_device_register(struct gio_device *);
42 extern void gio_device_unregister(struct gio_device *);
43 extern void gio_release_dev(struct device *);
44 
45 static inline void gio_device_free(struct gio_device *dev)
46 {
47  gio_release_dev(&dev->dev);
48 }
49 
50 extern int gio_register_driver(struct gio_driver *);
51 extern void gio_unregister_driver(struct gio_driver *);
52 
53 #define gio_get_drvdata(_dev) drv_get_drvdata(&(_dev)->dev)
54 #define gio_set_drvdata(_dev, data) drv_set_drvdata(&(_dev)->dev, (data))
55 
56 extern void gio_set_master(struct gio_device *);