TMIOCMD (直接) tmscsi 设备驱动程序 ioctl 操作
用途
将 SCSI 命令直接发送到连接的设备。
注: 并非所有 SCSI I/O 控制器都支持此操作。
描述
注意: TMIOCMD 操作是一个非常强大的操作。 在发出任何常规 SCSI 命令之前,呼叫方必须非常小心,因为这可能会对连接的设备, SCSI 总线上的其他 SCSI 设备或者甚至一般系统可用性产生负面影响。 仅当没有其他方法可用于在连接的设备上运行所需功能时,才应使用此参数。 此操作至少需要 dev_config 个权限才能运行。
TMIOCMD 操作提供将 SCSI 命令直接发送到连接的设备的方法。 仅对于发起方方式设备,才允许执行此操作。 它使调用者能够发出特定 SCSI 命令,这些命令不受设备驱动程序直接支持。 调用者负责与 SCSI 命令的发送相关的任何和所有错误恢复。 发出该命令时,设备驱动程序不会执行任何错误恢复。 设备驱动程序不记录运行该命令时发生的错误。
此命令的 arg 参数指定 /usr/include/sys/scsi.h 文件中定义的 sc_iocmd 结构的地址。 调用者填写 SCSI 命令描述符块区域,命令长度 (SCSI 命令块长度) ,命令的超时值,以及flags:NONE. 如果涉及数据传输,那么将显示数据长度和缓冲区指针区域以及 读取 (_READ) 标志。flags字段,必须填写。 读取 (_READ) 设置为值 1 以指示命令的数据传输是传入的,而 读取 (_READ) 设置 0 值 0 以指示数据是传出的。 如果没有数据传输,那么这些字段和标志将设置为 0 个值。
目标方式设备驱动程序将构建相应的命令块以执行此操作,其中包括根据此设备实例的配置信息在 3 命令中的 3 位逻辑单元号 (LUN) 标识中执行此操作。 将生成返回的 错误号 全局变量,并且status validity,SCSI bus status和adapter status字段将更新以反映命令的完成状态。 这些状态区域在 /usr/include/sys/scsi.h 文件中定义。
文件
| 项 | 描述 |
|---|---|
| /dev/tmscsi0, /dev/tmscsi1,..., /dev/tmscsin | 支持通过 SCSI 目标方式设备驱动程序进行处理器到处理器的通信。 |