Lines Matching refs:hdr
26 static int bsg_transport_check_proto(struct sg_io_v4 *hdr) in bsg_transport_check_proto() argument
28 if (hdr->protocol != BSG_PROTOCOL_SCSI || in bsg_transport_check_proto()
29 hdr->subprotocol != BSG_SUB_PROTOCOL_SCSI_TRANSPORT) in bsg_transport_check_proto()
36 static int bsg_transport_fill_hdr(struct request *rq, struct sg_io_v4 *hdr, in bsg_transport_fill_hdr() argument
42 job->request_len = hdr->request_len; in bsg_transport_fill_hdr()
43 job->request = memdup_user(uptr64(hdr->request), hdr->request_len); in bsg_transport_fill_hdr()
47 if (hdr->dout_xfer_len && hdr->din_xfer_len) { in bsg_transport_fill_hdr()
55 uptr64(hdr->din_xferp), hdr->din_xfer_len, in bsg_transport_fill_hdr()
76 static int bsg_transport_complete_rq(struct request *rq, struct sg_io_v4 *hdr) in bsg_transport_complete_rq() argument
85 hdr->device_status = job->result & 0xff; in bsg_transport_complete_rq()
86 hdr->transport_status = host_byte(job->result); in bsg_transport_complete_rq()
87 hdr->driver_status = driver_byte(job->result); in bsg_transport_complete_rq()
88 hdr->info = 0; in bsg_transport_complete_rq()
89 if (hdr->device_status || hdr->transport_status || hdr->driver_status) in bsg_transport_complete_rq()
90 hdr->info |= SG_INFO_CHECK; in bsg_transport_complete_rq()
91 hdr->response_len = 0; in bsg_transport_complete_rq()
99 if (job->reply_len && hdr->response) { in bsg_transport_complete_rq()
100 int len = min(hdr->max_response_len, job->reply_len); in bsg_transport_complete_rq()
102 if (copy_to_user(uptr64(hdr->response), job->reply, len)) in bsg_transport_complete_rq()
105 hdr->response_len = len; in bsg_transport_complete_rq()
109 hdr->dout_resid = 0; in bsg_transport_complete_rq()
115 hdr->din_resid = 0; in bsg_transport_complete_rq()
117 hdr->din_resid = rsp_len - job->reply_payload_rcv_len; in bsg_transport_complete_rq()
119 hdr->din_resid = 0; in bsg_transport_complete_rq()