1Intro(9S)                 Data Structures for Drivers                Intro(9S)
2
3
4

NAME

6       Intro, intro - introduction to kernel data structures and properties
7

DESCRIPTION

9       Section  9P describes kernel properties used by device drivers. Section
10       9S describes the data structures used by drivers to  share  information
11       between  the  driver  and  the kernel. See Intro(9E) for an overview of
12       device driver interfaces.
13
14
15       In Section 9S, reference pages contain the following headings:
16
17           o      NAME summarizes the purpose of the structure or property.
18
19           o      SYNOPSIS lists the include file that defines  the  structure
20                  or property.
21
22           o      INTERFACE LEVEL describes any architecture dependencies.
23
24           o      DESCRIPTION provides general information about the structure
25                  or property.
26
27           o      STRUCTURE MEMBERS lists  all  accessible  structure  members
28                  (for Section 9S).
29
30           o      SEE ALSO gives sources for further information.
31
32
33       Of the preceding headings, Section 9P reference pages contain the NAME,
34       DESCRIPTION, and SEE ALSO fields.
35
36
37       Every driver MUST  include  <sys/ddi.h>  and  <sys/sunddi.h>,  in  that
38       order, and as final entries.
39
40
41       The following table summarizes the STREAMS structures described in Sec‐
42       tion 9S.
43
44
45
46
47       ┌─────────────────────────────┬─────────────────────────────┐
48       │         Structure           │            Type             │
49       ├─────────────────────────────┼─────────────────────────────┤
50copyreq                      │DDI/DKI                      │
51       ├─────────────────────────────┼─────────────────────────────┤
52copyresp                     │DDI/DKI                      │
53       ├─────────────────────────────┼─────────────────────────────┤
54datab                        │DDI/DKI                      │
55       ├─────────────────────────────┼─────────────────────────────┤
56fmodsw                       │Solaris DDI                  │
57       ├─────────────────────────────┼─────────────────────────────┤
58free_rtn                     │DDI/DKI                      │
59       ├─────────────────────────────┼─────────────────────────────┤
60iocblk                       │DDI/DKI                      │
61       ├─────────────────────────────┼─────────────────────────────┤
62linkblk                      │DDI/DKI                      │
63       ├─────────────────────────────┼─────────────────────────────┤
64module_info                  │DDI/DKI                      │
65       ├─────────────────────────────┼─────────────────────────────┤
66msgb                         │DDI/DKI                      │
67       ├─────────────────────────────┼─────────────────────────────┤
68qband                        │DDI/DKI                      │
69       ├─────────────────────────────┼─────────────────────────────┤
70qinit                        │DDI/DKI                      │
71       ├─────────────────────────────┼─────────────────────────────┤
72queclass                     │Solaris DDI                  │
73       ├─────────────────────────────┼─────────────────────────────┤
74queue                        │DDI/DKI                      │
75       ├─────────────────────────────┼─────────────────────────────┤
76streamtab                    │DDI/DKI                      │
77       ├─────────────────────────────┼─────────────────────────────┤
78stroptions                   │DDI/DKI                      │
79       └─────────────────────────────┴─────────────────────────────┘
80
81
82       The following table summarizes structures  that  are  not  specific  to
83       STREAMS I/O.
84
85
86
87
88       ┌─────────────────────────────┬─────────────────────────────┐
89       │         Structure           │            Type             │
90       ├─────────────────────────────┼─────────────────────────────┤
91aio_req                      │Solaris DDI                  │
92       ├─────────────────────────────┼─────────────────────────────┤
93buf                          │DDI/DKI                      │
94       ├─────────────────────────────┼─────────────────────────────┤
95cb_ops                       │Solaris DDI                  │
96       ├─────────────────────────────┼─────────────────────────────┤
97ddi_device_acc_attr          │Solaris DDI                  │
98       ├─────────────────────────────┼─────────────────────────────┤
99ddi_dma_attr                 │Solaris DDI                  │
100       ├─────────────────────────────┼─────────────────────────────┤
101ddi_dma_cookie               │Solaris DDI                  │
102       ├─────────────────────────────┼─────────────────────────────┤
103ddi_dma_lim_sparc            │Solaris SPARC DDI            │
104       ├─────────────────────────────┼─────────────────────────────┤
105ddi_dma_lim_x86              │Solaris x86 DDI              │
106       ├─────────────────────────────┼─────────────────────────────┤
107ddi_dma_req                  │Solaris DDI                  │
108       ├─────────────────────────────┼─────────────────────────────┤
109ddi_dmae_req                 │Solaris x86 DDI              │
110       ├─────────────────────────────┼─────────────────────────────┤
111ddi_idevice_cookie           │Solaris DDI                  │
112       ├─────────────────────────────┼─────────────────────────────┤
113ddi_mapdev_ctl               │Solaris DDI                  │
114       ├─────────────────────────────┼─────────────────────────────┤
115devmap_callback_ctl          │Solaris DDI                  │
116       ├─────────────────────────────┼─────────────────────────────┤
117dev_ops                      │Solaris DDI                  │
118       ├─────────────────────────────┼─────────────────────────────┤
119iovec                        │DDI/DKI                      │
120       ├─────────────────────────────┼─────────────────────────────┤
121kstat                        │Solaris DDI                  │
122       ├─────────────────────────────┼─────────────────────────────┤
123kstat_intr                   │Solaris DDI                  │
124       ├─────────────────────────────┼─────────────────────────────┤
125kstat_io                     │Solaris DDI                  │
126       ├─────────────────────────────┼─────────────────────────────┤
127kstat_named                  │Solaris DDI                  │
128       ├─────────────────────────────┼─────────────────────────────┤
129map                          │DDI/DKI                      │
130       ├─────────────────────────────┼─────────────────────────────┤
131modldrv                      │Solaris DDI                  │
132       ├─────────────────────────────┼─────────────────────────────┤
133modlinkage                   │Solaris DDI                  │
134       ├─────────────────────────────┼─────────────────────────────┤
135modlstrmod                   │Solaris DDI                  │
136       ├─────────────────────────────┼─────────────────────────────┤
137scsi_address                 │Solaris DDI                  │
138       ├─────────────────────────────┼─────────────────────────────┤
139scsi_arq_status              │Solaris DDI                  │
140       ├─────────────────────────────┼─────────────────────────────┤
141scsi_device                  │Solaris DDI                  │
142       ├─────────────────────────────┼─────────────────────────────┤
143scsi_extended_sense          │Solaris DDI                  │
144       ├─────────────────────────────┼─────────────────────────────┤
145scsi_hba_tran                │Solaris DDI                  │
146       ├─────────────────────────────┼─────────────────────────────┤
147scsi_inquiry                 │Solaris DDI                  │
148       ├─────────────────────────────┼─────────────────────────────┤
149scsi_pkt                     │Solaris DDI                  │
150       ├─────────────────────────────┼─────────────────────────────┤
151scsi_status                  │Solaris DDI                  │
152       ├─────────────────────────────┼─────────────────────────────┤
153uio                          │DDI/DKI                      │
154       └─────────────────────────────┴─────────────────────────────┘
155

SEE ALSO

157       Intro(9E)
158

NOTES

160       Do  not  declare arrays of structures as the size of the structures can
161       change between releases. Rely only on the structure members  listed  in
162       this chapter and not on unlisted members or the position of a member in
163       a structure.
164
165
166
167SunOS 5.11                        15 May 2001                        Intro(9S)
Impressum