blob: b06f28c749085b0901c809ae506ab3ec9d8dc464 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Christoph Hellwig82ed4db2017-01-27 09:46:29 +01002#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;
Christoph Hellwig17d53632017-04-20 16:03:01 +020013 int result;
Christoph Hellwig82ed4db2017-01-27 09:46:29 +010014 unsigned int sense_len;
15 unsigned int resid_len; /* residual count */
Christoph Hellwig64c7f1d2017-04-05 19:18:12 +020016 int retries;
Christoph Hellwig82ed4db2017-01-27 09:46:29 +010017 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
Bart Van Asschec8d9cf22017-06-20 11:15:42 -070031void scsi_req_init(struct scsi_request *req);
Christoph Hellwig82ed4db2017-01-27 09:46:29 +010032
33#endif /* _SCSI_SCSI_REQUEST_H */