Can we hook a device as device to two different parent devices?

Andriy Gapon avg at FreeBSD.org
Wed Jun 3 14:29:31 UTC 2020


On 03/06/2020 14:20, Rajesh Kumar wrote:
> Hi,
> 
> Is it really possible to declare a module with two parents? Like the
> following declarations in the same driver.
> 
> devclass_t test_dev_devclass;
> static DEFINE_CLASS_0(test_dev, test_dev_driver, test_dev_methods,
> sizeof(struct test_dev_ctx));
> DRIVER_MODULE(test_dev, *device1*, test_dev_driver, test_dev_devclass,
> NULL, NULL);
> DRIVER_MODULE(test_dev, *device2*, test_dev_driver, test_dev_devclass,
> NULL, NULL);
> 
> I see similar references in other drivers attaching to both simpleus and
> ofwbus. So, If it's possible, how to get the reference for both the
> parents?  device_get_parent(test_dev) will give reference of one parent
> only right, so how to get the reference of the desired parent?

A device can have only one parent.
The declaration you quoted describes a _driver_ that can attach to devices
hanging off two different buses.  They would still be different devices.


-- 
Andriy Gapon


More information about the freebsd-drivers mailing list