This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
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>.