1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _SCSI_SCSI_REQUEST_H 3 #define _SCSI_SCSI_REQUEST_H 4 5 #include <linux/blk-mq.h> 6 7 #define BLK_MAX_CDB 16 8 9 struct scsi_request { 10 unsigned char __cmd[BLK_MAX_CDB]; 11 unsigned char *cmd; 12 unsigned short cmd_len; 13 int result; 14 unsigned int sense_len; 15 unsigned int resid_len; /* residual count */ 16 int retries; 17 void *sense; 18 }; 19 scsi_req(struct request * rq)20static inline struct scsi_request *scsi_req(struct request *rq) 21 { 22 return blk_mq_rq_to_pdu(rq); 23 } 24 scsi_req_free_cmd(struct scsi_request * req)25static inline void scsi_req_free_cmd(struct scsi_request *req) 26 { 27 if (req->cmd != req->__cmd) 28 kfree(req->cmd); 29 } 30 31 void scsi_req_init(struct scsi_request *req); 32 33 #endif /* _SCSI_SCSI_REQUEST_H */ 34