vstor_packet
if (reqp->vstor_packet.vm_srb.cdb[0] != opcode) {
switch (reqp->vstor_packet.vm_srb.cdb[0]) {
struct vstor_packet vstor_packet;
reqp->vstor_packet.u.vm_srb.port =
reqp->vstor_packet.u.vm_srb.path_id =
reqp->vstor_packet.u.vm_srb.target_id = ccb->ccb_h.target_id;
reqp->vstor_packet.u.vm_srb.lun = ccb->ccb_h.target_lun;
reqp->vstor_packet.u.vm_srb.cdb_len = csio->cdb_len;
memcpy(&reqp->vstor_packet.u.vm_srb.u.cdb, csio->cdb_io.cdb_ptr,
memcpy(&reqp->vstor_packet.u.vm_srb.u.cdb, csio->cdb_io.cdb_bytes,
reqp->vstor_packet.u.vm_srb.win8_extension.time_out_value = 60;
reqp->vstor_packet.u.vm_srb.win8_extension.srb_flags |=
reqp->vstor_packet.u.vm_srb.data_in = WRITE_TYPE;
reqp->vstor_packet.u.vm_srb.win8_extension.srb_flags |=
reqp->vstor_packet.u.vm_srb.data_in = READ_TYPE;
reqp->vstor_packet.u.vm_srb.win8_extension.srb_flags |=
reqp->vstor_packet.u.vm_srb.data_in = UNKNOWN_TYPE;
reqp->vstor_packet.u.vm_srb.win8_extension.srb_flags |=
reqp->vstor_packet.u.vm_srb.data_in);
reqp->vstor_packet.u.vm_srb.data_in);
if (WRITE_TYPE == reqp->vstor_packet.u.vm_srb.data_in) {
struct vmscsi_req *vm_srb = &reqp->vstor_packet.u.vm_srb;
if (READ_TYPE == reqp->vstor_packet.u.vm_srb.data_in) {
struct vstor_packet *vstor_packet,
struct vstor_packet *vstor_packet;
vstor_packet = &request->vstor_packet;
vstor_packet->operation = VSTOR_OPERATION_CREATE_MULTI_CHANNELS;
vstor_packet->flags = REQUEST_COMPLETION_FLAG;
vstor_packet->u.multi_channels_cnt = request_subch;
vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request);
if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO ||
vstor_packet->status != 0) {
vstor_packet->operation, vstor_packet->status);
struct vstor_packet *vstor_packet;
vstor_packet = &request->vstor_packet;
vstor_packet->operation = VSTOR_OPERATION_BEGININITIALIZATION;
vstor_packet->flags = REQUEST_COMPLETION_FLAG;
vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request);
if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO ||
vstor_packet->status != 0) {
memset(vstor_packet, 0, sizeof(struct vstor_packet));
vstor_packet->operation = VSTOR_OPERATION_QUERYPROTOCOLVERSION;
vstor_packet->flags = REQUEST_COMPLETION_FLAG;
vstor_packet->u.version.major_minor =
vstor_packet->u.version.revision = 0;
vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request);
if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO) {
if (vstor_packet->status == 0) {
if (vstor_packet->status != 0) {
memset(vstor_packet, 0, sizeof(struct vstor_packet));
vstor_packet->operation = VSTOR_OPERATION_QUERYPROPERTIES;
vstor_packet->flags = REQUEST_COMPLETION_FLAG;
vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request);
if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO ||
vstor_packet->status != 0) {
max_subch = vstor_packet->u.chan_props.max_channel_cnt;
(vstor_packet->u.chan_props.flags &
memset(vstor_packet, 0, sizeof(struct vstor_packet));
vstor_packet->operation = VSTOR_OPERATION_ENDINITIALIZATION;
vstor_packet->flags = REQUEST_COMPLETION_FLAG;
vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request);
if (vstor_packet->operation != VSTOR_OPERATION_COMPLETEIO ||
vstor_packet->status != 0)
struct vstor_packet *vstor_packet;
vstor_packet = &request->vstor_packet;
vstor_packet->operation = VSTOR_OPERATION_RESETBUS;
vstor_packet->flags = REQUEST_COMPLETION_FLAG;
vstor_packet, VSTOR_PKT_SIZE,
struct vstor_packet *vstor_packet = &request->vstor_packet;
vstor_packet->flags |= REQUEST_COMPLETION_FLAG;
vstor_packet->u.vm_srb.length =
vstor_packet->u.vm_srb.sense_info_len = sense_buffer_size;
vstor_packet->u.vm_srb.transfer_len =
vstor_packet->operation = VSTOR_OPERATION_EXECUTESRB;
ch_sel = (vstor_packet->u.vm_srb.lun + curcpu) % sc->hs_nchan;
vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request);
vstor_packet, VSTOR_PKT_SIZE, (uint64_t)(uintptr_t)request);
printf("Unable to send packet %p ret %d", vstor_packet, ret);
struct vstor_packet *vstor_packet,
vm_srb = &vstor_packet->u.vm_srb;
request->vstor_packet.u.vm_srb.scsi_status = vm_srb->scsi_status;
request->vstor_packet.u.vm_srb.srb_status = vm_srb->srb_status;
request->vstor_packet.u.vm_srb.transfer_len = vm_srb->transfer_len;
uint8_t packet[roundup2(sizeof(struct vstor_packet), 8)];
struct vstor_packet *vstor_packet;
memcpy(&request->vstor_packet, packet,
sizeof(struct vstor_packet));
vstor_packet = (struct vstor_packet *)packet;
switch(vstor_packet->operation) {
#define VSTOR_PKT_SIZE (sizeof(struct vstor_packet) - vmscsi_size_delta)
vstor_packet, request);
"implemented.\n", vstor_packet->operation);