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 --- |