summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-03-12 11:30:05 -0700
committerTejun Heo <tj@kernel.org>2013-03-12 11:36:35 -0700
commitd73ce004225a7b2ed75f4340bb63721d55552265 (patch)
treefa4b2ab4f064412018589307b988567a713b6d96 /include/linux
parent6dbe51c251a327e012439c4772097a13df43c5b8 (diff)
downloadlinux-stable-d73ce004225a7b2ed75f4340bb63721d55552265.tar.gz
linux-stable-d73ce004225a7b2ed75f4340bb63721d55552265.tar.bz2
linux-stable-d73ce004225a7b2ed75f4340bb63721d55552265.zip
driver/base: implement subsys_virtual_register()
Kay tells me the most appropriate place to expose workqueues to userland would be /sys/devices/virtual/workqueues/WQ_NAME which is symlinked to /sys/bus/workqueue/devices/WQ_NAME and that we're lacking a way to do that outside of driver core as virtual_device_parent() isn't exported and there's no inteface to conveniently create a virtual subsystem. This patch implements subsys_virtual_register() by factoring out subsys_register() from subsys_system_register() and using it with virtual_device_parent() as the origin directory. It's identical to subsys_system_register() other than the origin directory but we aren't gonna restrict the device names which should be used under it. This will be used to expose workqueue attributes to userland. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Kay Sievers <kay.sievers@vrfy.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/device.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 9d6464ea99c6..ee10d4e7be1a 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -302,6 +302,8 @@ void subsys_interface_unregister(struct subsys_interface *sif);
int subsys_system_register(struct bus_type *subsys,
const struct attribute_group **groups);
+int subsys_virtual_register(struct bus_type *subsys,
+ const struct attribute_group **groups);
/**
* struct class - device classes