BUS_READ_IVAR(9)

BUS_READ_IVAR9

Manipulate bus-specific device instance variables

Usage

#include <sys/param.h>

#include <sys/bus.h>

int

BUS_READ_IVAR(device_t dev, device_t child, int index, uintptr_t *result);

int

BUS_WRITE_IVAR(device_t dev, device_t child, int index, uintptr_t value);

Overview

These two methods manage a bus specific set of instance variables of a child device. The intention is that each different type of bus defines a set of appropriate instance variables (such as ports and irqs for ISA bus etc.)

This information could be given to the child device as a struct but that makes it hard for a bus to add or remove variables without forcing an edit and recompile for all drivers which may not be possible for vendor supplied binary drivers.

Return values

Zero is returned on success, otherwise an appropriate error is returned.

Releases

77 releases since FreeBSD 3.0-RELEASE; the text changed 40 times.

  1. 3.0–3.1
  2. 3.2
  3. 3.3–3.5.1
  4. 4.0–4.2
  5. 4.3
  6. 4.4
  7. 4.5–4.11
  8. 5.0–5.1
  9. 5.2–6.3
  10. 6.4
  11. 7.0
  12. 7.1
  13. 7.2
  14. 7.3
  15. 7.4
  16. 8.0
  17. 8.1
  18. 8.2
  19. 8.3
  20. 8.4
  21. 9.0
  22. 9.1
  23. 9.2
  24. 9.3
  25. 10.0
  26. 10.1
  27. 10.2
  28. 10.3
  29. 10.4
  30. 11.0
  31. 11.1
  32. 11.2
  33. 11.3
  34. 11.4
  35. 12.0
  36. 12.1
  37. 12.2
  38. 12.3
  39. 12.4
  40. 13.0–13.2
  41. 13.3–16.0

Authors

This manual page was written by Doug Rabson.

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