78、深入理解块设备驱动开发

深入理解块设备驱动开发

块设备注册

在完成各种定义之后,需要设置文件操作结构。从内核 2.3.26 版本开始,块设备采用了与字符设备不同的设置方法,这让情况变得有些复杂。引入 block_device_operations 结构是为了简化内核内部操作,方便块设备驱动开发者跟踪相关操作。然而,许多开发者对块层仍不满意,预计未来版本还会有更多更改。

为了实现最大程度的可移植性,下面展示了两种不同内核版本的设置方式,以及如何在编译时测试内核版本:

#if LINUX_VERSION_CODE < 0x20326
/* 如果内核版本低于 2.3.36,则使用此结构 */
static struct file_operations radimo_fops = {
    read:               block_read,            /* 通用块读取 */
    write:              block_write,           /* 通用块写入 */
    ioctl:              radimo_ioctl,
    open:               radimo_open,
    release:            radimo_release,
    check_media_change: radimo_media_change,
    revalidate:         radimo_revalidate
};
#else
/* 在较新的内核中,使用此结构 */
static struct block_device_o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值