驱动绑定 【ChatGPT】

简介: 驱动绑定 【ChatGPT】

驱动绑定

驱动绑定是将设备与能够控制它的设备驱动程序关联起来的过程。通常由总线驱动程序处理这一过程,因为总线特定的结构用于表示设备和驱动程序。使用通用设备和设备驱动程序结构后,大部分绑定可以使用通用代码完成。

总线

总线类型结构包含系统中该总线类型上的所有设备列表。当为设备调用device_register时,它会被插入到该列表的末尾。总线对象还包含该总线类型上的所有驱动程序列表。当为驱动程序调用driver_register时,它会被插入到该列表的末尾。这两个事件触发驱动程序绑定。

device_register

当添加新设备时,会遍历总线的驱动程序列表以找到支持该设备的驱动程序。为了确定支持情况,设备的设备ID必须与驱动程序支持的设备ID之一匹配。比较ID的格式和语义是特定于总线的。与其尝试推导复杂的状态机和匹配算法,不如由总线驱动程序提供一个回调函数来比较设备与驱动程序的ID。如果找到匹配项,则总线返回1;否则返回0。

int match(struct device * dev, struct device_driver * drv);

如果找到匹配项,则设备的驱动程序字段被设置为该驱动程序,并调用驱动程序的探测回调函数。这使得驱动程序有机会验证它确实支持硬件,并且处于工作状态。

设备类

在成功完成探测后,设备将在其所属的类中注册。设备驱动程序属于一个且仅属于一个类,这在驱动程序的devclass字段中设置。调用devclass_add_device将设备枚举到类中,并实际上在类中注册设备,这是通过类的register_dev回调函数完成的。

驱动程序

当驱动程序附加到设备时,设备被插入到驱动程序的设备列表中。

sysfs

在总线的“devices”目录中创建一个符号链接,指向物理层次结构中设备的目录。

在驱动程序的“devices”目录中创建一个符号链接,指向物理层次结构中设备的目录。

在类的目录中为设备创建一个目录。在该目录中创建一个符号链接,指向sysfs树中设备的物理位置。

可以创建一个符号链接(尽管目前尚未执行此操作),指向设备的物理目录,指向其类目录或类的顶级目录。还可以创建一个指向其驱动程序目录的符号链接。

driver_register

当添加新驱动程序时,过程几乎与上述相同。遍历总线的设备列表以找到匹配项。跳过已经有驱动程序的设备。遍历所有设备,尽可能将尽可能多的设备绑定到驱动程序。

移除

当设备被移除时,其引用计数最终将变为0。当引用计数为0时,调用驱动程序的移除回调函数。它将从驱动程序的设备列表中移除,并将驱动程序的引用计数减一。两者之间的所有符号链接都将被移除。

当驱动程序被移除时,会遍历其支持的设备列表,并为每个设备调用驱动程序的移除回调函数。设备将从该列表中移除,并移除符号链接。

相关文章
|
2月前
|
Linux API
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
|
2月前
|
测试技术 Linux API
GPIO 驱动接口 【ChatGPT】
GPIO 驱动接口 【ChatGPT】
|
2月前
设备驱动基础设施 【ChatGPT】
设备驱动基础设施 【ChatGPT】
|
2月前
|
Linux 程序员 编译器
将驱动程序移植到新的驱动模型 【ChatGPT】
将驱动程序移植到新的驱动模型 【ChatGPT】
|
2月前
|
设计模式 Linux 开发者
设备驱动设计模式 【ChatGPT】
设备驱动设计模式 【ChatGPT】
|
2月前
|
设计模式 Linux
驱动模型 【ChatGPT】
驱动模型 【ChatGPT】
|
3月前
|
人工智能 自然语言处理 搜索推荐
chatgpt这么火,现在AI搜索引擎有哪些呢?
国外AI搜索引擎包括ChatGPT,擅长自然语言处理与内容生成;Google Bard,提供智能个性化搜索体验;Microsoft Bing集成GPT模型增强智能检索;Perplexity AI以简洁答案及文献引用著称;Neeva强调隐私保护与无广告服务。国内方面,天工AI支持多种功能如知识问答与代码编程;腾讯元宝基于混元模型助力内容创造与学习;360AI搜索以精准全面的信息搜索见长;秘塔AI专注提升写作质量和效率;开搜AI搜索提供个性化智能搜索服务。以上引擎均利用先进AI技术提升用户体验。更多详情参阅[AI搜索合集](zhangfeidezhu.com/?page_id=651)。
109 8
chatgpt这么火,现在AI搜索引擎有哪些呢?
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
HuggingGPT是一个框架,它使用大型语言模型(如ChatGPT)作为控制器来管理和协调Hugging Face上的AI模型,以语言作为通用接口解决多模态和领域的复杂AI任务。
56 0
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
|
3月前
|
机器学习/深度学习 人工智能 算法
为什么ChatGPT等AI大模型都是基于Python开发?
为什么ChatGPT等AI大模型都是基于Python开发?
|
3月前
|
人工智能 自然语言处理 Linux
免费ChatGPT4o灵办AI可体验浏览器插件
灵办AI就是您所需的最佳助手!我们为您带来了一款多功能AI工具,ChatGPT4o不仅能为您提供精准翻译,还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI,真正让工作和学习变得轻松高效!一款多功能智能助手,旨在提升工作和学习效率。它提供实时翻译、对话问答、搜索、写作和网页阅读等服务,支持多种浏览器和操作系统,帮助用户随时获取信息,打破语言障碍,优化内容创作和信息处理。
114 0