Re: Multiple virtual bus instances

From: Greg KH
Date: Thu Feb 08 2007 - 00:56:23 EST


On Wed, Feb 07, 2007 at 02:15:08PM -0800, Simon White wrote:
> Hi,
>
> I've been working through trying to create a virtual
> bus.

How does this differ from a "real" bus?

> I've successfuly made it work for a single instance but wanted to
> confirm how to create multiple instances of the virtual bus.

Why would you need that?

> I believe to do this you have only one instance of your new
> bus_type registered but register multiple instances of struct device
> for it. I just wanted to confirm that was correct.

That would create multiple devices on the same bus. Is that what you
need to do?

> Lastly how do you walk over all devices on a bus
> instance?

You usually do this in your bus-specific code somehow.

> I note bus_for_each_dev but that appears to take a bus_type rather
> than struct device instance, hence I assume it will return all devices
> from all instances.

No, it will walk the bus that you created. If you need multiple busses,
create multiple 'struct bus_type' structures.

> I know I could compare each device to see if it is on a certain bus
> instance but wondered if there was a better way?

I think you will find that it works the way it is described.

Might I ask what you are trying to do with these multiple busses?

Note that you can have multiple trees of devices, all with the same
bus_type, yet not joined together in any other way. Odds are, you
probably want to do that, right?

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/