BUS_ADD_CHILD(9)

BUS_ADD_CHILD9

Add a device node to the tree with a given priority

Usage

#include <sys/param.h>

#include <sys/bus.h>

device_t

BUS_ADD_CHILD(device_t dev, int order, const char *name, int unit);

Overview

The BUS_ADD_CHILD() method is used by the driver identify routine to add devices to the tree. It can also be used to add children to buses that implement this routine in other contexts, although the behavior is bus specific. Please see device_add_child(9) for more details. The interface is the same as device_add_child(9) however, the bus' BUS_ADD_CHILD() is called.

Buses implementing BUS_ADD_CHILD() should insert the device into the tree using device_add_child(9) before adding things such as their own ivars and resource lists to the device. BUS_ADD_CHILD() is not called by device_add_child(9). BUS_ADD_CHILD() instead calls device_add_child(9).

A panic will result when called for a bus that does not implement BUS_ADD_CHILD(). Some buses require a special bus-specific routine to be called instead of BUS_ADD_CHILD().

Return values

The BUS_ADD_CHILD() method returns device_t added to the tree, or NULL to indicate failure.

Releases

52 releases since FreeBSD 5.3-RELEASE; the text changed 33 times.

  1. 5.3–5.5
  2. 6.0–6.3
  3. 6.4
  4. 7.0
  5. 7.1
  6. 7.2
  7. 7.3
  8. 7.4
  9. 8.0
  10. 8.1
  11. 8.2
  12. 8.3
  13. 8.4
  14. 9.0
  15. 9.1
  16. 9.2
  17. 9.3
  18. 10.0
  19. 10.1
  20. 10.2
  21. 10.3
  22. 10.4
  23. 11.0
  24. 11.1
  25. 11.2
  26. 11.3
  27. 11.4
  28. 12.0
  29. 12.1
  30. 12.2
  31. 12.3
  32. 12.4
  33. 13.0–13.2
  34. 13.3–16.0

Authors

This manual page was written by M. Warner Losh.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.