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

Intro, intro
introduction 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 Solaris 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 Solaris 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 Solaris DDI
buf DDI/DKI
cb_ops Solaris DDI
ddi_device_acc_attr Solaris DDI
ddi_dma_attr Solaris DDI
ddi_dma_cookie Solaris DDI
ddi_dmae_req Solaris x86 DDI
ddi_idevice_cookie Solaris DDI
ddi_mapdev_ctl Solaris DDI
devmap_callback_ctl Solaris DDI
dev_ops Solaris DDI
iovec DDI/DKI
kstat Solaris DDI
kstat_intr Solaris DDI
kstat_io Solaris DDI
kstat_named Solaris DDI
map DDI/DKI
modldrv Solaris DDI
modlinkage Solaris DDI
modlstrmod Solaris DDI
scsi_address Solaris DDI
scsi_arq_status Solaris DDI
scsi_device Solaris DDI
scsi_extended_sense Solaris DDI
scsi_hba_tran Solaris DDI
scsi_inquiry Solaris DDI
scsi_pkt Solaris DDI
scsi_status Solaris DDI
uio DDI/DKI

Intro(9E)

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 illumos