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 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 |
90 // Validate the user supplied parameters. 91 if ((library == SCI_INVALID_HANDLE) || (controller == SCI_INVALID_HANDLE)) 92 return SCI_FAILURE_INVALID_PARAMETER_VALUE; 93 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 // 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 |
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 --- |