diff options
author | David Vrabel <david.vrabel@citrix.com> | 2014-09-08 12:30:41 -0400 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2014-10-06 05:27:57 -0400 |
commit | 95afae481414cbdb0567bf82d5e5077c3ac9da20 (patch) | |
tree | 653ae2fae22966dd2a634ac4865ead3c6937eee9 /include/xen | |
parent | 305559f16538708b603ceeb317ebaed9c4da9ce9 (diff) |
xen: remove DEFINE_XENBUS_DRIVER() macro
The DEFINE_XENBUS_DRIVER() macro looks a bit weird and causes sparse
errors.
Replace the uses with standard structure definitions instead. This is
similar to pci and usb device registration.
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'include/xen')
-rw-r--r-- | include/xen/xenbus.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h index 0324c6d340c1..b78f21caf55a 100644 --- a/include/xen/xenbus.h +++ b/include/xen/xenbus.h | |||
@@ -86,6 +86,7 @@ struct xenbus_device_id | |||
86 | 86 | ||
87 | /* A xenbus driver. */ | 87 | /* A xenbus driver. */ |
88 | struct xenbus_driver { | 88 | struct xenbus_driver { |
89 | const char *name; /* defaults to ids[0].devicetype */ | ||
89 | const struct xenbus_device_id *ids; | 90 | const struct xenbus_device_id *ids; |
90 | int (*probe)(struct xenbus_device *dev, | 91 | int (*probe)(struct xenbus_device *dev, |
91 | const struct xenbus_device_id *id); | 92 | const struct xenbus_device_id *id); |
@@ -100,20 +101,22 @@ struct xenbus_driver { | |||
100 | int (*is_ready)(struct xenbus_device *dev); | 101 | int (*is_ready)(struct xenbus_device *dev); |
101 | }; | 102 | }; |
102 | 103 | ||
103 | #define DEFINE_XENBUS_DRIVER(var, drvname, methods...) \ | ||
104 | struct xenbus_driver var ## _driver = { \ | ||
105 | .driver.name = drvname + 0 ?: var ## _ids->devicetype, \ | ||
106 | .driver.owner = THIS_MODULE, \ | ||
107 | .ids = var ## _ids, ## methods \ | ||
108 | } | ||
109 | |||
110 | static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv) | 104 | static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv) |
111 | { | 105 | { |
112 | return container_of(drv, struct xenbus_driver, driver); | 106 | return container_of(drv, struct xenbus_driver, driver); |
113 | } | 107 | } |
114 | 108 | ||
115 | int __must_check xenbus_register_frontend(struct xenbus_driver *); | 109 | int __must_check __xenbus_register_frontend(struct xenbus_driver *drv, |
116 | int __must_check xenbus_register_backend(struct xenbus_driver *); | 110 | struct module *owner, |
111 | const char *mod_name); | ||
112 | int __must_check __xenbus_register_backend(struct xenbus_driver *drv, | ||
113 | struct module *owner, | ||
114 | const char *mod_name); | ||
115 | |||
116 | #define xenbus_register_frontend(drv) \ | ||
117 | __xenbus_register_frontend(drv, THIS_MODULE, KBUILD_MODNAME); | ||
118 | #define xenbus_register_backend(drv) \ | ||
119 | __xenbus_register_backend(drv, THIS_MODULE, KBUILD_MODNAME); | ||
117 | 120 | ||
118 | void xenbus_unregister_driver(struct xenbus_driver *drv); | 121 | void xenbus_unregister_driver(struct xenbus_driver *drv); |
119 | 122 | ||