struct cdev结构体和cdev_init和cdev_add函数

在Linux内核2.6之后,字符设备的注册不再使用register_chrdev,而是通过cdev_alloc、cdev_init、cdev_add这一系列方法进行。cdev_alloc分配cdev结构,cdev_init结合file_operations初始化,cdev_add用于注册设备,最后cdev_del用于注销设备。
摘要由CSDN通过智能技术生成

Linux内核2.6版本以前,注册一个字符设备的的经典方法是使用register_chrdev,相应的从设备中注销字符设备的方法是unregister_chrdev,而在2.6版本以后,字符设备函数的注册与注销使用的是如下一套方法:

#include<linux/cdev.h> 
struct cdev *cdev_alloc(void);//分配一个独立的cdev结构 
void cdev_init(struct cdev *dev,struct file_operations *fops);//初始化cdev结构 
int cdev_add(struct cdev *dev,dev_t num,unsigned int count); 
void cdev_del(struct cdev *dev);//移除一个字符设备

内核 中每个字符 设备 都对应一个 cdev 结构的变量,下面是它的定义:
linux-2.6.22/include/linux/cdev.h
struct cdev {
struct kobject kobj;          // 每个cdev 都是一个 kobject
struct module *owner;       // 指向实现驱动的模块
const struct file_operatio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值