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