/qemu/scsi/ |
H A D | utils.c | 98 SCSISense sense; in scsi_parse_sense_buf() local 106 sense.key = in_buf[2]; in scsi_parse_sense_buf() 107 sense.asc = in_buf[12]; in scsi_parse_sense_buf() 108 sense.ascq = in_buf[13]; in scsi_parse_sense_buf() 113 sense.key = in_buf[1]; in scsi_parse_sense_buf() 114 sense.asc = in_buf[2]; in scsi_parse_sense_buf() 115 sense.ascq = in_buf[3]; in scsi_parse_sense_buf() 118 return sense; in scsi_parse_sense_buf() 121 int scsi_build_sense_buf(uint8_t *out_buf, size_t size, SCSISense sense, in scsi_build_sense_buf() argument 129 buf[2] = sense.key; in scsi_build_sense_buf() [all …]
|
H A D | qemu-pr-helper.c | 128 uint8_t *sense; member 142 memset(data->sense, 0, PR_HELPER_SENSE_SIZE); in do_sgio_worker() 147 io_hdr.sbp = data->sense; in do_sgio_worker() 158 scsi_build_sense(data->sense, sense_code); in do_sgio_worker() 163 scsi_build_sense(data->sense, sense_code); in do_sgio_worker() 180 static int coroutine_fn do_sgio(int fd, const uint8_t *cdb, uint8_t *sense, in do_sgio() argument 188 .sense = sense, in do_sgio() 318 static int coroutine_fn mpath_reconstruct_sense(int fd, int r, uint8_t *sense) in mpath_reconstruct_sense() argument 333 int ret = do_sgio(fd, cdb, sense, NULL, &sz, SG_DXFER_NONE); in mpath_reconstruct_sense() 338 scsi_build_sense(sense, mpath_generic_sense(r)); in mpath_reconstruct_sense() [all …]
|
H A D | pr-helper.h | 37 uint8_t sense[PR_HELPER_SENSE_SIZE]; member
|
/qemu/hw/scsi/ |
H A D | scsi-bus.c | 741 const struct SCSISense sense = SENSE_CODE(LUN_NOT_SUPPORTED); in scsi_target_send_command() local 744 sense, fixed_sense); in scsi_target_send_command() 827 const int memset_off = offsetof(SCSIRequest, sense) in scsi_req_alloc() 828 + sizeof(req->sense); in scsi_req_alloc() 973 ret = scsi_convert_sense(req->sense, req->sense_len, buf, len, true); in scsi_req_get_sense() 994 return scsi_convert_sense(dev->sense, dev->sense_len, buf, len, fixed); in scsi_device_get_sense() 997 void scsi_req_build_sense(SCSIRequest *req, SCSISense sense) in scsi_req_build_sense() argument 1000 sense.key, sense.asc, sense.ascq); in scsi_req_build_sense() 1001 req->sense_len = scsi_build_sense(req->sense, sense); in scsi_req_build_sense() 1487 void scsi_device_report_change(SCSIDevice *dev, SCSISense sense) in scsi_device_report_change() argument [all …]
|
H A D | spapr_vscsi.c | 81 uint8_t sense[SCSI_SENSE_BUF_SIZE]; member 222 req->sense[0] = (0x1 << 7 | 0x70); in vscsi_makeup_sense() 224 req->sense[2] = key; in vscsi_makeup_sense() 226 req->sense[7] = 0xa; /* 10 bytes */ in vscsi_makeup_sense() 228 req->sense[12] = asc; in vscsi_makeup_sense() 229 req->sense[13] = ascq; in vscsi_makeup_sense() 276 memcpy(iu->srp.rsp.data, req->sense, sense_data_len); in vscsi_send_rsp() 566 req->senselen = scsi_req_get_sense(req->sreq, req->sense, in vscsi_command_complete() 567 sizeof(req->sense)); in vscsi_command_complete() 569 req->sense[0], req->sense[1], req->sense[2], req->sense[3], in vscsi_command_complete() [all …]
|
H A D | scsi-generic.c | 77 SCSISense sense; in scsi_command_complete_noio() local 87 status = scsi_sense_from_errno(-ret, &sense); in scsi_command_complete_noio() 89 scsi_req_build_sense(&r->req, sense); in scsi_command_complete_noio() 131 r->io_header.mx_sb_len = sizeof(r->req.sense); in execute_command() 132 r->io_header.sbp = r->req.sense; in execute_command() 287 SCSISense sense = in scsi_read_complete() local 288 scsi_parse_sense_buf(r->req.sense, r->io_header.sb_len_wr); in scsi_read_complete() 295 if (sense.key == ILLEGAL_REQUEST && in scsi_read_complete() 307 if (sense.key) { in scsi_read_complete()
|
H A D | vmw_pvscsi.c | 499 pvscsi_write_sense(PVSCSIRequest *r, uint8_t *sense, int len) in pvscsi_write_sense() argument 502 r->sense_key = sense[(sense[0] & 2) ? 1 : 2]; in pvscsi_write_sense() 503 cpu_physical_memory_write(r->req.senseAddr, sense, r->cmp.senseLen); in pvscsi_write_sense() 564 uint8_t sense[SCSI_SENSE_BUF_SIZE]; in pvscsi_command_complete() local 566 scsi_req_get_sense(pvscsi_req->sreq, sense, sizeof(sense)); in pvscsi_command_complete() 569 pvscsi_write_sense(pvscsi_req, sense, sense_len); in pvscsi_command_complete()
|
H A D | scsi-disk.c | 135 static void scsi_check_condition(SCSIDiskReq *r, SCSISense sense) in scsi_check_condition() argument 137 trace_scsi_disk_check_condition(r->req.tag, sense.key, sense.asc, in scsi_check_condition() 138 sense.ascq); in scsi_check_condition() 139 scsi_req_build_sense(&r->req, sense); in scsi_check_condition() 226 SCSISense sense = SENSE_CODE(NO_SENSE); in scsi_handle_rw_error() local 248 status = scsi_sense_from_errno(-ret, &sense); in scsi_handle_rw_error() 256 error = scsi_sense_buf_to_errno(r->req.sense, sizeof(r->req.sense)); in scsi_handle_rw_error() 292 scsi_sense_buf_is_guest_recoverable(r->req.sense, in scsi_handle_rw_error() 293 sizeof(r->req.sense)))) { in scsi_handle_rw_error() 313 scsi_req_build_sense(&r->req, sense); in scsi_handle_rw_error() [all …]
|
/qemu/include/scsi/ |
H A D | utils.h | 49 int scsi_build_sense(uint8_t *buf, SCSISense sense); 51 int scsi_build_sense_buf(uint8_t *buf, size_t max_size, SCSISense sense, 126 int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size); 127 bool scsi_sense_buf_is_guest_recoverable(const uint8_t *sense, size_t sense_size); 144 int scsi_sense_from_errno(int errno_value, SCSISense *sense); 145 int scsi_sense_from_host_status(uint8_t host_status, SCSISense *sense);
|
/qemu/include/hw/scsi/ |
H A D | scsi.h | 44 uint8_t sense[SCSI_SENSE_BUF_SIZE]; member 79 uint8_t sense[SCSI_SENSE_BUF_SIZE]; member 136 void (*change)(SCSIBus *bus, SCSIDevice *dev, SCSISense sense); 204 void scsi_bus_set_ua(SCSIBus *bus, SCSISense sense); 219 void scsi_req_build_sense(SCSIRequest *req, SCSISense sense); 233 void scsi_device_purge_requests(SCSIDevice *sdev, SCSISense sense); 234 void scsi_device_set_ua(SCSIDevice *sdev, SCSISense sense); 235 void scsi_device_report_change(SCSIDevice *dev, SCSISense sense);
|
/qemu/tests/qtest/ |
H A D | virtio-scsi-test.c | 151 g_assert_cmpint(resp.sense[0], ==, 0x70); /* Fixed format sense buffer */ in qvirtio_scsi_init() 152 g_assert_cmpint(resp.sense[2], ==, UNIT_ATTENTION); in qvirtio_scsi_init() 153 g_assert_cmpint(resp.sense[12], ==, 0x29); /* POWER ON */ in qvirtio_scsi_init() 154 g_assert_cmpint(resp.sense[13], ==, 0x00); in qvirtio_scsi_init() 257 g_assert_cmphex(resp.sense[0], ==, 0x70); in test_write_to_cdrom() 258 g_assert_cmphex(resp.sense[2], ==, DATA_PROTECT); in test_write_to_cdrom() 259 g_assert_cmphex(resp.sense[12], ==, 0x27); /* WRITE PROTECTED */ in test_write_to_cdrom() 260 g_assert_cmphex(resp.sense[13], ==, 0x00); /* WRITE PROTECTED */ in test_write_to_cdrom()
|
/qemu/hw/usb/ |
H A D | dev-uas.c | 101 uas_iu_sense sense; member 420 st->status.sense.status = status; in usb_uas_queue_sense() 421 st->status.sense.status_qualifier = cpu_to_be16(0); in usb_uas_queue_sense() 423 slen = scsi_req_get_sense(req->req, st->status.sense.sense_data, in usb_uas_queue_sense() 424 sizeof(st->status.sense.sense_data)); in usb_uas_queue_sense() 425 st->status.sense.sense_length = cpu_to_be16(slen); in usb_uas_queue_sense() 427 len = sizeof(uas_iu_sense) - sizeof(st->status.sense.sense_data) + slen; in usb_uas_queue_sense() 432 struct SCSISense sense) in usb_uas_queue_fake_sense() argument 437 st->status.sense.status = CHECK_CONDITION; in usb_uas_queue_fake_sense() 438 st->status.sense.status_qualifier = cpu_to_be16(0); in usb_uas_queue_fake_sense() [all …]
|
/qemu/hw/intc/ |
H A D | rx_icu.c | 104 switch (src->sense) { in rxicu_set_irq() 125 if (issue == 0 && src->sense == TRG_LEVEL) { in rxicu_set_irq() 152 if (icu->src[n_IRQ].sense != TRG_LEVEL) { in rxicu_ack_irq() 203 return icu->src[64 + reg].sense << R_IRQCR_IRQMD_SHIFT; in icu_read() 234 if (icu->src[reg].sense != TRG_LEVEL && val == 0) { in icu_write() 264 icu->src[64 + reg].sense = val >> R_IRQCR_IRQMD_SHIFT; in icu_write() 312 icu->src[i].sense = TRG_PEDGE; in rxicu_realize() 316 icu->src[irqno].sense = TRG_LEVEL; in rxicu_realize()
|
H A D | aspeed_vic.c | 74 if (s->sense & irq_mask) { in aspeed_vic_set_irq() 149 val = s->sense; in aspeed_vic_read() 160 val = s->raw & ~s->sense; in aspeed_vic_read() 258 s->raw &= ~(data & ~s->sense); in aspeed_vic_write() 303 s->sense = 0x1F07FFF8FFFFULL; in aspeed_vic_reset() 335 VMSTATE_UINT64(sense, AspeedVICState),
|
/qemu/contrib/vhost-user-scsi/ |
H A D | vhost-user-scsi.c | 145 memset(rsp->sense, 0, sizeof(rsp->sense)); in handle_cmd_sync() 147 rsp->sense[0] = 0x70; in handle_cmd_sync() 148 rsp->sense[2] = SCSI_SENSE_ILLEGAL_REQUEST; in handle_cmd_sync() 149 rsp->sense[7] = 10; in handle_cmd_sync() 150 rsp->sense[12] = 0x24; in handle_cmd_sync() 201 memcpy(rsp->sense, &task->datain.data[2], rsp->sense_len); in handle_cmd_sync()
|
/qemu/hw/display/ |
H A D | macfb.c | 81 uint8_t sense; member 346 uint8_t sense; in macfb_sense_read() local 350 if (macfb_sense->sense == 0x7) { in macfb_sense_read() 352 sense = 0; in macfb_sense_read() 356 sense = (~s->regs[DAFB_MODE_SENSE >> 2] & 7) | 3; in macfb_sense_read() 362 sense = (~s->regs[DAFB_MODE_SENSE >> 2] & 7) | 6; in macfb_sense_read() 368 sense = (~s->regs[DAFB_MODE_SENSE >> 2] & 7) | 5; in macfb_sense_read() 373 sense = (~macfb_sense->sense & 7) | in macfb_sense_read() 377 trace_macfb_sense_read(sense); in macfb_sense_read() 378 return sense; in macfb_sense_read()
|
/qemu/scripts/coccinelle/ |
H A D | qobject.cocci | 1 // Use QDict macros where they make sense 28 // Use QList macros where they make sense
|
H A D | use-g_new-etc.cocci | 1 // Use g_new() & friends where that makes obvious sense
|
/qemu/hw/ufs/ |
H A D | lu.c | 24 static void ufs_build_upiu_sense_data(UfsRequest *req, uint8_t *sense, in ufs_build_upiu_sense_data() argument 29 memcpy(req->rsp_upiu.sr.sense_data, sense, sense_len); in ufs_build_upiu_sense_data() 32 static void ufs_build_scsi_response_upiu(UfsRequest *req, uint8_t *sense, in ufs_build_scsi_response_upiu() argument 52 ufs_build_upiu_sense_data(req, sense, sense_len); in ufs_build_scsi_response_upiu() 69 ufs_build_scsi_response_upiu(req, scsi_req->sense, scsi_req->sense_len, in ufs_scsi_command_complete()
|
/qemu/pc-bios/s390-ccw/ |
H A D | virtio-scsi.c | 55 resp->sense_len ? scsi_cdb_asc_msg(resp->sense) in virtio_scsi_verify_response() 57 scsi_sense_response(resp->sense) == 0x70 ? ", sure" : "?", in virtio_scsi_verify_response() 373 uint8_t code = resp.sense[0] & SCSI_SENSE_CODE_MASK; in virtio_scsi_setup() 374 uint8_t sense_key = resp.sense[2] & SCSI_SENSE_KEY_MASK; in virtio_scsi_setup()
|
H A D | virtio-scsi.h | 52 uint8_t sense[VIRTIO_SCSI_SENSE_SIZE]; member
|
/qemu/include/hw/intc/ |
H A D | aspeed_vic.h | 40 uint64_t sense; member
|
H A D | rx_icu.h | 35 enum TRG_MODE sense; member
|
/qemu/docs/interop/ |
H A D | pr-helper.rst | 73 - 96 bytes for the SCSI sense data 77 The sense data is always sent to keep the protocol simple, even though
|
/qemu/block/ |
H A D | iscsi.c | 228 static int iscsi_translate_sense(struct scsi_sense *sense) in iscsi_translate_sense() argument 230 return scsi_sense_to_errno(sense->key, in iscsi_translate_sense() 231 (sense->ascq & 0xFF00) >> 8, in iscsi_translate_sense() 232 sense->ascq & 0xFF); in iscsi_translate_sense() 274 int error = iscsi_translate_sense(&task->sense); in iscsi_co_generic_cb() 977 acb->status = -iscsi_translate_sense(&acb->task->sense); in iscsi_aio_ioctl_cb() 1288 iTask.task->sense.key == SCSI_SENSE_ILLEGAL_REQUEST && in iscsi_co_pwrite_zeroes() 1289 (iTask.task->sense.ascq == SCSI_SENSE_ASCQ_INVALID_OPERATION_CODE || in iscsi_co_pwrite_zeroes() 1290 iTask.task->sense.ascq == SCSI_SENSE_ASCQ_INVALID_FIELD_IN_CDB)) { in iscsi_co_pwrite_zeroes() 1460 && task->sense.key == SCSI_SENSE_UNIT_ATTENTION) { in iscsi_readcapacity_sync() [all …]
|