Line data Source code
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 : 20 0 : static inline struct scsi_request *scsi_req(struct request *rq) 21 : { 22 0 : return blk_mq_rq_to_pdu(rq); 23 : } 24 : 25 0 : static inline void scsi_req_free_cmd(struct scsi_request *req) 26 : { 27 0 : if (req->cmd != req->__cmd) 28 0 : kfree(req->cmd); 29 : } 30 : 31 : void scsi_req_init(struct scsi_request *req); 32 : 33 : #endif /* _SCSI_SCSI_REQUEST_H */