8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man9s / dev_ops.9s
blobd657f3046e029295bfb033b50ed75a892b1acceb
1 '\" te
2 .\" Copyright (c) 2008, Sun Microsystems, Inc., All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH DEV_OPS 9S "Sep 16, 2008"
7 .SH NAME
8 dev_ops \- device operations structure
9 .SH SYNOPSIS
10 .LP
11 .nf
12 #include <sys/conf.h>
13 #include <sys/devops.h>
14 .fi
16 .SH INTERFACE LEVEL
17 .sp
18 .LP
19 Solaris DDI specific (Solaris DDI).
20 .SH DESCRIPTION
21 .sp
22 .LP
23 \fBdev_ops\fR contains driver common fields and pointers to the \fBbus_ops\fR
24 and \fBcb_ops\fR(9S).
25 .sp
26 .LP
27 Following are the device functions provided in the device operations structure.
28 All fields must be set at compile time.
29 .sp
30 .ne 2
31 .na
32 \fB\fBdevo_rev\fR\fR
33 .ad
34 .RS 17n
35 Driver build version. Set this to \fBDEVO_REV\fR.
36 .RE
38 .sp
39 .ne 2
40 .na
41 \fB\fBdevo_refcnt\fR\fR
42 .ad
43 .RS 17n
44 Driver reference count. Set this to \fB0\fR.
45 .RE
47 .sp
48 .ne 2
49 .na
50 \fB\fBdevo_getinfo\fR\fR
51 .ad
52 .RS 17n
53 Get device driver information (see \fBgetinfo\fR(9E)).
54 .RE
56 .sp
57 .ne 2
58 .na
59 \fB\fBdevo_identify\fR\fR
60 .ad
61 .RS 17n
62 This entry point is obsolete. Set to \fBnulldev\fR.
63 .RE
65 .sp
66 .ne 2
67 .na
68 \fB\fBdevo_probe\fR\fR
69 .ad
70 .RS 17n
71 Probe device. See \fBprobe\fR(9E).
72 .RE
74 .sp
75 .ne 2
76 .na
77 \fB\fBdevo_attach\fR\fR
78 .ad
79 .RS 17n
80 Attach driver to \fBdev_info\fR. See \fBattach\fR(9E).
81 .RE
83 .sp
84 .ne 2
85 .na
86 \fB\fBdevo_detach\fR\fR
87 .ad
88 .RS 17n
89 Detach/prepare driver to unload. See \fBdetach\fR(9E).
90 .RE
92 .sp
93 .ne 2
94 .na
95 \fB\fBdevo_reset\fR\fR
96 .ad
97 .RS 17n
98 Reset device. (Not supported in this release.) Set this to \fBnodev\fR.
99 .RE
102 .ne 2
104 \fB\fBdevo_cb_ops\fR\fR
106 .RS 17n
107 Pointer to \fBcb_ops\fR(9S) structure for leaf drivers.
111 .ne 2
113 \fB\fBdevo_bus_ops\fR\fR
115 .RS 17n
116 Pointer to bus operations structure for nexus drivers. Set this to \fINULL\fR
117 if this is for a leaf driver.
121 .ne 2
123 \fB\fBdevo_power\fR\fR
125 .RS 17n
126 Power a device attached to system. See \fBpower\fR(9E).
130 .ne 2
132 \fB\fBdevo_quiesce\fR\fR
134 .RS 17n
135 Quiesce a device attached to system (see \fBquiesce\fR(9E) for more
136 information). This can be set to \fBddi_quiesce_not_needed()\fR if the driver
137 does not need to implement quiesce.
140 .SH STRUCTURE MEMBERS
142 .in +2
144 int             devo_rev;
145 int             devo_refcnt;
146 int             (*devo_getinfo)(dev_info_t *dip,
147                 ddi_info_cmd_t infocmd, void *arg, void **result);
148 int             (*devo_identify)(dev_info_t *dip);
149 int             (*devo_probe)(dev_info_t *dip);
150 int             (*devo_attach)(dev_info_t *dip,
151                 ddi_attach_cmd_t cmd);
152 int             (*devo_detach)(dev_info_t *dip,
153                 ddi_detach_cmd_t cmd);
154 int             (*devo_reset)(dev_info_t *dip, ddi_reset_cmd_t cmd);
155 struct cb_ops   *devo_cb_ops;
156 struct bus_ops  *devo_bus_ops;
157 int             (*devo_power)(dev_info_t *dip, int component, int level);
158 int             (*devo_quiesce)(dev_info_t *dip);
160 .in -2
162 .SH SEE ALSO
165 \fBattach\fR(9E), \fBdetach\fR(9E), \fBgetinfo\fR(9E), \fBprobe\fR(9E),
166 \fBpower\fR(9E), \fBquiesce\fR(9E), \fBnodev\fR(9F)
169 \fIWriting Device Drivers\fR