1 '\" te
2 .\" Copyright (c) 2006 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 SCSI_HBA_ATTACH_SETUP 9F "May 30, 2006"
7 .SH NAME
8 scsi_hba_attach_setup, scsi_hba_attach, scsi_hba_detach \- SCSI HBA attach and
9 detach routines
10 .SH SYNOPSIS
11 .LP
12 .nf
13 #include <sys/scsi/scsi.h>
14
15
16
17 \fBint\fR \fBscsi_hba_attach_setup\fR(\fBdev_info_t *\fR\fIdip\fR, \fBddi_dma_attr_t *\fR\fIhba_dma_attr\fR,
18 \fBscsi_hba_tran_t *\fR\fIhba_tran\fR, \fBint\fR \fIhba_flags\fR);
19 .fi
20
21 .LP
22 .nf
23 \fBint\fR \fBscsi_hba_attach\fR(\fBdev_info_t *\fR\fIdip\fR, \fBddi_dma_lim_t *\fR\fIhba_lim\fR,
24 \fBscsi_hba_tran_t *\fR\fIhba_tran\fR, \fBint\fR \fIhba_flags\fR, \fBvoid *\fR\fIhba_options\fR);
25 .fi
26
27 .LP
28 .nf
29 \fBint\fR \fBscsi_hba_detach\fR(\fBdev_info_t *\fR\fIdip\fR);
30 .fi
31
32 .SH INTERFACE LEVEL
33 .sp
34 .LP
35 Solaris architecture specific (Solaris DDI).
36 .SH PARAMETERS
37 .sp
38 .ne 2
39 .na
40 \fB\fIdip\fR\fR
41 .ad
42 .RS 16n
43 Pointer to the \fBdev_info_t\fR structure that refers to the instance of the
44 HBA device.
45 .RE
46
47 .sp
48 .ne 2
77 .na
78 \fB\fIhba_options\fR\fR
79 .ad
80 .RS 16n
81 Optional features provided by the HBA driver for future extensions; must be
82 \fINULL\fR.
83 .RE
84
85 .sp
86 .ne 2
87 .na
88 \fB\fIhba_dma_attr\fR\fR
89 .ad
90 .RS 16n
91 Pointer to a \fBddi_dma_attr\fR(9S) structure.
92 .RE
93
94 .SH DESCRIPTION
95 .sp
96 .LP
97 The \fBscsi_hba_attach_setup()\fR function is the recommended interface over
98 the \fBscsi_hba_attach()\fR function.
99 .SS "scsi_hba_attach_setup(\|) scsi_hba_attach(\|)"
100 .sp
101 .LP
102 The \fBscsi_hba_attach()\fR function registers the \fIhba_lim\fR DMA limits and
103 the \fIhba_tran\fR transport vectors of each instance of the HBA device defined
104 by \fIdip\fR. The \fBscsi_hba_attach_setup()\fR function registers the
105 \fIhba_dma_attr\fR DMA attributes and the \fIhba_tran\fR transport vectors of
106 each instance of the HBA device defined by \fIdip\fR. The HBA driver can pass
107 different DMA limits or DMA attributes and the transport vectors for each
108 instance of the device to support any constraints imposed by the HBA itself.
109 .sp
110 .LP
111 The \fBscsi_hba_attach()\fR and \fBscsi_hba_attach_setup()\fR functions use the
112 \fBdev_bus_ops\fR field in the \fBdev_ops\fR(9S) structure. The HBA driver
113 should initialize this field to \fINULL\fR before calling
114 \fBscsi_hba_attach()\fR or \fBscsi_hba_attach_setup()\fR.
115 .sp
116 .LP
117 If \fBSCSI_HBA_TRAN_CLONE\fR is requested in \fIhba_flags\fR, the
118 \fBhba_tran\fR structure is cloned once for each target that is attached to the
119 HBA. The structure is cloned before the \fBtran_tgt_init\fR(9E) entry point is
120 called to initialize a target. At all subsequent HBA entry points, including
121 \fBtran_tgt_init\fR(9E), the \fBscsi_hba_tran_t\fR structure passed as an
122 argument or found in a \fBscsi_address\fR structure is the cloned
123 \fBscsi_hba_tran_t\fR structure,which allows the HBA to use the
124 \fBtran_tgt_private\fR field in the \fBscsi_hba_tran_t\fR structure to point to
125 per-target data. The HBA should free only the same \fBscsi_hba_tran_t\fR
126 structure allocated when the HBA detaches. All cloned \fBscsi_hba_tran_t\fR
127 structures that are allocated by the system are freed by the system.
128 .sp
129 .LP
130 The flags \fBSCSI_HBA_TRAN_CDB\fR and \fBSCSI_HBA_TRAN_SCB\fR are only valid
131 when \fBtran_setup_pkt()\fR is used. See \fBtran_setup_pkt\fR(9E) for
132 information on using these flags.
133 .sp
134 .LP
135 The \fBscsi_hba_attach()\fR and \fBscsi_hba_attach_setup()\fR functions attach
136 a number of integer-valued properties to \fIdip\fR, unless properties of the
137 same name are already attached to the node. An HBA driver should retrieve these
138 configuration parameters via \fBddi_prop_get_int\fR(9F), and respect any
139 settings for features provided the HBA.
140 .sp
141 .ne 2
142 .na
143 \fB\fBscsi-options\fR\fR
144 .ad
145 .RS 26n
146 \fBOptional\fR \fBSCSI\fR \fBconfiguration bits\fR
147 .RE
148
149 .sp
150 .ne 2
151 .na
152 \fB\fBSCSI_OPTIONS_DR\fR\fR
153 .ad
154 .RS 26n
155 If not set, the HBA should not grant Disconnect privileges to target devices.
267
268 .sp
269 .ne 2
270 .na
271 \fB\fBscsi-selection-timeout\fR\fR
272 .ad
273 .RS 26n
274 Default SCSI selection phase timeout value, in milliseconds. Please refer to
275 individual HBA man pages for any HBA-specific information
276 .RE
277
278 .SS "scsi_hba_detach(\|)"
279 .sp
280 .LP
281 The \fBscsi_hba_detach()\fR function removes the reference to the DMA limits or
282 attributes structure and the transport vector for the given instance of an HBA
283 driver.
284 .SH RETURN VALUES
285 .sp
286 .LP
287 The \fBscsi_hba_attach()\fR, \fBscsi_hba_attach_setup()\fR, and
288 \fBscsi_hba_detach()\fR functions return \fBDDI_SUCCESS\fR if the function call
289 succeeds, and return \fBDDI_FAILURE\fR on failure.
290 .SH CONTEXT
291 .sp
292 .LP
293 The \fBscsi_hba_attach()\fR and \fBscsi_hba_attach_setup()\fR functions should
294 be called from \fBattach\fR(9E). The \fBscsi_hba_detach()\fR function should be
295 called from \fBdetach\fR(9E).
296 .SH SEE ALSO
297 .sp
298 .LP
299 \fBattach\fR(9E), \fBdetach\fR(9E), \fBtran_setup_pkt\fR(9E),
300 \fBtran_tgt_init\fR(9E), \fBddi_prop_get_int\fR(9F), \fBddi_dma_attr\fR(9S),
301 \fBddi_dma_lim\fR(9S), \fBdev_ops\fR(9S), \fBscsi_address\fR(9S),
302 \fBscsi_hba_tran\fR(9S)
303 .sp
304 .LP
305 \fIWriting Device Drivers\fR
306 .SH NOTES
307 .sp
308 .LP
309 It is the HBA driver's responsibility to ensure that no more transport requests
310 will be taken on behalf of any SCSI target device driver after
311 \fBscsi_hba_detach()\fR is called.
312 .sp
313 .LP
314 The \fBscsi_hba_attach()\fR function is obsolete and will be discontinued in a
315 future release. This function is replaced by \fBscsi_hba_attach_setup()\fR.
|
1 '\" te
2 .\" Copyright (c) 2006 Sun Microsystems, Inc., All Rights Reserved
3 .\" Copyright 2014 Pluribus Networks, Inc.
4 .\" 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.
5 .\" 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.
6 .\" 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]
7 .TH SCSI_HBA_ATTACH_SETUP 9F "May 30, 2006"
8 .SH NAME
9 scsi_hba_attach_setup, scsi_hba_attach, scsi_hba_detach \- SCSI HBA attach and
10 detach routines
11 .SH SYNOPSIS
12 .LP
13 .nf
14 #include <sys/scsi/scsi.h>
15
16
17
18 \fBint\fR \fBscsi_hba_attach_setup\fR(\fBdev_info_t *\fR\fIdip\fR, \fBddi_dma_attr_t *\fR\fIhba_dma_attr\fR,
19 \fBscsi_hba_tran_t *\fR\fIhba_tran\fR, \fBint\fR \fIhba_flags\fR);
20 .fi
21
22 .LP
23 .nf
24 \fBint\fR \fBscsi_hba_detach\fR(\fBdev_info_t *\fR\fIdip\fR);
25 .fi
26
27 .SH INTERFACE LEVEL
28 .sp
29 .LP
30 Solaris architecture specific (Solaris DDI).
31 .SH PARAMETERS
32 .sp
33 .ne 2
34 .na
35 \fB\fIdip\fR\fR
36 .ad
37 .RS 16n
38 Pointer to the \fBdev_info_t\fR structure that refers to the instance of the
39 HBA device.
40 .RE
41
42 .sp
43 .ne 2
72 .na
73 \fB\fIhba_options\fR\fR
74 .ad
75 .RS 16n
76 Optional features provided by the HBA driver for future extensions; must be
77 \fINULL\fR.
78 .RE
79
80 .sp
81 .ne 2
82 .na
83 \fB\fIhba_dma_attr\fR\fR
84 .ad
85 .RS 16n
86 Pointer to a \fBddi_dma_attr\fR(9S) structure.
87 .RE
88
89 .SH DESCRIPTION
90 .sp
91 .LP
92 The \fBscsi_hba_attach_setup()\fR function registers the
93 \fIhba_dma_attr\fR DMA attributes and the \fIhba_tran\fR transport vectors of
94 each instance of the HBA device defined by \fIdip\fR. The HBA driver can pass
95 different DMA limits or DMA attributes and the transport vectors for each
96 instance of the device to support any constraints imposed by the HBA itself.
97 .sp
98 .LP
99 The \fBscsi_hba_attach_setup()\fR function uses the
100 \fBdev_bus_ops\fR field in the \fBdev_ops\fR(9S) structure. The HBA driver
101 should initialize this field to \fINULL\fR before calling
102 \fBscsi_hba_attach_setup()\fR.
103 .sp
104 .LP
105 If \fBSCSI_HBA_TRAN_CLONE\fR is requested in \fIhba_flags\fR, the
106 \fBhba_tran\fR structure is cloned once for each target that is attached to the
107 HBA. The structure is cloned before the \fBtran_tgt_init\fR(9E) entry point is
108 called to initialize a target. At all subsequent HBA entry points, including
109 \fBtran_tgt_init\fR(9E), the \fBscsi_hba_tran_t\fR structure passed as an
110 argument or found in a \fBscsi_address\fR structure is the cloned
111 \fBscsi_hba_tran_t\fR structure,which allows the HBA to use the
112 \fBtran_tgt_private\fR field in the \fBscsi_hba_tran_t\fR structure to point to
113 per-target data. The HBA should free only the same \fBscsi_hba_tran_t\fR
114 structure allocated when the HBA detaches. All cloned \fBscsi_hba_tran_t\fR
115 structures that are allocated by the system are freed by the system.
116 .sp
117 .LP
118 The flags \fBSCSI_HBA_TRAN_CDB\fR and \fBSCSI_HBA_TRAN_SCB\fR are only valid
119 when \fBtran_setup_pkt()\fR is used. See \fBtran_setup_pkt\fR(9E) for
120 information on using these flags.
121 .sp
122 .LP
123 The \fBscsi_hba_attach_setup()\fR function attaches
124 a number of integer-valued properties to \fIdip\fR, unless properties of the
125 same name are already attached to the node. An HBA driver should retrieve these
126 configuration parameters via \fBddi_prop_get_int\fR(9F), and respect any
127 settings for features provided the HBA.
128 .sp
129 .ne 2
130 .na
131 \fB\fBscsi-options\fR\fR
132 .ad
133 .RS 26n
134 \fBOptional\fR \fBSCSI\fR \fBconfiguration bits\fR
135 .RE
136
137 .sp
138 .ne 2
139 .na
140 \fB\fBSCSI_OPTIONS_DR\fR\fR
141 .ad
142 .RS 26n
143 If not set, the HBA should not grant Disconnect privileges to target devices.
255
256 .sp
257 .ne 2
258 .na
259 \fB\fBscsi-selection-timeout\fR\fR
260 .ad
261 .RS 26n
262 Default SCSI selection phase timeout value, in milliseconds. Please refer to
263 individual HBA man pages for any HBA-specific information
264 .RE
265
266 .SS "scsi_hba_detach(\|)"
267 .sp
268 .LP
269 The \fBscsi_hba_detach()\fR function removes the reference to the DMA limits or
270 attributes structure and the transport vector for the given instance of an HBA
271 driver.
272 .SH RETURN VALUES
273 .sp
274 .LP
275 The \fBscsi_hba_attach_setup()\fR and
276 \fBscsi_hba_detach()\fR functions return \fBDDI_SUCCESS\fR if the function call
277 succeeds, and return \fBDDI_FAILURE\fR on failure.
278 .SH CONTEXT
279 .sp
280 .LP
281 The \fBscsi_hba_attach_setup()\fR function should
282 be called from \fBattach\fR(9E). The \fBscsi_hba_detach()\fR function should be
283 called from \fBdetach\fR(9E).
284 .SH SEE ALSO
285 .sp
286 .LP
287 \fBattach\fR(9E), \fBdetach\fR(9E), \fBtran_setup_pkt\fR(9E),
288 \fBtran_tgt_init\fR(9E), \fBddi_prop_get_int\fR(9F), \fBddi_dma_attr\fR(9S),
289 \fBdev_ops\fR(9S), \fBscsi_address\fR(9S),
290 \fBscsi_hba_tran\fR(9S)
291 .sp
292 .LP
293 \fIWriting Device Drivers\fR
294 .SH NOTES
295 .sp
296 .LP
297 It is the HBA driver's responsibility to ensure that no more transport requests
298 will be taken on behalf of any SCSI target device driver after
299 \fBscsi_hba_detach()\fR is called.
|