diff options
Diffstat (limited to 'include/xen/xenbus.h')
| -rw-r--r-- | include/xen/xenbus.h | 31 | 
1 files changed, 9 insertions, 22 deletions
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h index b1b6676c1c4..e8c599b237c 100644 --- a/include/xen/xenbus.h +++ b/include/xen/xenbus.h @@ -85,8 +85,6 @@ struct xenbus_device_id  /* A xenbus driver. */  struct xenbus_driver { -	char *name; -	struct module *owner;  	const struct xenbus_device_id *ids;  	int (*probe)(struct xenbus_device *dev,  		     const struct xenbus_device_id *id); @@ -101,31 +99,20 @@ struct xenbus_driver {  	int (*is_ready)(struct xenbus_device *dev);  }; -static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv) -{ -	return container_of(drv, struct xenbus_driver, driver); +#define DEFINE_XENBUS_DRIVER(var, drvname, methods...)		\ +struct xenbus_driver var ## _driver = {				\ +	.driver.name = drvname + 0 ?: var ## _ids->devicetype,	\ +	.driver.owner = THIS_MODULE,				\ +	.ids = var ## _ids, ## methods				\  } -int __must_check __xenbus_register_frontend(struct xenbus_driver *drv, -					    struct module *owner, -					    const char *mod_name); - -static inline int __must_check -xenbus_register_frontend(struct xenbus_driver *drv) +static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv)  { -	WARN_ON(drv->owner != THIS_MODULE); -	return __xenbus_register_frontend(drv, THIS_MODULE, KBUILD_MODNAME); +	return container_of(drv, struct xenbus_driver, driver);  } -int __must_check __xenbus_register_backend(struct xenbus_driver *drv, -					   struct module *owner, -					   const char *mod_name); -static inline int __must_check -xenbus_register_backend(struct xenbus_driver *drv) -{ -	WARN_ON(drv->owner != THIS_MODULE); -	return __xenbus_register_backend(drv, THIS_MODULE, KBUILD_MODNAME); -} +int __must_check xenbus_register_frontend(struct xenbus_driver *); +int __must_check xenbus_register_backend(struct xenbus_driver *);  void xenbus_unregister_driver(struct xenbus_driver *drv);  |