xref: /illumos-gate/usr/src/man/man9s/Intro.9s (revision d4039345c8fe6e54a31d17d91e86e393fdcf401b)
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