56 #ifndef _ISCI_REQUEST_H_
57 #define _ISCI_REQUEST_H_
83 #define IREQ_COMPLETE_IN_TARGET 0
84 #define IREQ_TERMINATED 1
87 #define IREQ_PENDING_ABORT 4
88 #define IREQ_TC_ABORT_POSTED 5
89 #define IREQ_ABORT_PATH_ACTIVE 6
90 #define IREQ_NO_AUTO_FREE_TAG 7
123 #define SCU_SGL_SIZE ((SCI_MAX_SCATTER_GATHER_ELEMENTS + 1) / 2)
138 struct ssp_response_iu
rsp;
227 #define REQUEST_STATES {\
231 C(REQ_STP_UDMA_WAIT_TC_COMP),\
232 C(REQ_STP_UDMA_WAIT_D2H),\
233 C(REQ_STP_NON_DATA_WAIT_H2D),\
234 C(REQ_STP_NON_DATA_WAIT_D2H),\
235 C(REQ_STP_PIO_WAIT_H2D),\
236 C(REQ_STP_PIO_WAIT_FRAME),\
237 C(REQ_STP_PIO_DATA_IN),\
238 C(REQ_STP_PIO_DATA_OUT),\
239 C(REQ_ATAPI_WAIT_H2D),\
240 C(REQ_ATAPI_WAIT_PIO_SETUP),\
241 C(REQ_ATAPI_WAIT_D2H),\
242 C(REQ_ATAPI_WAIT_TC_COMP),\
243 C(REQ_TASK_WAIT_TC_COMP),\
244 C(REQ_TASK_WAIT_TC_RESP),\
245 C(REQ_SMP_WAIT_RESP),\
246 C(REQ_SMP_WAIT_TC_COMP),\
274 sci_io_request_get_dma_addr(
struct isci_request *ireq,
void *virt_addr)
277 char *requested_addr = (
char *)virt_addr;
278 char *base_addr = (
char *)ireq;
280 BUG_ON(requested_addr < base_addr);
281 BUG_ON((requested_addr - base_addr) >=
sizeof(*ireq));
286 #define isci_request_access_task(req) ((req)->ttype_ptr.io_task_ptr)
288 #define isci_request_access_tmf(req) ((req)->ttype_ptr.tmf_task_ptr)
303 static inline int isci_task_is_ncq_recovery(
struct sas_task *
task)