diff --git a/include/scsi-lowlevel.h b/include/scsi-lowlevel.h index ffe11aa..b974c9b 100644 --- a/include/scsi-lowlevel.h +++ b/include/scsi-lowlevel.h @@ -517,6 +517,12 @@ struct scsi_inquiry_block_device_characteristics { enum scsi_inquiry_pagecode pagecode; int medium_rotation_rate; + int product_type; + int wabereq; + int wacereq; + int nominal_form_factor; + int fuab; + int vbuls; }; enum scsi_inquiry_provisioning_type { diff --git a/lib/scsi-lowlevel.c b/lib/scsi-lowlevel.c index 3a89519..77fedfe 100644 --- a/lib/scsi-lowlevel.c +++ b/lib/scsi-lowlevel.c @@ -1329,6 +1329,12 @@ scsi_inquiry_unmarshall_block_device_characteristics(struct scsi_task *task) inq->pagecode = task_get_uint8(task, 1); inq->medium_rotation_rate = task_get_uint16(task, 4); + inq->product_type = task_get_uint8(task, 6); + inq->wabereq = (task_get_uint8(task, 7) >> 6) & 0x03; + inq->wacereq = (task_get_uint8(task, 7) >> 4) & 0x03; + inq->nominal_form_factor = task_get_uint8(task, 7) & 0x0f; + inq->fuab = !!(task_get_uint8(task, 8) & 0x02); + inq->vbuls = !!(task_get_uint8(task, 8) & 0x01); return inq; }