driver/base: implement subsys_virtual_register()
authorTejun Heo <tj@kernel.org>
Tue, 12 Mar 2013 18:30:05 +0000 (11:30 -0700)
committerTejun Heo <tj@kernel.org>
Tue, 12 Mar 2013 18:36:35 +0000 (11:36 -0700)
commitd73ce004225a7b2ed75f4340bb63721d55552265
treefa4b2ab4f064412018589307b988567a713b6d96
parent6dbe51c251a327e012439c4772097a13df43c5b8
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>
drivers/base/base.h
drivers/base/bus.c
drivers/base/core.c
include/linux/device.h