简单字符设备中设计的结构体
来源:互联网 发布:剃头软件叫什么 编辑:程序博客网 时间:2024/06/06 18:32
struct file 结构体
文件结构体代表一个打开的文件,系统中每个打开的文件在内核空间中都会有一个关联的struct file结构体。它有内核在打开文件时创建,并传递给在文件操作上的任何一个函数。在文件的所有实例都关闭后,内核释放这个数据结构,在内核创建和驱动源码中,struct file的指针通常命名为filp file。
在struct file结构体中主要关注两个变量:
- struct file_opertaion *f_op; 与文件的各种操作相关,如read,write等;
- void *private_data; 在驱动调用open之前,open系统设置其有null值,我们可以将其作为自己需要的数据或者不管它;
struct inode 结构体
VFS inode包含文件访问权限,属主,组,大小,生成时间,访问时间,最终修改时间等信息。是linux系统最基本的单位,也是文件系统连接任何子目录的桥梁。内核使用ionde结构体在内核内部表示一个文件,一个设备文件只有一个inode,但是可以有多个file描述符;
在struct inode结构体中关注一个重要的变量:
- dev_t i_rdev: 用来存储设备号;
struct file_operation
linux用file_operation结构访问驱动程序函数,这个结构的每一个成员的名字都对应着调用,用户进程利用设备文件进行例如read/open等操作的时候,系统调用通过设备文件的主设备号找到相应的设备号驱动程序。然后读取这个数据结构相应的函数指针,接着把控制权交给该函数,这是linux设备驱动工作的基本原理。
在字节设备驱动中,通过这个结构体实现的调用有open,read,write,release,ioctl等;
字符设备(cdev结构体)
这是一个字符设备,此字符设备的一个重要的变量就是const struct file_operations *ops,字符设备通过这个指针变量找到file_operation中的调用,从而执行驱动程序。
阅读全文
1 0
- 简单字符设备中设计的结构体
- 字符设备三个重要的结构体
- 字符设备的核心结构体 kobj_map 结构
- 字符驱动设备中几个重要的结构体(cdev,file_operations,inode,file)
- 关于linux中字符设备驱动程序的设计
- 字符设备驱动程序的设计
- 简单的字符设备驱动程序
- 简单的字符设备()
- cdev 结构体与字符设备的注册
- cdev 结构体与字符设备的注册
- Linux下字符设备驱动程序的结构
- 字符设备结构体 cdev 初始化
- 字符设备结构体 cdev 初始化
- 字符设备驱动结构
- 字符设备驱动结构
- 字符设备驱动结构
- Linux字符设备驱动程序的设计
- Linux字符设备驱动程序的设计
- linux系统weblogic12c安装
- windows之取消微软账号与本地账户的绑定
- 生成二维码
- 设置jsp页面编码格式
- dom4j 解析xml
- 简单字符设备中设计的结构体
- JAVA集合类Collection浅析
- 详解PHP操作MySQL数据库
- Layui富文本编辑器图片上传接口(.NET C#)
- vim实现复制字符串到命令行
- Spring aop原理
- YTU.2520: 小慧唱卡拉OK
- idea自定义数据导出格式
- git commit简介