Changeset View
Changeset View
Standalone View
Standalone View
head/sys/cam/scsi/scsi_pass.c
Show First 20 Lines • Show All 1,390 Lines • ▼ Show 20 Lines | case XPT_DEV_ADVINFO: | ||||
break; | break; | ||||
case XPT_NVME_ADMIN: | case XPT_NVME_ADMIN: | ||||
case XPT_NVME_IO: | case XPT_NVME_IO: | ||||
if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) | if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) | ||||
return (0); | return (0); | ||||
io_req->data_flags = ccb->ccb_h.flags & CAM_DATA_MASK; | io_req->data_flags = ccb->ccb_h.flags & CAM_DATA_MASK; | ||||
/* | |||||
* We only support a single virtual address for NVMe | |||||
*/ | |||||
if ((ccb->ccb_h.flags & CAM_DATA_MASK) != CAM_DATA_VADDR) | |||||
return (EINVAL); | |||||
data_ptrs[0] = &ccb->nvmeio.data_ptr; | data_ptrs[0] = &ccb->nvmeio.data_ptr; | ||||
lengths[0] = ccb->nvmeio.dxfer_len; | lengths[0] = ccb->nvmeio.dxfer_len; | ||||
dirs[0] = ccb->ccb_h.flags & CAM_DIR_MASK; | dirs[0] = ccb->ccb_h.flags & CAM_DIR_MASK; | ||||
num_segs = ccb->nvmeio.sglist_cnt; | |||||
seg_cnt_ptr = &ccb->nvmeio.sglist_cnt; | |||||
numbufs = 1; | numbufs = 1; | ||||
maxmap = softc->maxio; | maxmap = softc->maxio; | ||||
break; | break; | ||||
default: | default: | ||||
return(EINVAL); | return(EINVAL); | ||||
break; /* NOTREACHED */ | break; /* NOTREACHED */ | ||||
} | } | ||||
▲ Show 20 Lines • Show All 867 Lines • Show Last 20 Lines |