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