|
NAMEDEVICE_IDENTIFY —
identify a device, register it
SYNOPSIS#include <sys/param.h>
#include <sys/bus.h>
void
DESCRIPTIONThe identify function for a device is only needed for devices on buses that cannot identify their children independently, e.g. the ISA bus. It is used to recognize the device (usually done by accessing non-ambiguous registers in the hardware) and to tell the kernel about it and thus creating a new device instance.BUS_ADD_CHILD(9)
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
Since the device tree and the device driver tree are disjoint, the
EXAMPLESThe following pseudo-code shows an example of a function that probes for a piece of hardware and registers it and its resource (an I/O port) with the kernel.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); } } SEE ALSOBUS_ADD_CHILD(9), bus_set_resource(9), device(9), device_add_child(9), DEVICE_ATTACH(9), DEVICE_DETACH(9), DEVICE_PROBE(9), DEVICE_SHUTDOWN(9)AUTHORSThis manual page was written by Alexander Langer <alex@FreeBSD.org>.
Visit the GSP FreeBSD Man Page Interface. |