xref: /illumos-gate/usr/src/man/man9s/Intro.9s (revision 427723622c44f91d933c66b35e3de35f4ccd4669)
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" "Solaris 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 Solaris 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 Solaris 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" "Solaris x86 DDI" -offset indent
93.It Structure	Type
94.It Vt aio_req Ta Solaris DDI
95.It Vt buf Ta DDI/DKI
96.It Vt cb_ops Ta Solaris DDI
97.It Vt ddi_device_acc_attr Ta Solaris DDI
98.It Vt ddi_dma_attr Ta Solaris DDI
99.It Vt ddi_dma_cookie Ta Solaris DDI
100.It Vt ddi_dmae_req Ta Solaris x86 DDI
101.It Vt ddi_idevice_cookie Ta Solaris DDI
102.It Vt ddi_mapdev_ctl Ta Solaris DDI
103.It Vt devmap_callback_ctl Ta Solaris DDI
104.It Vt dev_ops Ta Solaris DDI
105.It Vt iovec Ta DDI/DKI
106.It Vt kstat Ta Solaris DDI
107.It Vt kstat_intr Ta Solaris DDI
108.It Vt kstat_io Ta Solaris DDI
109.It Vt kstat_named Ta Solaris DDI
110.It Vt map Ta DDI/DKI
111.It Vt modldrv Ta Solaris DDI
112.It Vt modlinkage Ta Solaris DDI
113.It Vt modlstrmod Ta Solaris DDI
114.It Vt scsi_address Ta Solaris DDI
115.It Vt scsi_arq_status Ta Solaris DDI
116.It Vt scsi_device Ta Solaris DDI
117.It Vt scsi_extended_sense Ta Solaris DDI
118.It Vt scsi_hba_tran Ta Solaris DDI
119.It Vt scsi_inquiry Ta Solaris DDI
120.It Vt scsi_pkt Ta Solaris DDI
121.It Vt scsi_status Ta Solaris 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