当前位置: 首页 > news >正文

网站品牌栏目建设情况网站是怎么建立起来的

网站品牌栏目建设情况,网站是怎么建立起来的,动漫做暧昧视频网站,各网站文风文章目录 input_handle结构体详解配对的input设备与input事件处理器实例input核心层对驱动层和事件层之间的框架建立流程图 本文章中与input子系统相关的结构体可参考input子系统结构体解析 input函数路径:drivers/input/input.c input_handle结构体详解 input_ha…

文章目录

    • input_handle结构体详解
    • 配对的input设备与input事件处理器实例
    • input核心层对驱动层和事件层之间的框架建立流程图


本文章中与input子系统相关的结构体可参考input子系统结构体解析
input函数路径:drivers/input/input.c

input_handle结构体详解

input_handle结构体属于核心层,代表一个配对的input设备与input事件处理器。

int input_register_handle(struct input_handle *handle)
{struct input_handler *handler = handle->handler;struct input_dev *dev = handle->dev;int error;/* 获取互斥锁 */error = mutex_lock_interruptible(&dev->mutex);if (error)return error;/* 将handle的d_node,链接到其相关的input_dev的h_list链表中  */if (handler->filter)list_add_rcu(&handle->d_node, &dev->h_list);elselist_add_tail_rcu(&handle->d_node, &dev->h_list);/* 释放锁 */mutex_unlock(&dev->mutex);/* 将handle的h_node,链接到其相关的input_handler的h_list链表中 */list_add_tail_rcu(&handle->h_node, &handler->h_list);if (handler->start)handler->start(handle);return 0;
}
EXPORT_SYMBOL(input_register_handle);

配对的input设备与input事件处理器实例

当 input设备注册Input_register_device 和 一个新的input事件注册input_register_handler 匹配上,都会调用回调函数handler->connect(handler, dev, id)

以事件处理器evdev为例:

/* drivers/input/evdev.c */
static int evdev_connect(struct input_handler *handler, struct input_dev *dev,const struct input_device_id *id)
{struct evdev *evdev;int minor;int dev_no;int error;/* 获取次设备号,从evdev_table中找到一个未使用的最小的数组项,最大值32 */minor = input_get_new_minor(EVDEV_MINOR_BASE, EVDEV_MINORS, true);if (minor < 0) {error = minor;pr_err("failed to reserve new minor: %d\n", error);return error;}/* 分配空间 */evdev = kzalloc(sizeof(struct evdev), GFP_KERNEL);if (!evdev) {error = -ENOMEM;goto err_free_minor;}/* 初始化client_list链表头,代表多少应用读写这个设备 */INIT_LIST_HEAD(&evdev->client_list);    spin_lock_init(&evdev->client_lock);  /* 加锁 */ mutex_init(&evdev->mutex);  /*  */init_waitqueue_head(&evdev->wait);  /* 初始化等待队列,当evdev没有数据可读时,就 在 该队列上睡眠 */evdev->exist = true;  /* 设备存在 */dev_no = minor;if (dev_no < EVDEV_MINOR_BASE + EVDEV_MINORS)dev_no -= EVDEV_MINOR_BASE;dev_set_name(&evdev->dev, "event%d", dev_no);  /* 设置设备名为eventX */evdev->handle.dev = input_get_device(dev);  /* 获取设备 */evdev->handle.name = dev_name(&evdev->dev);  /* 设备名称 */evdev->handle.handler = handler;  /* handler绑定 */  evdev->handle.private = evdev;  /* evdev数据指向 */evdev->dev.devt = MKDEV(INPUT_MAJOR, minor);  /* sysfs下的设备号 */evdev->dev.class = &input_class;  /* 将input_class作为设备类 */evdev->dev.parent = &dev->dev;  /* input_dev作为evdev的父设备 */evdev->dev.release = evdev_free;  /* 释放函数 */device_initialize(&evdev->dev);  /* 初始化设备 *//* 注册一个handle处理事件 */error = input_register_handle(&evdev->handle);    if (error)goto err_free_evdev;cdev_init(&evdev->cdev, &evdev_fops);  /* 字符设备初始化 */error = cdev_device_add(&evdev->cdev, &evdev->dev);  /* 添加字符设备 */if (error)goto err_cleanup_evdev;return 0;err_cleanup_evdev:evdev_cleanup(evdev);
err_unregister_handle:input_unregister_handle(&evdev->handle);
err_free_evdev:put_device(&evdev->dev);
err_free_minor:input_free_minor(minor);return error;
}

(1)保存驱动设备名字,event0是表示input子系统,驱动名字就由event1、event2…递增
(2)保存驱动设备的主次设备号,其中主设备号INPUT_MAJOR=13,次设备号=EVSEV_MINOR_BASE+驱动程序本身设备号。
(3)会在/sys/class/input类下创建驱动设备event%d,比如键盘驱动event1
(4)最终进入input_register_handler()函数来注册handle。


input核心层对驱动层和事件层之间的框架建立流程图

在这里插入图片描述
input核心层对驱动层和事件层之间的框架建立流程图

http://www.wangmingla.cn/news/143418.html

相关文章:

  • 做aa视频网站google谷歌搜索引擎入口
  • 商城手机网站建设多少钱优化设计六年级上册数学答案
  • 做网站费用联系方式百度sem竞价托管公司
  • 企业网站的作用北京seo技术交流
  • 网页传奇版seo优化排名教程百度技术
  • 文做网站长沙正规关键词优化价格从优
  • 软件推广接单平台刷关键词排名seo软件
  • 沈阳网站建设公司排名西宁网站seo
  • 河源网站开发微信公众号怎么推广
  • 青年人爱看的网站定制网站建设电话
  • 梧州网站建设贝尔利百度霸屏推广
  • 视频点播服务器北京网站优化校学费
  • 北京网页设计公司招聘sem推广和seo的区别
  • 重庆营销型网站建设价格企业查询网站
  • 国外的营销网站麒麟seo
  • 个人网站可以做资讯吗?百度指数数据分析平台入口
  • 建盏大师排名表2020青岛网站seo诊断
  • 网站托管怎做网络营销企业网站
  • 商业网站设计方案模板软文推广发布
  • 免费h5网站制作平台青岛网站建设公司电话
  • 怎么做本地婚姻介绍网站有没有推广app的平台
  • 论坛网站建设教程网页设计工资一般多少
  • 电子商务网站建设选择服务器要考虑的因素有合肥seo建站
  • 网站开发专利申请电商平台怎么推广
  • nas可做网站服务器吗网站建设主要推广方式
  • 那些语言可以建网站seo监控
  • 网站被k后是怎样的如何进行搜索引擎优化?
  • 网牛网站建设整站seo技术
  • 福州网站建设方案谷歌google官网下载
  • 夏天做那个网站致富快速优化排名公司推荐