devm_request_irq 返回值
时间: 2024-02-07 22:03:01 浏览: 44
devm_request_irq 是 Linux 内核中的一个函数,用于请求分配一个中断,并将中断处理函数与之关联。它的返回值表示请求中断是否成功。
devm_request_irq 的返回值有以下几种可能:
1. 成功:返回值为 0,表示成功地请求分配了中断,并成功地将中断处理函数与之关联。
2. 失败:返回一个负数,表示请求分配中断失败。常见的失败原因包括中断号无效、中断处理函数无效、中断请求失败等。
3. EPROBE_DEFER:返回值为 -EPROBE_DEFER,表示请求被推迟。这通常发生在设备驱动程序初始化过程中,当设备的资源还没有完全准备好时。
需要注意的是,devm_request_irq 是 devm 版本的函数,它会在设备被卸载时自动释放所分配的中断资源,因此不需要手动调用 irq_free 函数来释放中断。
相关问题
devm_request_irq函数
devm_request_irq函数是Linux内核中的一个函数,用于请求并注册一个中断处理程序。它的函数原型如下:
int devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id);
该函数与request_irq函数类似,但是使用了devm_前缀,表示该函数是通过设备模型管理的。dev参数是指向设备结构体的指针,irq参数是中断号,handler参数是中断处理函数,irqflags参数是中断标志,devname参数是设备名称,dev_id参数是设备标识。
通过调用devm_request_irq函数,可以方便地请求并注册一个中断处理程序,并且在设备释放时自动释放中断资源,避免了手动释放中断资源的繁琐过程。
#### 引用[.reference_title]
- *1* [linux devm_request_threaded_irq 函数接口说明](https://blog.csdn.net/lizhijun_buaa/article/details/130843035)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Linux 的中断](https://blog.csdn.net/u014134180/article/details/125036846)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【Linux 驱动开发】内核中断](https://blog.csdn.net/weixin_43589750/article/details/126282901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
devm_request_irq
`devm_request_irq` 是 Linux 内核中的一个函数,用于请求分配中断。它是 `request_irq` 函数的一种变体,可以避免在设备删除时忘记释放中断资源的问题,因为它会自动释放中断资源。它使用 `devres` 机制来自动管理中断资源的生命周期。在调用 `devm_request_irq` 时,需要提供设备对象、中断号、中断触发模式、中断处理函数和可选的中断名称。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)