支持scsi命令的双向传输:
1. 涉及的文件:bsg.c
2. 关联:
当scsi探测设备时,会添加设备,并在sysfs中增加接口文件:
调用scsi_sysfs_add_sdev,其又会调用bsg_register_queue
3. 操作函数:
static const struct file_operations bsg_fops = {
.read = bsg_read,
.write = bsg_write,
.poll = bsg_poll,
.open = bsg_open,
.release = bsg_release,
.unlocked_ioctl = bsg_ioctl,
.owner = THIS_MODULE,
}
4. 操作函数:bsg_ioctl
其处理SG_IO的方式:将sg_io_v4 map 到request,其中会生成bio,之后提交bio。(如果是写请求,会多生成一个读request,来作为next request)
阅读(1171) | 评论(0) | 转发(0) |