SCSI感测数据格式和MODE sense控制页



SCSI参考手册定义了两种类型的感测数据格式-固定的和基于描述符的可变的(第2.4章)。"控制模式页(0Ah)"(4.3.8)包含一个D_sense位,该位被定义为:

D_SENSE(描述符格式感测数据)位

  • 0描述符格式感测数据(D_sense)位设置为零指定设备服务器应返回固定格式在与CHECK CONDITION状态相同的I_T_L_Q关系事务中返回感测数据时的感测数据。

  • 1设置为1的D_SENSE位指定设备服务器在返回时应返回描述符格式感测数据将同一I_T_L_Q nexus事务中的数据感测为CHECK CONDITION状态,2.4.1中定义的情况除外。

我的问题是关于SCSI目标端的此位解释-如果此位为1,目标服务器是否有义务以描述符格式返回感测数据?或者这只是一种的可能性以它想要的任何格式返回这些数据?

感测数据的第一个字节可以用于确定其格式,因此SCSI启动器实际上不需要D_sense位值来决定如何解码接收到的感测数据。

我之所以问这个问题,是因为我正在开发一款应该模拟SCSI目标的软件,所以我需要消化多个SCSI文档才能使其正确。

如果SCSI目标实现了设置此位的功能,则它必须能够返回任一感测格式。SCSI目标可以选择只提供此位进行读取而不进行写入,然后它决定返回的格式。

还请注意,为了正确符合SCSI,您还需要在"掩码模式"中提供模式页面,显示模式页面的哪些位是可设置的。

最新更新