博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux查看usb鼠标是否启动,Linux USB鼠标驱动注解及测试
阅读量:1541 次
发布时间:2019-04-21

本文共 805 字,大约阅读时间需要 2 分钟。

参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为多个

部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。

下文阴影部分为注解。

一、    驱动加载部分

static int __init usb_mouse_init(void)

{

int retval = usb_register(&usb_mouse_driver);//注册鼠标驱动

if (retval == 0)

info(DRIVER_VERSION ":" DRIVER_DESC);

return retval;

}

其中usb_mouse_driver的定义为:

static struct usb_driver usb_mouse_driver = {

.owner        = THIS_MODULE,

.name        = "usbmouse",

.probe        = usb_mouse_probe,

.disconnect    = usb_mouse_disconnect,

.id_table    = usb_mouse_id_table,

};

假如

注册成功的话,将会调用usb_mouse_probe。那么什么时刻

才算注册成功呢?

和其它驱动注册流程

一样,只有在其对应的“总线”上发觉

匹配的“装备

”才会调用probe。总线匹配的要领

和细致

总线有关

,如:platform_bus_type中是判断驱动名称和平台装备

名称能不能

相似

;那如何

确认usb总线的匹配要领

呢?

Usb装备

是注册在usb_bus_type总线下的。查看usb_bus_type的匹配要领

struct bus_type usb_bus_type = {

.name =        "usb",

.match =    usb_device_match,

.hotplug =    usb_hotplug,

转载地址:http://opedy.baihongyu.com/

你可能感兴趣的文章
缓存与数据库不一致
查看>>
Gson的入门使用
查看>>
SpringBoot之集成Spring AOP
查看>>
Linux免密码登录设置
查看>>
JVM命令使用演示
查看>>
面试中并发类问题的准备和学习
查看>>
2018 Java 后端工程师的书单推荐
查看>>
使用IPVS实现Kubernetes入口流量负载均衡
查看>>
ETCD原理详细解析
查看>>
Docker 快速删除所有容器
查看>>
解决删除镜像时image is referenced in multiple repositories
查看>>
java-CPU Cache 与缓存行
查看>>
Java中的锁原理、锁优化、CAS、AQS
查看>>
ConcurrentHashMap(Java 8)
查看>>
ConcurrentHashMap原理分析(1.7与1.8)
查看>>
分布式系统session一致性的问题
查看>>
微服务架构-分布式事务详解
查看>>
微服务--分布式事务的实现方法及替代方案
查看>>
2PC/3PC到底是啥
查看>>
分布式锁的实现方式
查看>>