【发布时间】:2011-05-10 22:06:34
【问题描述】:
如何通过内核访问块级存储(不使用 scsi 库)?
我的意图是通过网络实现块级存储协议以用于学习目的,几乎与 SCSI 的工作方式相同。请求将由发起者生成并发送到目标(两个用户空间程序),目标调用内核模块并使用 TCP 协议将数据返回给发起者。
到目前为止,我已经设法构建了一个简单的“Hello”模块并运行它(我是内核编程的新手),但无法继续进行块访问。
找了好久,在linux/fs.h中找到了struct buffer_head * bread(int dev,int block),但是编译器报错。
error: implicit declaration of function ‘bread’
请帮忙,也请随时就内核编程提出建议。
谢谢!
bread 在旧内核中使用。
在linux/blkdev.h 中查看struct request *blk_get_request(struct request_queue *, int, gfp_t);
访问块设备必须通过内核完成。
【问题讨论】:
-
奇怪! SO 上没有内核开发人员吗?
标签: c linux-kernel kernel-module