输入子系统(1):数据结构总结

本文详细介绍了Linux内核输入子系统的三层结构:设备驱动层、核心层和事件处理层,以及重要的数据结构,如input_dev、evdev和input_table。通过这些数据结构,设备驱动可以注册事件并上报给用户空间。后续章节将进一步解析相关代码以加深理解。
摘要由CSDN通过智能技术生成

1:概述

输入子系统在linux内核中使用广泛,按键,鼠标,sensor类,touch等驱动都会用到输入子系统。输入子系统的结构分为以下三层:

1.1:设备驱动层

这一层需要用户在设备驱动中去实现,调用核心层的函数接口,完成输入设备的注册和并将发生的事件上报给子系统核心层;

1.2:输入子系统核心层

为驱动层和事件处理层提供函数接口,并且注册input字符设备,主设备号是13,次设备号为0~255,接受来自驱动层的上报事件,并最终通过事件处理层的接口,上报给用户,为设备驱动层和事件处理层架起一座桥梁;

1.3:事件处理层

实现了和用户层的接口,所有用户的操作都是通过事件处理层提供的接口进行;


2:输入子系统中重要的数据结构

2.1:input类数据结构:input_handle  input_handler  input_dev 

input_dev:代表一个输入设备,需要用户去填充并注册进内核,一个input_dev只能代表一个输入设备;


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值