Deleted Added
full compact
scif_sas_controller.c (231136) scif_sas_controller.c (231137)
1/*-
2 * This file is provided under a dual BSD/GPLv2 license. When using or
3 * redistributing this file, you may do so under either license.
4 *
5 * GPL LICENSE SUMMARY
6 *
7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
8 *

--- 37 unchanged lines hidden (view full) ---

46 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
47 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
48 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
49 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
50 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
51 */
52
53#include <sys/cdefs.h>
1/*-
2 * This file is provided under a dual BSD/GPLv2 license. When using or
3 * redistributing this file, you may do so under either license.
4 *
5 * GPL LICENSE SUMMARY
6 *
7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
8 *

--- 37 unchanged lines hidden (view full) ---

46 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
47 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
48 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
49 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
50 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
51 */
52
53#include <sys/cdefs.h>
54__FBSDID("$FreeBSD: head/sys/dev/isci/scil/scif_sas_controller.c 231136 2012-02-07 17:43:58Z jimharris $");
54__FBSDID("$FreeBSD: head/sys/dev/isci/scil/scif_sas_controller.c 231137 2012-02-07 17:45:11Z jimharris $");
55
56/**
57 * @file
58 *
59 * @brief This file contains the implementation of the SCIF_SAS_CONTROLLER
60 * object.
61 */
62

--- 19 unchanged lines hidden (view full) ---

