diff options
Diffstat (limited to 'include/linux/device.h')
-rw-r--r-- | include/linux/device.h | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 4fd899bd2c0d..c0a126125325 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/pm.h> | 25 | #include <linux/pm.h> |
26 | #include <linux/atomic.h> | 26 | #include <linux/atomic.h> |
27 | #include <linux/ratelimit.h> | 27 | #include <linux/ratelimit.h> |
28 | #include <linux/uidgid.h> | ||
28 | #include <asm/device.h> | 29 | #include <asm/device.h> |
29 | 30 | ||
30 | struct device; | 31 | struct device; |
@@ -111,17 +112,11 @@ struct bus_type { | |||
111 | struct iommu_ops *iommu_ops; | 112 | struct iommu_ops *iommu_ops; |
112 | 113 | ||
113 | struct subsys_private *p; | 114 | struct subsys_private *p; |
115 | struct lock_class_key lock_key; | ||
114 | }; | 116 | }; |
115 | 117 | ||
116 | /* This is a #define to keep the compiler from merging different | 118 | extern int __must_check bus_register(struct bus_type *bus); |
117 | * instances of the __key variable */ | 119 | |
118 | #define bus_register(subsys) \ | ||
119 | ({ \ | ||
120 | static struct lock_class_key __key; \ | ||
121 | __bus_register(subsys, &__key); \ | ||
122 | }) | ||
123 | extern int __must_check __bus_register(struct bus_type *bus, | ||
124 | struct lock_class_key *key); | ||
125 | extern void bus_unregister(struct bus_type *bus); | 120 | extern void bus_unregister(struct bus_type *bus); |
126 | 121 | ||
127 | extern int __must_check bus_rescan_devices(struct bus_type *bus); | 122 | extern int __must_check bus_rescan_devices(struct bus_type *bus); |
@@ -302,6 +297,8 @@ void subsys_interface_unregister(struct subsys_interface *sif); | |||
302 | 297 | ||
303 | int subsys_system_register(struct bus_type *subsys, | 298 | int subsys_system_register(struct bus_type *subsys, |
304 | const struct attribute_group **groups); | 299 | const struct attribute_group **groups); |
300 | int subsys_virtual_register(struct bus_type *subsys, | ||
301 | const struct attribute_group **groups); | ||
305 | 302 | ||
306 | /** | 303 | /** |
307 | * struct class - device classes | 304 | * struct class - device classes |
@@ -471,7 +468,8 @@ struct device_type { | |||
471 | const char *name; | 468 | const char *name; |
472 | const struct attribute_group **groups; | 469 | const struct attribute_group **groups; |
473 | int (*uevent)(struct device *dev, struct kobj_uevent_env *env); | 470 | int (*uevent)(struct device *dev, struct kobj_uevent_env *env); |
474 | char *(*devnode)(struct device *dev, umode_t *mode); | 471 | char *(*devnode)(struct device *dev, umode_t *mode, |
472 | kuid_t *uid, kgid_t *gid); | ||
475 | void (*release)(struct device *dev); | 473 | void (*release)(struct device *dev); |
476 | 474 | ||
477 | const struct dev_pm_ops *pm; | 475 | const struct dev_pm_ops *pm; |
@@ -853,7 +851,8 @@ extern int device_rename(struct device *dev, const char *new_name); | |||
853 | extern int device_move(struct device *dev, struct device *new_parent, | 851 | extern int device_move(struct device *dev, struct device *new_parent, |
854 | enum dpm_order dpm_order); | 852 | enum dpm_order dpm_order); |
855 | extern const char *device_get_devnode(struct device *dev, | 853 | extern const char *device_get_devnode(struct device *dev, |
856 | umode_t *mode, const char **tmp); | 854 | umode_t *mode, kuid_t *uid, kgid_t *gid, |
855 | const char **tmp); | ||
857 | extern void *dev_get_drvdata(const struct device *dev); | 856 | extern void *dev_get_drvdata(const struct device *dev); |
858 | extern int dev_set_drvdata(struct device *dev, void *data); | 857 | extern int dev_set_drvdata(struct device *dev, void *data); |
859 | 858 | ||