As the Newbus API is huge, this section makes some effort at documenting it. More information to come in the next revision of this document.
src/sys/[arch]/[arch]
- Kernel code
for a specific machine architecture resides in this directory.
For example, the i386
architecture, or the
SPARC64
architecture.
src/sys/dev/[bus]
- device support
for a specific [bus]
resides in this
directory.
src/sys/dev/pci
- PCI bus support
code resides in this directory.
src/sys/[isa|pci]
- PCI/ISA device
drivers reside in this directory. The PCI/ISA bus support
code used to exist in this directory in FreeBSD version
4.0
.
devclass_t
- This is a type definition
of a pointer to a struct devclass
.
device_method_t
- This is the same as
kobj_method_t
(see
src/sys/kobj.h
).
device_t
- This is a type definition of
a pointer to a struct device
.
device_t
represents a device in the system.
It is a kernel object. See
src/sys/sys/bus_private.h
for
implementation details.
driver_t
- This is a type definition
which references struct driver
. The
driver
struct is a class of the
device
kernel object; it also holds data
private to the driver.
struct driver { KOBJ_CLASS_FIELDS; void *priv; /* driver private data */ };
A device_state_t
type, which is
an enumeration, device_state
. It contains
the possible states of a Newbus device before and after the
autoconfiguration process.
/* * src/sys/sys/bus.h */ typedef enum device_state { DS_NOTPRESENT, /* not probed or probe failed */ DS_ALIVE, /* probe succeeded */ DS_ATTACHED, /* attach method called */ DS_BUSY /* device is open */ } device_state_t;
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.