INTRO(9S) Data Structures for Drivers INTRO(9S)

Intro, introintroduction to kernel data structures and properties

Section 9P describes kernel properties used by device drivers. Section 9S describes the data structures used by drivers to share information between the driver and the kernel. See Intro(9E) for an overview of device driver interfaces.

In Section 9S, reference pages contain the following headings:

Of the preceding headings, Section 9P reference pages contain the NAME, DESCRIPTION, and SEE ALSO fields.

Every driver MUST include <sys/ddi.h> and <sys/sunddi.h>, in that order, and as final entries.

The following table summarizes the STREAMS structures described in Section 9S.

Structure Type
copyreq DDI/DKI
copyresp DDI/DKI
datab DDI/DKI
fmodsw illumos DDI
free_rtn DDI/DKI
iocblk DDI/DKI
linkblk DDI/DKI
module_info DDI/DKI
msgb DDI/DKI
qband DDI/DKI
qinit DDI/DKI
queclass illumos DDI
queue DDI/DKI
streamtab DDI/DKI
stroptions DDI/DKI

The following table summarizes structures that are not specific to STREAMS I/O.

Structure Type
aio_req illumos DDI
cb_ops illumos DDI
ddi_device_acc_attr illumos DDI
ddi_dma_attr illumos DDI
ddi_dma_cookie illumos DDI
ddi_dmae_req illumos x86 DDI
ddi_idevice_cookie illumos DDI
ddi_mapdev_ctl illumos DDI
devmap_callback_ctl illumos DDI
dev_ops illumos DDI
iovec DDI/DKI
kstat illumos DDI
kstat_intr illumos DDI
kstat_io illumos DDI
kstat_named illumos DDI
modldrv illumos DDI
modlinkage illumos DDI
modlstrmod illumos DDI
scsi_address illumos DDI
scsi_arq_status illumos DDI
scsi_device illumos DDI
scsi_extended_sense illumos DDI
scsi_hba_tran illumos DDI
scsi_inquiry illumos DDI
scsi_pkt illumos DDI
scsi_status illumos DDI


Do not declare arrays of structures as the size of the structures can change between releases. Rely only on the structure members listed in this chapter and not on unlisted members or the position of a member in a structure.

July 9, 2018 OmniOS