1 INTRO(9S) Data Structures for Drivers INTRO(9S) 2 3 NAME 4 Intro, intro - introduction to kernel data structures and properties 5 6 DESCRIPTION 7 Section 9P describes kernel properties used by device drivers. Section 8 9S describes the data structures used by drivers to share information 9 between the driver and the kernel. See Intro(9E) for an overview of 10 device driver interfaces. 11 12 In Section 9S, reference pages contain the following headings: 13 14 o NAME summarizes the purpose of the structure or property. 15 16 o SYNOPSIS lists the include file that defines the structure or 17 property. 18 19 o INTERFACE LEVEL describes any architecture dependencies. 20 21 o DESCRIPTION provides general information about the structure or 22 property. 23 24 o STRUCTURE MEMBERS lists all accessible structure members (for 25 Section 9S). 26 27 o SEE ALSO gives sources for further information. 28 29 Of the preceding headings, Section 9P reference pages contain the NAME, 30 DESCRIPTION, and SEE ALSO fields. 31 32 Every driver MUST include <sys/ddi.h> and <sys/sunddi.h>, in that order, 33 and as final entries. 34 35 The following table summarizes the STREAMS structures described in 36 Section 9S. 37 38 Structure Type 39 copyreq DDI/DKI 40 copyresp DDI/DKI 41 datab DDI/DKI 42 fmodsw Solaris DDI 43 free_rtn DDI/DKI 44 iocblk DDI/DKI 45 linkblk DDI/DKI 46 module_info DDI/DKI 47 msgb DDI/DKI 48 qband DDI/DKI 49 qinit DDI/DKI 50 queclass Solaris DDI 51 queue DDI/DKI 52 streamtab DDI/DKI 53 stroptions DDI/DKI 54 55 The following table summarizes structures that are not specific to 56 STREAMS I/O. 57 58 Structure Type 59 aio_req Solaris DDI 60 buf DDI/DKI 61 cb_ops Solaris DDI 62 ddi_device_acc_attr Solaris DDI 63 ddi_dma_attr Solaris DDI 64 ddi_dma_cookie Solaris DDI 65 ddi_dmae_req Solaris x86 DDI 66 ddi_idevice_cookie Solaris DDI 67 ddi_mapdev_ctl Solaris DDI 68 devmap_callback_ctl Solaris DDI 69 dev_ops Solaris DDI 70 iovec DDI/DKI 71 kstat Solaris DDI 72 kstat_intr Solaris DDI 73 kstat_io Solaris DDI 74 kstat_named Solaris DDI 75 map DDI/DKI 76 modldrv Solaris DDI 77 modlinkage Solaris DDI 78 modlstrmod Solaris DDI 79 scsi_address Solaris DDI 80 scsi_arq_status Solaris DDI 81 scsi_device Solaris DDI 82 scsi_extended_sense Solaris DDI 83 scsi_hba_tran Solaris DDI 84 scsi_inquiry Solaris DDI 85 scsi_pkt Solaris DDI 86 scsi_status Solaris DDI 87 uio DDI/DKI 88 89 SEE ALSO 90 Intro(9E) 91 92 NOTES 93 Do not declare arrays of structures as the size of the structures can 94 change between releases. Rely only on the structure members listed in 95 this chapter and not on unlisted members or the position of a member in a 96 structure. 97 98 illumos July 9, 2018 illumos