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)20 static 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)25 static 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