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
73 * @brief This callback method asks the user to create a timer and provide
74 * a handle for this timer for use in further timer interactions.
80 * @param[in] controller This parameter specifies the controller with
81 * which this timer is to be associated.
82 * @param[in] timer_callback This parameter specifies the callback method
84 * @param[in] cookie This parameter specifies a piece of information that
85 * the user must retain. This cookie is to be supplied by the
88 * @return This method returns a handle to a timer object created by the
90 * relating to this timer.
99 * @brief This callback method asks the user to destroy the supplied timer.
101 * @param[in] controller This parameter specifies the controller with
102 * which this timer is to associated.
103 * @param[in] timer This parameter specifies the timer to be destroyed.
113 * @brief This callback method asks the user to start the supplied timer.
122 * @param[in] controller This parameter specifies the controller with
123 * which this timer is to associated.
124 * @param[in] timer This parameter specifies the timer to be started.
125 * @param[in] milliseconds This parameter specifies the number of
127 * is allowed to round this value up where necessary.
138 * @brief This callback method asks the user to stop the supplied timer.
140 * @param[in] controller This parameter specifies the controller with
141 * which this timer is to associated.
142 * @param[in] timer This parameter specifies the timer to be stopped.
152 * @brief This method is called when the core requires the OS driver
153 * to stall execution. This method is utilized during initialization
156 * @param[in] microseconds This parameter specifies the number of
158 * is allowed to round this value up where necessary.
167 * @brief This user callback will inform the user that the controller has
170 * @param[in] controller This parameter specifies the controller that was
172 * @param[in] completion_status This parameter specifies the results of
184 * @brief This user callback will inform the user that the controller has
187 * @param[in] controller This parameter specifies the controller that was
189 * @param[in] completion_status This parameter specifies the results of
201 * @brief This user callback will inform the user that an IO request has
204 * @param[in] controller This parameter specifies the controller on
206 * @param[in] remote_device This parameter specifies the remote device on
207 * which this IO request is completing.
208 * @param[in] io_request This parameter specifies the IO request that has
210 * @param[in] completion_status This parameter specifies the results of
224 * @brief This method simply returns the virtual address associated
227 * @note This callback is not utilized in the fast path. The expectation
228 * is that this method is utilized for items such as SCSI to ATA
231 * @param[in] scic_user_io_request This parameter points to the user's
233 * provide the necessary information for this callback.
234 * @param[in] byte_offset This parameter specifies the offset into the data
248 * @brief This user callback will inform the user that a task management
251 * @param[in] controller This parameter specifies the controller on
253 * @param[in] remote_device This parameter specifies the remote device on
254 * which this task management request is completing.
255 * @param[in] task_request This parameter specifies the task management
257 * @param[in] completion_status This parameter specifies the results of
272 * @brief This callback method asks the user to provide the physical
276 * @param[in] controller This parameter is the core controller object
278 * @param[in] io_request This parameter is the io request object handle
280 * @param[in] virtual_address This parameter is the virtual address which
296 * @brief This callback method asks the user to provide the number of
297 * bytes to be transferred as part of this request.
299 * @param[in] scic_user_io_request This parameter points to the user's
301 * provide the necessary information for this callback.
303 * @return This method returns the number of payload data bytes to be
304 * transferred for this IO request.
311 * @brief This callback method asks the user to provide the data direction
312 * for this request.
314 * @param[in] scic_user_io_request This parameter points to the user's
316 * provide the necessary information for this callback.
318 * @return This method returns the value of SCI_IO_REQUEST_DATA_OUT or
327 * @brief This method is presently utilized in the PIO path,
328 * copies from UF buffer to the SGL buffer. This method
331 * @param[in] scic_user_io_request. This parameter points to the user's
333 * provide the necessary information for this callback.
335 * @param[in] offset. This parameter specifies the offset into the data
353 * @brief This callback method asks the user to provide the address
359 * reference the very first scatter-gather element. This is
360 * important since this method is called for every scatter-gather
362 * - Regarding the last SGE: the user should return NULL from this
363 * method when this method is called and the SGL has exhausted
366 * @param[in] scic_user_io_request This parameter points to the user's
368 * provide the necessary information for this callback.
369 * @param[in] current_sge_address This parameter specifies the address for
384 * @brief This callback method asks the user to provide the contents of the
387 * @param[in] scic_user_io_request This parameter points to the user's
389 * provide the necessary information for this callback.
390 * @param[in] sge_address This parameter specifies the address for the
402 * @brief This callback method asks the user to provide the contents of the
405 * @param[in] scic_user_io_request This parameter points to the user's
407 * provide the necessary information for this callback.
408 * @param[in] sge_address This parameter specifies the address for the
411 * @return This method returns the length field specified inside the SGE
420 * @brief This callback method asks the user to provide the address for
421 * the command descriptor block (CDB) associated with this IO request.
423 * @param[in] scic_user_io_request This parameter points to the user's
425 * provide the necessary information for this callback.
427 * @return This method returns the virtual address of the CDB.
434 * @brief This callback method asks the user to provide the length of
435 * the command descriptor block (CDB) associated with this IO request.
437 * @param[in] scic_user_io_request This parameter points to the user's
439 * provide the necessary information for this callback.
441 * @return This method returns the length of the CDB.
448 * @brief This callback method asks the user to provide the Logical Unit (LUN)
449 * associated with this IO request.
451 * @note The contents of the value returned from this callback are defined
456 * @param[in] scic_user_io_request This parameter points to the user's
458 * provide the necessary information for this callback.
460 * @return This method returns the LUN associated with this request.
461 * @todo This should be U64?
468 * @brief This callback method asks the user to provide the task attribute
469 * associated with this IO request.
471 * @note The contents of the value returned from this callback are defined
476 * @param[in] scic_user_io_request This parameter points to the user's
478 * provide the necessary information for this callback.
480 * @return This method returns the task attribute associated with this
488 * @brief This callback method asks the user to provide the command priority
489 * associated with this IO request.
491 * @note The contents of the value returned from this callback are defined
496 * @param[in] scic_user_io_request This parameter points to the user's
498 * provide the necessary information for this callback.
500 * @return This method returns the command priority associated with this
508 * @brief This callback method asks the user if the received RX frame data is
512 * @param[in] scic_user_io_request This parameter points to the user's IO
514 * necessary information for this callback.
516 * @return This method returns TRUE if the SCI core should copy the received
525 * @brief This callback method asks the user to return the SAT protocol
526 * definition for this IO request. This method is only called by the
529 * @param[in] scic_user_io_request This parameter points to the user's IO
531 * necessary information for this callback.
533 * @return This method returns one of the sat.h defined protocols for the
541 * @brief This callback method asks the user to indicate if the IO is initially
544 * @param[in] scic_user_io_request This parameter points to the user's IO
546 * necessary information for this callback.
548 * @return This method returns TRUE if the request is initial constructed.
549 * This method returns FALSE if the request is constructed using recycled
550 * memory. For many scic user, this method mostly always returns TRUE.
557 * @brief This method returns the Logical Unit to be utilized for this
560 * @note The contents of the value returned from this callback are defined
565 * @param[in] scic_user_task_request This parameter points to the user's
567 * provide the necessary information for this callback.
569 * @return This method returns the LUN associated with this request.
570 * @todo This should be U64?
577 * @brief This method returns the task management function to be utilized
578 * for this task request.
580 * @note The contents of the value returned from this callback are defined
585 * @param[in] scic_user_task_request This parameter points to the user's
587 * provide the necessary information for this callback.
589 * @return This method returns an unsigned byte representing the task
597 * @brief This method returns the task management IO tag to be managed.
599 * from this method may be ignored.
601 * @param[in] scic_user_task_request This parameter points to the user's
603 * provide the necessary information for this callback.
605 * @return This method returns an unsigned 16-bit word depicting the IO
613 * @brief This callback method asks the user to provide the virtual
616 * @param[in] scic_user_task_request This parameter points to the user's
618 * provide the necessary information for this callback.
620 * @return This method returns the virtual address for the response data buffer
621 * associated with this IO request.
628 * @brief This callback method asks the user to provide the length of the
631 * @param[in] scic_user_task_request This parameter points to the user's
633 * provide the necessary information for this callback.
635 * @return This method returns the length of the response buffer data
636 * associated with this IO request.
643 * @brief In this method the user is expected to log the supplied
646 * that this is an error from the core.
648 * @param[in] logger_object This parameter specifies the logger object
649 * associated with this message.
650 * @param[in] log_object_mask This parameter specifies the log objects
651 * for which this message is being generated.
652 * @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 core.
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.
687 * @brief In this method the user is expected to log the supplied debug
690 * that this is a debug message from the core.
692 * @param[in] logger_object This parameter specifies the logger object
693 * associated with this message.
694 * @param[in] log_object_mask This parameter specifies the log objects
695 * for which this message is being generated.
696 * @param[in] log_message This parameter specifies the message to be logged.
709 * @brief In this method the user is expected to log the supplied function
712 * that this is a function trace (i.e. entry/exit) message from the
715 * @param[in] logger_object This parameter specifies the logger object
716 * associated with this message.
717 * @param[in] log_object_mask This parameter specifies the log objects
718 * for which this message is being generated.
719 * @param[in] log_message This parameter specifies the message to be logged.
732 * @brief In this method the user is expected to log the supplied state
735 * fact that this is a warning from the core.
737 * @param[in] logger_object This parameter specifies the logger object
738 * associated with this message.
739 * @param[in] log_object_mask This parameter specifies the log objects
740 * for which this message is being generated.
741 * @param[in] log_message This parameter specifies the message to be logged.
754 * @brief In this method the user must return the base address register (BAR)
758 * @param[in] bar_number This parameter depicts the BAR index/number to be read.
770 * @brief In this method the user must read from PCI memory via access.
771 * This method is used for access to memory space and IO space.
774 * @param[in] address This parameter depicts the address from
779 * @todo This PCI memory access calls likely need to be optimized into macro?
787 * @brief In this method the user must write to PCI memory via access.
788 * This method is used for access to memory space and IO space.
791 * @param[in] address This parameter depicts the address into
793 * @param[out] write_value This parameter depicts the value being written
796 * @todo This PCI memory access calls likely need to be optimized into macro?
805 * @brief This method informs the user when a stop operation on the port
808 * @param[in] controller This parameter represents the controller which
810 * @param[in] port This parameter specifies the SCI port object for which
812 * @param[in] completion_status This parameter specifies the status for
824 * @brief This method informs the user when a hard reset on the port
825 * has completed. This hard reset could have been initiated by the
828 * @param[in] controller This parameter represents the controller which
830 * @param[in] port This parameter specifies the SCI port object for which
832 * @param[in] completion_status This parameter specifies the status for
844 * @brief This method informs the user that the port is now in a ready
847 * @param[in] controller This parameter represents the controller which
849 * @param[in] port This parameter specifies the SCI port object for which
860 * @brief This method informs the user that the port is now not in a ready
863 * @param[in] controller This parameter represents the controller which
865 * @param[in] port This parameter specifies the SCI port object for which
867 * @param[in] reason_code This parameter specifies the reason for the port
879 * @brief This method informs the SCI Core user that a phy/link became
882 * to port mappings. If these mappings are violated, then this
885 * @param[in] controller This parameter represents the controller which
887 * @param[in] port This parameter specifies the SCI port object for which
889 * @param[in] phy This parameter specifies the phy that came ready, but the
901 * @brief This callback method informs the user that a broadcast change
904 * @param[in] controller This parameter represents the controller which
906 * @param[in] port This parameter specifies the SCI port object for which
908 * on which the primitive was received is not part of a port, this
910 * @param[in] phy This parameter specifies the phy on which the primitive
922 * @brief This callback method informs the user that a broadcast SES
925 * @param[in] controller This parameter represents the controller which
927 * @param[in] port This parameter specifies the SCI port object for which
929 * on which the primitive was received is not part of a port, this
931 * @param[in] phy This parameter specifies the phy on which the primitive
943 * @brief This callback method informs the user that a broadcast EXPANDER
946 * @param[in] controller This parameter represents the controller which
948 * @param[in] port This parameter specifies the SCI port object for which
950 * on which the primitive was received is not part of a port, this
952 * @param[in] phy This parameter specifies the phy on which the primitive
964 * @brief This callback method informs the user that a broadcast ASYNCHRONOUS
967 * @param[in] controller This parameter represents the controller which
969 * @param[in] port This parameter specifies the SCI port object for which
971 * on which the primitive was received is not part of a port, this
973 * @param[in] phy This parameter specifies the phy on which the primitive
985 * @brief This callback method informs the user that a phy has become
989 * @param[in] controller This parameter represents the controller
991 * @param[in] port This parameter specifies the port object for which the
993 * this parameter can be SCI_INVALID_HANDLE
994 * @param[in] phy This parameter specifies the phy object for which the
1006 * @brief This callback method informs the user that a phy is no longer
1010 * @param[in] controller This parameter represents the controller
1012 * @param[in] port This parameter specifies the port object for which the
1014 * this parameter can be SCI_INVALID_HANDLE
1015 * @param[in] phy This parameter specifies the phy object for which the
1027 * @brief This user callback method will inform the user that a start
1030 * @param[in] controller This parameter specifies the core controller
1032 * @param[in] remote_device This parameter specifies the remote device
1034 * @param[in] completion_status This parameter specifies the completion
1046 * @brief This user callback method will inform the user that a stop
1049 * @param[in] controller This parameter specifies the core controller
1051 * @param[in] remote_device This parameter specifies the remote device
1053 * @param[in] completion_status This parameter specifies the completion
1065 * @brief This user callback method will inform the user that a remote
1068 * @param[in] controller This parameter specifies the core controller
1070 * @param[in] remote_device This parameter specifies the remote device
1081 * @brief This user callback method will inform the user that a remote
1085 * @param[in] controller This parameter specifies the core controller
1087 * @param[in] remote_device This parameter specifies the remote device
1089 * @param[in] reason_code This paramete specifies the reason the remote
1102 * @brief This user callback method will inform the user that this controller
1116 * @brief This user callback gets from stp packet io's user request
1127 * @brief This user callback gets from stp packet io's user request