add Logical Block Provisioning VPD page (0xB2)
This commit is contained in:
@@ -59,11 +59,10 @@ func InquiryPage0x00(host int, cmd *api.SCSICommand) (*bytes.Buffer, uint16) {
|
|||||||
descBuf.WriteByte(0x80)
|
descBuf.WriteByte(0x80)
|
||||||
descBuf.WriteByte(0x83)
|
descBuf.WriteByte(0x83)
|
||||||
descBuf.WriteByte(0xB0)
|
descBuf.WriteByte(0xB0)
|
||||||
|
descBuf.WriteByte(0xB2)
|
||||||
/*
|
/*
|
||||||
TODO:
|
TODO:
|
||||||
descBuf.WriteByte(0x86)
|
descBuf.WriteByte(0x86)
|
||||||
descBuf.WriteByte(0xB0)
|
|
||||||
descBuf.WriteByte(0xB2)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
data = descBuf.Bytes()
|
data = descBuf.Bytes()
|
||||||
@@ -225,6 +224,44 @@ func InquiryPage0xB0(host int, cmd *api.SCSICommand) (*bytes.Buffer, uint16) {
|
|||||||
return buf, pageLength
|
return buf, pageLength
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func InquiryPage0xB2(host int, cmd *api.SCSICommand) (*bytes.Buffer, uint16) {
|
||||||
|
var (
|
||||||
|
buf = &bytes.Buffer{}
|
||||||
|
pageLength uint16 = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
|
//byte 0
|
||||||
|
if cmd.Device.Attrs.Online {
|
||||||
|
buf.WriteByte(PQ_DEVICE_CONNECTED | byte(cmd.Device.Attrs.DeviceType))
|
||||||
|
} else {
|
||||||
|
buf.WriteByte(PQ_DEVICE_NOT_CONNECT | byte(cmd.Device.Attrs.DeviceType))
|
||||||
|
}
|
||||||
|
//PAGE CODE
|
||||||
|
buf.WriteByte(0xB2)
|
||||||
|
|
||||||
|
//PAGE LENGTH
|
||||||
|
binary.Write(buf, binary.BigEndian, pageLength)
|
||||||
|
|
||||||
|
var lbpu byte
|
||||||
|
if cmd.Device.Attrs.Thinprovisioning {
|
||||||
|
lbpu = 1 << 7
|
||||||
|
}
|
||||||
|
|
||||||
|
// THRESHOLD EXPONENT
|
||||||
|
buf.WriteByte(0)
|
||||||
|
|
||||||
|
// LBPU | LBPWS | LBPWS10 | LBPRZ | ANC_SUP | DP
|
||||||
|
buf.WriteByte(lbpu)
|
||||||
|
|
||||||
|
// MINIMUM PERCENTAGE | PROVISIONING TYPE
|
||||||
|
buf.WriteByte(0)
|
||||||
|
|
||||||
|
// THRESHOLD PERCENTAGE
|
||||||
|
buf.WriteByte(0)
|
||||||
|
|
||||||
|
return buf, pageLength
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPCInquiry Implements SCSI INQUIRY command
|
* SPCInquiry Implements SCSI INQUIRY command
|
||||||
* The INQUIRY command requests the device server to return information regarding the logical unit and SCSI target device.
|
* The INQUIRY command requests the device server to return information regarding the logical unit and SCSI target device.
|
||||||
@@ -270,6 +307,8 @@ func SPCInquiry(host int, cmd *api.SCSICommand) api.SAMStat {
|
|||||||
buf, _ = InquiryPage0x83(host, cmd)
|
buf, _ = InquiryPage0x83(host, cmd)
|
||||||
case 0xB0:
|
case 0xB0:
|
||||||
buf, _ = InquiryPage0xB0(host, cmd)
|
buf, _ = InquiryPage0xB0(host, cmd)
|
||||||
|
case 0xB2:
|
||||||
|
buf, _ = InquiryPage0xB2(host, cmd)
|
||||||
default:
|
default:
|
||||||
goto sense
|
goto sense
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user