[bus,device] Allow for threaded PDO creation on a bus
authorShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Wed, 15 Dec 2010 15:20:52 +0000 (10:20 -0500)
committerShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Thu, 16 Dec 2010 02:15:31 +0000 (21:15 -0500)
commitd4253ead1bb27a37e3306219594f43a496c2c804
treeef75a27f549b067e2a70ae0a1f1f7853b5c24104
parentc754ec03051c9c31371018ea3d090d6f126b45eb
[bus,device] Allow for threaded PDO creation on a bus

bus__add_child() will add a PDO creation request to the
work item queue for a threaded bus, then wait for it to
complete.  We do this so that the PDO is created in the
bus' thread context.  For example, if the AoE driver were
to request a PDO, we want that PDO created by the WinVBlock
driver (the main bus' thread should be that context).

We add a completion signal pointer to work items, initialize
the signal upon adding a work item to a bus' queue, and
signal completion when a work item has been completed.
src/include/device.h
src/winvblock/bus/bus.c