Data Structures for Drivers Intro(9S)
NAME
Intro, intro - introduction to kernel data structures
DESCRIPTION
Section 9S describes the data structures used by drivers to
share information between the driver and the kernel.
In this section, reference pages contain the following head-
ings:
o NAME summarizes the structure's purpose.
o SYNOPSIS lists the include file that defines the
structure.
o INTERFACE LEVEL describes any architecture dependen-
cies.
o DESCRIPTION provides general information about the
structure.
o STRUCTURE MEMBERS lists all accessible structure
members.
o SEE ALSO gives sources for further information.
Every driver MUST include <sys/ddi.h> and <sys/sunddi.h>, in
that order, and last.
The following table summarizes the STREAMS structures
described in this section.
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.
SunOS 5.8 Last change: 28 Jan 1994 1
Data Structures for Drivers Intro(9S)
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_dma_lim_sparc Solaris SPARC DDI
ddi_dma_lim_x86 Solaris x86 DDI
ddi_dma_req Solaris DDI
ddi_dmae_req Solaris x86 DDI
ddi_idevice_cookie Solaris DDI
ddi_mapdev_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
NOTES
Do not declare arrays of structures as the size of the
structures may 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.
SunOS 5.8 Last change: 28 Jan 1994 2
Data Structures for Drivers Intro(9S)
LIST OF STRUCTURES
Name Description
aio_req(9S) asynchronous I/O request struc-
ture
buf(9S) block I/O data transfer struc-
ture
cb_ops(9S) character/block entry points
structure
copyreq(9S) STREAMS data structure for the
M_COPYIN and the M_COPYOUT mes-
sage types
copyresp(9S) STREAMS data structure for the
M_IOCDATA message type
datab(9S) STREAMS message data structure
ddi_device_acc_attr(9S) data access attributes structure
ddi_dma_attr(9S) DMA attributes structure
ddi_dma_cookie(9S) DMA address cookie
ddi_dmae_req(9S) DMA engine request structure
ddi_dma_lim(9S) See ddi_dma_lim_sparc(9S)
ddi_dma_lim_sparc(9S) SPARC DMA limits structure
ddi_dma_lim_x86(9S) x86 DMA limits structure
ddi_dma_req(9S) DMA Request structure
ddi_idevice_cookie(9S) device interrupt cookie
ddi_mapdev_ctl(9S) device mapping-control structure
dev_ops(9S) device operations structure
fmodsw(9S) STREAMS module declaration
structure
free_rtn(9S) structure that specifies a
driver's message freeing routine
iocblk(9S) STREAMS data structure for the
M_IOCTL message type
SunOS 5.8 Last change: 28 Jan 1994 3
Data Structures for Drivers Intro(9S)
iovec(9S) data storage structure for I/O
using uio
kstat(9S) kernel statistics structure
kstat_intr(9S) structure for interrupt kstats
kstat_io(9S) structure for I/O kstats
kstat_named(9S) structure for named kstats
linkblk(9S) STREAMS data structure sent to
multiplexor drivers to indicate
a link
modldrv(9S) linkage structure for loadable
drivers
modlinkage(9S) module linkage structure
modlstrmod(9S) linkage structure for loadable
STREAMS modules
module_info(9S) STREAMS driver identification
and limit value structure
msgb(9S) STREAMS message block structure
qband(9S) STREAMS queue flow control
information structure
qinit(9S) STREAMS queue processing pro-
cedures structure
queclass(9S) a STREAMS macro that returns the
queue message class definitions
for a given message block
queue(9S) STREAMS queue structure
scsi_address(9S) SCSI address structure
scsi_arq_status(9S) SCSI auto request sense struc-
ture
scsi_device(9S) SCSI device structure
scsi_extended_sense(9S) SCSI extended sense structure
scsi_hba_tran(9S) SCSI Host Bus Adapter (HBA)
driver transport vector struc-
ture
SunOS 5.8 Last change: 28 Jan 1994 4
Data Structures for Drivers Intro(9S)
scsi_inquiry(9S) SCSI inquiry structure
scsi_pkt(9S) SCSI packet structure
scsi_status(9S) SCSI status structure
streamtab(9S) STREAMS entity declaration
structure
stroptions(9S) options structure for M_SETOPTS
message
uio(9S) scatter/gather I/O request
structure
SunOS 5.8 Last change: 28 Jan 1994 5
© 1994 Man-cgi 1.15S, Panagiotis Christias <christia@theseas.ntua.gr>
1995 Modified for Solaris 2.3, David Adams, <d.j.adams@soton.ac.uk>