DEVICE_IDENTIFY - identify a device, register it
BUS_ADD_CHILD9
is used to register the device as a child of the bus.
The device's resources (such as IRQ and I/O ports) are registered
with the kernel by calling
bus_set_resource ();
for each resource (refer to
bus_set_resource9
for more information).
Since the device tree and the device driver tree are disjoint, the
DEVICE_IDENTIFY ();
routine needs to take this into account.
If you load and unload your device driver that has the identify
routine, the child node has the potential for adding the same node
multiple times unless specific measure are taken to preclude that
possibility.
void foo_identify(driver_t *driver, device_t parent) { device_t child; retrieve_device_information; if (devices matches one of your supported devices && not already in device tree) { child = BUS_ADD_CHILD(parent, 0, "foo", -1); bus_set_resource(child, SYS_RES_IOPORT, 0, FOO_IOADDR, 1); } }
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |