v4l2 ioctl 学习总结
来源:互联网 发布:cad软件全称 编辑:程序博客网 时间:2024/06/08 17:48
你可能观察到用户空间对V4L2设备的操作基本都是ioctl来实现的,V4L2设备都有大量可操作的功能(配置寄存器),所以V4L2的ioctl也是十分庞大的。它是一个怎样的框架,是怎么实现的呢?
Ioctl框架是由v4l2_ioctl.c文件实现,文件中定义结构体数组v4l2_ioctls,可以看做是ioctl指令和回调函数的关系表。用户空间调用系统调用ioctl,传递下来ioctl指令,然后通过查找此关系表找到对应回调函数。
IOCTL调用的流程图如下:
用户空间通过打开/dev/目录下的设备节点,获取到文件的file结构体,通过系统调用ioctl把cmd和arg传入到内核。通过一系列的调用后最终会调用到__video_do_ioctl函数,然后通过cmd检索v4l2_ioctls[],判断是INFO_FL_STD还是INFO_FL_FUNC。如果是INFO_FL_STD会直接调用到视频设备驱动中video_device->v4l2_ioctl_ops函数集。如果是INFO_FL_FUNC会先调用到v4l2自己实现的标准回调函数,然后根据arg再调用到video_device->v4l2_ioctl_ops或v4l2_fh->v4l2_ctrl_handler函数集。
0 0
- v4l2 ioctl 学习总结
- win32 IOCTL学习总结
- V4L2之ioctl错误
- V4L2 IOCTL参数说明
- v4l2 编程接口 IOCTL
- v4l2编程接口-----ioctl
- v4l2 ioctl框架分析
- 【Linux】Linux学习总结-ioctl
- v4l2 编程接口 — ioctl
- 学习ioctl
- jni 调用V4L2使用ioctl设置v4l2摄像头参数
- v4l2 编程接口(一) — ioctl
- v4l2 编程接口(一) — ioctl
- v4l2 编程接口(一) — ioctl
- v4l2文档之——basic ioctl
- v4l2 编程接口(一) — ioctl
- v4l2 编程接口(一) — ioctl
- v4l2 编程接口(一) — ioctl
- 线程的停止、守护线程、join()方法
- 两段代码掌握php session
- 约数个数定理及实现
- Struts2框架安全缺陷
- ActiveMQ消息的延时和定时投递
- v4l2 ioctl 学习总结
- Excel获取Sheet表名
- ROS机器人Diego 1#制作(十二)SLAM导航的配置
- c++小知识点5.0
- SW4Stm32开发环境搭建
- 面试题4附加答案
- 彻底修改 Windows 系统用户名 完美实现修改管理员帐号
- 戏说春秋一三令五申
- 逻辑推理 - 归纳推理