只要文件存在,就会有唯一对应的inode号,且相应的会存在一个struct inode结构体。在应用层通过open()打开一个设备文件,会对应产生一个inode号,通过inode号可以找到文件的inode结构体
根据inode结构体中文件对应的驱动对象结构体指针找到驱动对象结构体
在驱动对象结构体中找到操作方法结构体指针,在驱动程序中定义一个操作方法结构体变量并初始化,实现具体的打开关闭,读写等功能
open函数回调到驱动中的open操作方法的路线:
open()--->sys_open()--->struct inode结构体--->struct cdev结构体--->struct file_operations结构体--->mycdev_open
注册及注销流程
static int __init mycdev_init(void)
{
//1.分配对象空间
//2.初始化对象
//3.申请设备号
//4.注册字符设备驱动对象
//5.向上提交目录
//6.向上
static void __exit mycdev_exit(void)
{
//1.销毁设备节点
//2.释放目录空间
//3.注销字符设备驱动对象
//4.释放设备号
//5.释放设备空间
}文章来源:https://www.toymoban.com/news/detail-498684.html
提交设备节点信息文章来源地址https://www.toymoban.com/news/detail-498684.html
到了这里,关于端午作业1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!