Lines Matching full:this

4  * This file is provided under a dual BSD/GPLv2 license.  When using or
5 * redistributing this file, you may do so under either license.
11 * This program is free software; you can redistribute it and/or modify
15 * This program is distributed in the hope that it will be useful, but
21 * along with this program; if not, write to the Free Software
23 * The full GNU General Public License is included in this distribution
36 * notice, this list of conditions and the following disclaimer.
38 * notice, this list of conditions and the following disclaimer in
42 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
52 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
60 * @brief This file contains all of the interface methods/macros that must
77 * @brief This callback method asks the user to create a timer and provide
78 * a handle for this timer for use in further timer interactions.
84 * @param[in] timer_callback This parameter specifies the callback method
86 * @param[in] controller This parameter specifies the controller with
87 * which this timer is to be associated.
88 * @param[in] cookie This parameter specifies a piece of information that
89 * the user must retain. This cookie is to be supplied by the
92 * @return This method returns a handle to a timer object created by the
94 * relating to this timer.
103 * @brief This callback method asks the user to destroy the supplied timer.
105 * @param[in] controller This parameter specifies the controller with
106 * which this timer is to associated.
107 * @param[in] timer This parameter specifies the timer to be destroyed.
117 * @brief This callback method asks the user to start the supplied timer.
126 * @param[in] controller This parameter specifies the controller with
127 * which this timer is to associated.
128 * @param[in] timer This parameter specifies the timer to be started.
129 * @param[in] milliseconds This parameter specifies the number of
131 * is allowed to round this value up where necessary.
142 * @brief This callback method asks the user to stop the supplied timer.
144 * @param[in] controller This parameter specifies the controller with
145 * which this timer is to associated.
146 * @param[in] timer This parameter specifies the timer to be stopped.
156 * @brief This callback method asks the user to associate the supplied
159 * @param[in] controller This parameter specifies the controller with
160 * which this lock is to be associated.
161 * @param[in] lock This parameter specifies the lock for which the
175 * @brief This callback method asks the user to de-associate the supplied
178 * @param[in] controller This parameter specifies the controller with
179 * which this lock is to be de-associated.
180 * @param[in] lock This parameter specifies the lock for which the
195 * @brief This callback method asks the user to acquire/get the lock.
196 * This method should pend until the lock has been acquired.
198 * @param[in] controller This parameter specifies the controller with
199 * which this lock is associated.
200 * @param[in] lock This parameter specifies the lock to be acquired.
210 * @brief This callback method asks the user to release a lock.
212 * @param[in] controller This parameter specifies the controller with
213 * which this lock is associated.
214 * @param[in] lock This parameter specifies the lock to be released.
224 * @brief This user callback will inform the user that the controller has
229 * @param[in] controller This parameter specifies the controller that had
240 * @brief This user callback will inform the user that the controller has
243 * @param[in] controller This parameter specifies the controller that was
245 * @param[in] completion_status This parameter specifies the results of
257 * @brief This user callback will inform the user that the controller has
259 * scif_controller_stop(), before user receives this controller stop
263 * @param[in] controller This parameter specifies the controller that was
265 * @param[in] completion_status This parameter specifies the results of
277 * @brief This method simply returns the virtual address associated
280 * @note This callback is not utilized in the fast path. The expectation
281 * is that this method is utilized for items such as SCSI to ATA
284 * @param[in] scif_user_io_request This parameter points to the user's
286 * provide the necessary information for this callback.
287 * @param[in] byte_offset This parameter specifies the offset into the data
302 * @brief This method is presently utilized in the PIO path,
303 * copies from UF buffer to the SGL buffer. This method
306 * @param[in] user_io_request. This parameter points to the user's
308 * provide the necessary information for this callback.
310 * @param[in] offset. This parameter specifies the offset into the data
327 * @brief This user callback will inform the user that an IO request has
330 * @param[in] controller This parameter specifies the controller on
332 * @param[in] remote_device This parameter specifies the remote device on
333 * which this request is completing.
334 * @param[in] io_request This parameter specifies the IO request that has
336 * @param[in] completion_status This parameter specifies the results of
350 * @brief This user callback will inform the user that a task management
353 * @param[in] controller This parameter specifies the controller on
355 * @param[in] remote_device This parameter specifies the remote device on
356 * which this task management request is completing.
357 * @param[in] task_request This parameter specifies the task management
359 * @param[in] completion_status This parameter specifies the results of
373 * @brief This callback method asks the user to provide the number of
374 * bytes to be transferred as part of this request.
376 * @param[in] scif_user_io_request This parameter points to the user's
378 * provide the necessary information for this callback.
380 * @return This method returns the number of payload data bytes to be
381 * transferred for this IO request.
388 * @brief This callback method asks the user to provide the data direction
389 * for this request.
391 * @param[in] scif_user_io_request This parameter points to the user's
393 * provide the necessary information for this callback.
395 * @return This method returns the value of SCI_IO_REQUEST_DATA_OUT,
404 * @brief This callback method asks the user to provide the address
410 * reference the very first scatter-gather element. This is
411 * important since this method is called for every scatter-gather
413 * - Regarding the last SGE: the user should return NULL from this
414 * method when this method is called and the SGL has exhausted
417 * @param[in] scif_user_io_request This parameter points to the user's
419 * provide the necessary information for this callback.
420 * @param[in] current_sge_address This parameter specifies the address for
435 * @brief This callback method asks the user to provide the contents of the
438 * @param[in] scif_user_io_request This parameter points to the user's
440 * provide the necessary information for this callback.
441 * @param[in] sge_address This parameter specifies the address for the
453 * @brief This callback method asks the user to provide the contents of the
456 * @param[in] scif_user_io_request This parameter points to the user's
458 * provide the necessary information for this callback.
459 * @param[in] sge_address This parameter specifies the address for the
462 * @return This method returns the length field specified inside the SGE
471 * @brief This callback method asks the user to provide the address for
472 * the command descriptor block (CDB) associated with this IO request.
474 * @param[in] scif_user_io_request This parameter points to the user's
476 * provide the necessary information for this callback.
478 * @return This method returns the virtual address of the CDB.
485 * @brief This callback method asks the user to provide the length of
486 * the command descriptor block (CDB) associated with this IO request.
488 * @param[in] scif_user_io_request This parameter points to the user's
490 * provide the necessary information for this callback.
492 * @return This method returns the length of the CDB.
499 * @brief This callback method asks the user to provide the Logical Unit (LUN)
500 * associated with this IO request.
502 * @note The contents of the value returned from this callback are defined
507 * @param[in] scif_user_io_request This parameter points to the user's
509 * provide the necessary information for this callback.
511 * @return This method returns the LUN associated with this request.
518 * @brief This callback method asks the user to provide the task attribute
519 * associated with this IO request.
521 * @note The contents of the value returned from this callback are defined
526 * @param[in] scif_user_io_request This parameter points to the user's
528 * provide the necessary information for this callback.
530 * @return This method returns the task attribute associated with this
538 * @brief This callback method asks the user to provide the command priority
539 * associated with this IO request.
541 * @note The contents of the value returned from this callback are defined
546 * @param[in] scif_user_io_request This parameter points to the user's
548 * provide the necessary information for this callback.
550 * @return This method returns the command priority associated with this
558 * @brief This method returns the Logical Unit to be utilized for this
561 * @note The contents of the value returned from this callback are defined
566 * @param[in] scif_user_task_request This parameter points to the user's
568 * provide the necessary information for this callback.
570 * @return This method returns the LUN associated with this request.
571 * @todo This should be U64?
578 * @brief This method returns the task management function to be utilized
579 * for this task request.
581 * @note The contents of the value returned from this callback are defined
586 * @param[in] scif_user_task_request This parameter points to the user's
588 * provide the necessary information for this callback.
590 * @return This method returns an unsigned byte representing the task
598 * @brief This method returns the task management IO tag to be managed.
600 * from this method may be ignored.
602 * @param[in] scif_user_task_request This parameter points to the user's
604 * provide the necessary information for this callback.
606 * @return This method returns an unsigned 16-bit word depicting the IO
614 * @brief This callback method asks the user to provide the virtual
617 * @param[in] scif_user_task_request This parameter points to the user's
619 * provide the necessary information for this callback.
621 * @return This method returns the virtual address for the response data buffer
622 * associated with this IO request.
629 * @brief This callback method asks the user to provide the length of the
632 * @param[in] scif_user_task_request This parameter points to the user's
634 * provide the necessary information for this callback.
636 * @return This method returns the length of the response buffer data
637 * associated with this IO request.
644 * @brief In this method the user is expected to log the supplied
647 * that this is an error from the framework.
649 * @param[in] logger_object This parameter specifies the logger object
650 * associated with this message.
651 * @param[in] log_object_mask This parameter specifies the log objects
652 * for which this message is being generated.
653 * @param[in] log_message This parameter specifies the message to be logged.
665 * @brief In this method the user is expected to log the supplied warning
668 * that this is a warning from the framework.
670 * @param[in] logger_object This parameter specifies the logger object
671 * associated with this message.
672 * @param[in] log_object_mask This parameter specifies the log objects
673 * for which this message is being generated.
674 * @param[in] log_message This parameter specifies the message to be logged.
686 * @brief In this method the user is expected to log the supplied debug
689 * that this is a debug message from the framework.
691 * @param[in] logger_object This parameter specifies the logger object
692 * associated with this message.
693 * @param[in] log_object_mask This parameter specifies the log objects
694 * for which this message is being generated.
695 * @param[in] log_message This parameter specifies the message to be logged.
708 * @brief In this method the user is expected to log the supplied function
711 * that this is a function trace (i.e. entry/exit) message from the
714 * @param[in] logger_object This parameter specifies the logger object
715 * associated with this message.
716 * @param[in] log_object_mask This parameter specifies the log objects
717 * for which this message is being generated.
718 * @param[in] log_message This parameter specifies the message to be logged.
731 * @brief In this method the user is expected to log the supplied state
734 * fact that this is an error from the framework.
736 * @param[in] logger_object This parameter specifies the logger object
737 * associated with this message.
738 * @param[in] log_object_mask This parameter specifies the log objects
739 * for which this message is being generated.
740 * @param[in] log_message This parameter specifies the message to be logged.
753 * @brief This callback method informs the framework user that something
757 * This callback is called by the framework outside of discovery or
763 * stopping/reset process, the framework user should not expect this call
766 * @param[in] controller This parameter specifies the controller object
767 * with which this callback is associated.
768 * @param[in] domain This parameter specifies the domain object with
769 * which this callback is associated.
780 * @brief This callback method informs the framework user that a previously
783 * @param[in] controller This parameter specifies the controller object
784 * with which this callback is associated.
785 * @param[in] domain This parameter specifies the domain object with
786 * which this callback is associated.
787 * @param[in] completion_status This parameter indicates the results of the
799 * @brief This callback method informs the framework user that a previously
802 * @param[in] controller This parameter specifies the controller object
803 * with which this callback is associated.
804 * @param[in] domain This parameter specifies the domain object with
805 * which this callback is associated.
806 * @param[in] completion_status This parameter indicates the results of the
818 * @brief This callback method informs the framework user that the domain
822 * @param[in] controller This parameter specifies the controller object
823 * with which this callback is associated.
824 * @param[in] domain This parameter specifies the domain object with
825 * which this callback is associated.
835 * @brief This callback method informs the framework user that the domain
839 * @param[in] controller This parameter specifies the controller object
840 * with which this callback is associated.
841 * @param[in] domain This parameter specifies the domain object with
842 * which this callback is associated.
852 * @brief This callback method informs the framework user that a new
855 * @param[in] controller This parameter specifies the controller object
856 * with which this callback is associated.
857 * @param[in] domain This parameter specifies the domain object with
858 * which this callback is associated.
859 * @param[in] sas_address This parameter specifies the SAS address of
861 * @param[in] protocols This parameter specifies the protocols
874 * @brief This callback method informs the framework user that a new
877 * @param[in] controller This parameter specifies the controller object
878 * with which this callback is associated.
879 * @param[in] domain This parameter specifies the domain object with
880 * which this callback is associated.
881 * @param[in] containing_device This parameter specifies the remote
883 * @param[in] smp_response This parameter specifies the SMP response
896 * @brief This callback method informs the framework user that a device
899 * @param[in] controller This parameter specifies the controller object
900 * with which this callback is associated.
901 * @param[in] domain This parameter specifies the domain object with
902 * which this callback is associated.
903 * @param[in] remote_device This parameter specifies the device object with
904 * which this callback is associated.
915 * @brief This callback method informs the framework user that the remote
918 * @param[in] controller This parameter specifies the controller object
919 * with which this callback is associated.
920 * @param[in] domain This parameter specifies the domain object with
921 * which this callback is associated.
922 * @param[in] remote_device This parameter specifies the device object with
923 * which this callback is associated.
934 * @brief This callback method informs the framework user that the remote
938 * @param[in] controller This parameter specifies the controller object
939 * with which this callback is associated.
940 * @param[in] domain This parameter specifies the domain object with
941 * which this callback is associated.
942 * @param[in] remote_device This parameter specifies the device object with
943 * which this callback is associated.
954 * @brief This callback method informs the framework user that the remote
955 * device failed. This typically occurs shortly after the device
958 * @param[in] controller This parameter specifies the controller object
959 * with which this callback is associated.
960 * @param[in] domain This parameter specifies the domain object with
961 * which this callback is associated.
962 * @param[in] remote_device This parameter specifies the device object with
963 * which this callback is associated.
964 * @param[in] status This parameter specifies the specific failure condition
965 * associated with this device failure.
979 * @brief This callback method creates an OS specific deferred task
983 * @param[in] controller This parameter specifies the controller object
984 * with which this callback is associated.
994 * @brief This callback method schedules a OS specific deferred task.
996 * @param[in] controller This parameter specifies the controller
997 * object with which this callback is associated.
998 * @param[in] start_internal_io_task_routine This parameter specifies the
1000 * @param[in] context This parameter specifies a handle to a parameter
1013 * @brief This method will be invoked to allocate memory dynamically.
1015 * @param[in] controller This parameter represents the controller
1017 * @param[out] mde This parameter represents the memory descriptor to
1029 * @brief This method will be invoked to allocate memory dynamically.
1031 * @param[in] controller This parameter represents the controller
1033 * @param[out] mde This parameter represents the memory descriptor to