1.\" Copyright 2018, Joyent Inc. 2.\" Copyright 2014 Garrett D'Amore <garrett@damore.org> 3.\" Copyright (c) 2001, Sun Microsystems, Inc., All Rights Reserved. 4.\" Copyright 1989 AT&T 5.\" The contents of this file are subject to the terms of the 6.\" Common Development and Distribution License (the "License"). 7.\" You may not use this file except in compliance with the License. 8.\" 9.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10.\" or http://www.opensolaris.org/os/licensing. 11.\" See the License for the specific language governing permissions 12.\" and limitations under the License. 13.\" 14.\" When distributing Covered Code, include this CDDL HEADER in each 15.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16.\" If applicable, add the following below this CDDL HEADER, with the 17.\" fields enclosed by brackets "[]" replaced with your own identifying 18.\" information: Portions Copyright [yyyy] [name of copyright owner] 19.Dd July 9, 2018 20.Dt INTRO 9S 21.Os 22.Sh NAME 23.Nm Intro , 24.Nm intro 25.Nd introduction to kernel data structures and properties 26.Sh DESCRIPTION 27Section 9P describes kernel properties used by device drivers. 28Section 9S 29describes the data structures used by drivers to share information between the 30driver and the kernel. 31See 32.Xr Intro 9E 33for an overview of device driver 34interfaces. 35.Pp 36In Section 9S, reference pages contain the following headings: 37.Bl -bullet -offset indent 38.It 39.Sy NAME 40summarizes the purpose of the structure or property. 41.It 42.Sy SYNOPSIS 43lists the include file that defines the structure or property. 44.It 45.Sy "INTERFACE LEVEL" 46describes any architecture dependencies. 47.It 48.Sy DESCRIPTION 49provides general information about the structure or property. 50.It 51.Sy "STRUCTURE MEMBERS" 52lists all accessible structure members (for Section 9S). 53.It 54.Sy "SEE ALSO" 55gives sources for further information. 56.El 57.Pp 58Of the preceding headings, Section 9P reference pages contain the 59.Sy NAME , 60.Sy DESCRIPTION , 61and 62.Sy "SEE ALSO" 63fields. 64.Pp 65Every driver MUST include 66.In sys/ddi.h 67and 68.In sys/sunddi.h , 69in that order, and as final entries. 70.Pp 71The following table summarizes the STREAMS structures described in Section 9S. 72.Bl -column "module_info" "illumos DDI" -offset indent 73.It Structure Ta Type 74.It Vt copyreq Ta DDI/DKI 75.It Vt copyresp Ta DDI/DKI 76.It Vt datab Ta DDI/DKI 77.It Vt fmodsw Ta illumos DDI 78.It Vt free_rtn Ta DDI/DKI 79.It Vt iocblk Ta DDI/DKI 80.It Vt linkblk Ta DDI/DKI 81.It Vt module_info Ta DDI/DKI 82.It Vt msgb Ta DDI/DKI 83.It Vt qband Ta DDI/DKI 84.It Vt qinit Ta DDI/DKI 85.It Vt queclass Ta illumos DDI 86.It Vt queue Ta DDI/DKI 87.It Vt streamtab Ta DDI/DKI 88.It Vt stroptions Ta DDI/DKI 89.El 90.Pp 91The following table summarizes structures that are not specific to STREAMS I/O. 92.Bl -column "ddi_device_acc_attr" "illumos x86 DDI" -offset indent 93.It Structure Type 94.It Vt aio_req Ta illumos DDI 95.It Vt buf Ta DDI/DKI 96.It Vt cb_ops Ta illumos DDI 97.It Vt ddi_device_acc_attr Ta illumos DDI 98.It Vt ddi_dma_attr Ta illumos DDI 99.It Vt ddi_dma_cookie Ta illumos DDI 100.It Vt ddi_dmae_req Ta illumos x86 DDI 101.It Vt ddi_idevice_cookie Ta illumos DDI 102.It Vt ddi_mapdev_ctl Ta illumos DDI 103.It Vt devmap_callback_ctl Ta illumos DDI 104.It Vt dev_ops Ta illumos DDI 105.It Vt iovec Ta DDI/DKI 106.It Vt kstat Ta illumos DDI 107.It Vt kstat_intr Ta illumos DDI 108.It Vt kstat_io Ta illumos DDI 109.It Vt kstat_named Ta illumos DDI 110.It Vt map Ta DDI/DKI 111.It Vt modldrv Ta illumos DDI 112.It Vt modlinkage Ta illumos DDI 113.It Vt modlstrmod Ta illumos DDI 114.It Vt scsi_address Ta illumos DDI 115.It Vt scsi_arq_status Ta illumos DDI 116.It Vt scsi_device Ta illumos DDI 117.It Vt scsi_extended_sense Ta illumos DDI 118.It Vt scsi_hba_tran Ta illumos DDI 119.It Vt scsi_inquiry Ta illumos DDI 120.It Vt scsi_pkt Ta illumos DDI 121.It Vt scsi_status Ta illumos DDI 122.It Vt uio Ta DDI/DKI 123.El 124.Sh SEE ALSO 125.Xr Intro 9E 126.Sh NOTES 127Do not declare arrays of structures as the size of the structures can change 128between releases. 129Rely only on the structure members listed in this chapter and 130not on unlisted members or the position of a member in a structure. 131