- 论坛徽章:
- 0
|
最近在写一个设备驱动,希望对每一个bio结构中的数据段的数据进行读出,我参考了前面OstrichFly兄的《写一个块设备驱动》一文
我利用bio_for_each_segment()这个宏
具体代码片段如下:
int j;
void *iovec_mem;
void *dsk_mem;
truct bio_vec *bvec;
bio_for_each_segment(bvec,mbio, j);
{
printk("get %d bytes data\n", bvec->bv_len);
iovec_mem = kmap(bvec->bv_page) + bvec->bv_offset;
memcpy(dsk_mem, iovec_mem, bvec->bv_len);
kunmap(bvec->bv_page);
printk("Data: %s",(char *)dsk_mem);
}
模块编译可以通过,而且可以正常加载,而且我对生成的文件格式化成ext3文件系统,就当我挂在文件系统的时候报 段错误,而rmmod卸载模块的时候,显示模块在使用中。
望指教,谢谢了:)一
[ 本帖最后由 weily0000 于 2009-2-19 15:33 编辑 ] |
|