82 SCI_CONTROLLER_HANDLE_T controller,
83 void * user_object
84)
85{
86 SCI_STATUS status = SCI_SUCCESS;
87 SCIF_SAS_LIBRARY_T * fw_library = (SCIF_SAS_LIBRARY_T*) library;
88 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
89
55
56/**
57 * @file
58 *
59 * @brief This file contains the implementation of the SCIF_SAS_CONTROLLER
60 * object.
61 */
62

--- 19 unchanged lines hidden (view full) ---

82 SCI_CONTROLLER_HANDLE_T controller,
83 void * user_object
84)
85{
86 SCI_STATUS status = SCI_SUCCESS;
87 SCIF_SAS_LIBRARY_T * fw_library = (SCIF_SAS_LIBRARY_T*) library;
88 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
89
90 // Validate the user supplied parameters.
91 if ((library == SCI_INVALID_HANDLE) || (controller == SCI_INVALID_HANDLE))
92 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
93
90 SCIF_LOG_TRACE((
91 sci_base_object_get_logger(library),
92 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
93 "scif_controller_construct(0x%x, 0x%x) enter\n",
94 library, controller
95 ));
96
94 SCIF_LOG_TRACE((
95 sci_base_object_get_logger(library),
96 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
97 "scif_controller_construct(0x%x, 0x%x) enter\n",
98 library, controller
99 ));
100
97 // Validate the user supplied parameters.
98 if ((library == SCI_INVALID_HANDLE) || (controller == SCI_INVALID_HANDLE))
99 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
100
101 // Construct the base controller. As part of constructing the base
102 // controller we ask it to also manage the MDL iteration for the Core.
103 sci_base_controller_construct(
104 &fw_controller->parent,
105 sci_base_object_get_logger(fw_library),
106 scif_sas_controller_state_table,
107 fw_controller->mdes,
108 SCIF_SAS_MAX_MEMORY_DESCRIPTORS,

--- 30 unchanged lines hidden (view full) ---

139// ---------------------------------------------------------------------------
140
141SCI_STATUS scif_controller_initialize(
142 SCI_CONTROLLER_HANDLE_T controller
143)
144{
145 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
146
101 // Construct the base controller. As part of constructing the base
102 // controller we ask it to also manage the MDL iteration for the Core.
103 sci_base_controller_construct(
104 &fw_controller->parent,
105 sci_base_object_get_logger(fw_library),
106 scif_sas_controller_state_table,
107 fw_controller->mdes,
108 SCIF_SAS_MAX_MEMORY_DESCRIPTORS,

--- 30 unchanged lines hidden (view full) ---

139// ---------------------------------------------------------------------------
140
141SCI_STATUS scif_controller_initialize(
142 SCI_CONTROLLER_HANDLE_T controller
143)
144{
145 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
146
147 // Validate the user supplied parameters.
148 if (controller == SCI_INVALID_HANDLE)
149 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
150
147 SCIF_LOG_TRACE((
148 sci_base_object_get_logger(controller),
149 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
150 "scif_controller_initialize(0x%x) enter\n",
151 controller
152 ));
153
151 SCIF_LOG_TRACE((
152 sci_base_object_get_logger(controller),
153 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
154 "scif_controller_initialize(0x%x) enter\n",
155 controller
156 ));
157
154 // Validate the user supplied parameters.
155 if (controller == SCI_INVALID_HANDLE)
156 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
157
158 return fw_controller->state_handlers->initialize_handler(
159 &fw_controller->parent
160 );
161}
162
163// ---------------------------------------------------------------------------
164
165U32 scif_controller_get_suggested_start_timeout(

--- 16 unchanged lines hidden (view full) ---

182
183SCI_STATUS scif_controller_start(
184 SCI_CONTROLLER_HANDLE_T controller,
185 U32 timeout
186)
187{
188 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
189
158 return fw_controller->state_handlers->initialize_handler(
159 &fw_controller->parent
160 );
161}
162
163// ---------------------------------------------------------------------------
164
165U32 scif_controller_get_suggested_start_timeout(

--- 16 unchanged lines hidden (view full) ---

182
183SCI_STATUS scif_controller_start(
184 SCI_CONTROLLER_HANDLE_T controller,
185 U32 timeout
186)
187{
188 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
189
190 // Validate the user supplied parameters.
191 if (controller == SCI_INVALID_HANDLE)
192 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
193
190 SCIF_LOG_TRACE((
191 sci_base_object_get_logger(controller),
192 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
193 "scif_controller_start(0x%x, 0x%x) enter\n",
194 controller, timeout
195 ));
196
194 SCIF_LOG_TRACE((
195 sci_base_object_get_logger(controller),
196 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
197 "scif_controller_start(0x%x, 0x%x) enter\n",
198 controller, timeout
199 ));
200
197 // Validate the user supplied parameters.
198 if (controller == SCI_INVALID_HANDLE)
199 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
200
201 return fw_controller->state_handlers->
202 start_handler(&fw_controller->parent, timeout);
203}
204
205// ---------------------------------------------------------------------------
206
207SCI_STATUS scif_controller_stop(
208 SCI_CONTROLLER_HANDLE_T controller,
209 U32 timeout
210)
211{
212 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
213
201 return fw_controller->state_handlers->
202 start_handler(&fw_controller->parent, timeout);
203}
204
205// ---------------------------------------------------------------------------
206
207SCI_STATUS scif_controller_stop(
208 SCI_CONTROLLER_HANDLE_T controller,
209 U32 timeout
210)
211{
212 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
213
214 // Validate the user supplied parameters.
215 if (controller == SCI_INVALID_HANDLE)
216 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
217
214 SCIF_LOG_TRACE((
215 sci_base_object_get_logger(controller),
216 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_SHUTDOWN,
217 "scif_controller_stop(0x%x, 0x%x) enter\n",
218 controller, timeout
219 ));
220
218 SCIF_LOG_TRACE((
219 sci_base_object_get_logger(controller),
220 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_SHUTDOWN,
221 "scif_controller_stop(0x%x, 0x%x) enter\n",
222 controller, timeout
223 ));
224
221 // Validate the user supplied parameters.
222 if (controller == SCI_INVALID_HANDLE)
223 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
224
225 return fw_controller->state_handlers->
226 stop_handler(&fw_controller->parent, timeout);
227
228}
229
230// ---------------------------------------------------------------------------
231
232SCI_STATUS scif_controller_reset(
233 SCI_CONTROLLER_HANDLE_T controller
234)
235{
236 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
237
225 return fw_controller->state_handlers->
226 stop_handler(&fw_controller->parent, timeout);
227
228}
229
230// ---------------------------------------------------------------------------
231
232SCI_STATUS scif_controller_reset(
233 SCI_CONTROLLER_HANDLE_T controller
234)
235{
236 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
237
238 // Validate the user supplied parameters.
239 if (controller == SCI_INVALID_HANDLE)
240 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
241
238 SCIF_LOG_TRACE((
239 sci_base_object_get_logger(controller),
240 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_CONTROLLER_RESET,
241 "scif_controller_reset(0x%x) enter\n",
242 controller
243 ));
244
242 SCIF_LOG_TRACE((
243 sci_base_object_get_logger(controller),
244 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_CONTROLLER_RESET,
245 "scif_controller_reset(0x%x) enter\n",
246 controller
247 ));
248
245 // Validate the user supplied parameters.
246 if (controller == SCI_INVALID_HANDLE)
247 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
248
249 return fw_controller->state_handlers->
250 reset_handler(&fw_controller->parent);
251}
252
253// ---------------------------------------------------------------------------
254
255SCI_CONTROLLER_HANDLE_T scif_controller_get_scic_handle(
256 SCI_CONTROLLER_HANDLE_T controller

--- 44 unchanged lines hidden (view full) ---

301 SCI_CONTROLLER_HANDLE_T controller,
302 SCI_REMOTE_DEVICE_HANDLE_T remote_device,
303 SCI_TASK_REQUEST_HANDLE_T task_request,
304 U16 io_tag
305)
306{
307 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
308
249 return fw_controller->state_handlers->
250 reset_handler(&fw_controller->parent);
251}
252
253// ---------------------------------------------------------------------------
254
255SCI_CONTROLLER_HANDLE_T scif_controller_get_scic_handle(
256 SCI_CONTROLLER_HANDLE_T controller

--- 44 unchanged lines hidden (view full) ---

301 SCI_CONTROLLER_HANDLE_T controller,
302 SCI_REMOTE_DEVICE_HANDLE_T remote_device,
303 SCI_TASK_REQUEST_HANDLE_T task_request,
304 U16 io_tag
305)
306{
307 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
308
309 SCIF_LOG_TRACE((
310 sci_base_object_get_logger(controller),
311 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
312 "scif_controller_start_task(0x%x, 0x%x, 0x%x, 0x%x) enter\n",
313 controller, remote_device, task_request, io_tag
314 ));
315
316 // Validate the user supplied parameters.
317 if ( (controller == SCI_INVALID_HANDLE)
318 || (remote_device == SCI_INVALID_HANDLE)
319 || (task_request == SCI_INVALID_HANDLE) )
320 {
321 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
322 }
323
309 // Validate the user supplied parameters.
310 if ( (controller == SCI_INVALID_HANDLE)
311 || (remote_device == SCI_INVALID_HANDLE)
312 || (task_request == SCI_INVALID_HANDLE) )
313 {
314 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
315 }
316
317 SCIF_LOG_TRACE((
318 sci_base_object_get_logger(controller),
319 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
320 "scif_controller_start_task(0x%x, 0x%x, 0x%x, 0x%x) enter\n",
321 controller, remote_device, task_request, io_tag
322 ));
323
324 if (scif_sas_controller_sufficient_resource(controller))
325 {
326 return fw_controller->state_handlers->start_task_handler(
327 (SCI_BASE_CONTROLLER_T*) controller,
328 (SCI_BASE_REMOTE_DEVICE_T*) remote_device,
329 (SCI_BASE_REQUEST_T*) task_request,
330 io_tag
331 );

--- 31 unchanged lines hidden (view full) ---

363SCI_STATUS scif_controller_complete_task(
364 SCI_CONTROLLER_HANDLE_T controller,
365 SCI_REMOTE_DEVICE_HANDLE_T remote_device,
366 SCI_TASK_REQUEST_HANDLE_T task_request
367)
368{
369 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
370
324 if (scif_sas_controller_sufficient_resource(controller))
325 {
326 return fw_controller->state_handlers->start_task_handler(
327 (SCI_BASE_CONTROLLER_T*) controller,
328 (SCI_BASE_REMOTE_DEVICE_T*) remote_device,
329 (SCI_BASE_REQUEST_T*) task_request,
330 io_tag
331 );

--- 31 unchanged lines hidden (view full) ---

363SCI_STATUS scif_controller_complete_task(
364 SCI_CONTROLLER_HANDLE_T controller,
365 SCI_REMOTE_DEVICE_HANDLE_T remote_device,
366 SCI_TASK_REQUEST_HANDLE_T task_request
367)
368{
369 SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
370
371 SCIF_LOG_TRACE((
372 sci_base_object_get_logger(controller),
373 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
374 "scif_controller_complete_task(0x%x, 0x%x, 0x%x) enter\n",
375 controller, remote_device, task_request
376 ));
377
378 // Validate the user supplied parameters.
379 if ( (controller == SCI_INVALID_HANDLE)
380 || (remote_device == SCI_INVALID_HANDLE)
381 || (task_request == SCI_INVALID_HANDLE) )
382 {
383 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
384 }
385
371 // Validate the user supplied parameters.
372 if ( (controller == SCI_INVALID_HANDLE)
373 || (remote_device == SCI_INVALID_HANDLE)
374 || (task_request == SCI_INVALID_HANDLE) )
375 {
376 return SCI_FAILURE_INVALID_PARAMETER_VALUE;
377 }
378
379 SCIF_LOG_TRACE((
380 sci_base_object_get_logger(controller),
381 SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
382 "scif_controller_complete_task(0x%x, 0x%x, 0x%x) enter\n",
383 controller, remote_device, task_request
384 ));
385
386 return fw_controller->state_handlers->complete_task_handler(
387 (SCI_BASE_CONTROLLER_T*) controller,
388 (SCI_BASE_REMOTE_DEVICE_T*) remote_device,
389 (SCI_BASE_REQUEST_T*) task_request
390 );
391}
392
393// ---------------------------------------------------------------------------

--- 856 unchanged lines hidden ---
386 return fw_controller->state_handlers->complete_task_handler(
387 (SCI_BASE_CONTROLLER_T*) controller,
388 (SCI_BASE_REMOTE_DEVICE_T*) remote_device,
389 (SCI_BASE_REQUEST_T*) task_request
390 );
391}
392
393// ---------------------------------------------------------------------------

--- 856 unchanged lines hidden ---