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

第10章:中断处理: Quick Reference

中断管理相关符号速查表

头文件符号 / 函数描述
<linux/interrupt.h>request_irq(unsigned int irq, irqreturn_t (*handler)(...), unsigned long flags, const char *dev_name, void *dev_id)注册中断处理程序,返回 0 表示成功,负值表示错误(如 -EBUSY
free_irq(unsigned int irq, void *dev_id)注销中断处理程序,dev_id 需与注册时一致(共享中断必填)
<linux/irq.h>can_request_irq(unsigned int irq, unsigned long flags)仅 i386 和 x86_64 架构可用,判断中断线是否可分配(返回非零表示可能成功,结果非绝对可靠)
<asm/signal.h>SA_INTERRUPTrequest_irq 的标志位,请求安装快速处理程序(当前 CPU 上禁用其他中断)
SA_SHIRQ标志位,允许中断线共享(需配合 dev_id 使用)
SA_SAMPLE_RANDOM标志位,表明中断时间戳可用于生成系统熵(增强随机数安全性)
-/proc/interrupts伪文件,显示各 IRQ 的中断计数、处理 CPU、控制器类型及关联设备名
/proc/stat伪文件,记录系统启动以来的总中断数及各 IRQ 的累计计数(包括已释放的中断)
-probe_irq_on(void)中断探测函数,返回未分配中断的位掩码,需保存并传递给 probe_irq_off
probe_irq_off(unsigned long mask)结束中断探测,返回触发的 IRQ 号(0 表示无中断,负值表示多中断冲突)
-IRQ_NONE中断处理程序返回值,表示未处理该中断(非本设备触发)
IRQ_HANDLED处理程序返回值,表示已成功处理本设备中断
IRQ_RETVAL(int x)宏,将布尔值转换为标准返回值(x 为真时返回 IRQ_HANDLED,否则返回 IRQ_NONE
-disable_irq(int irq)禁用指定 IRQ 线(等待当前处理完成后生效),非共享中断专用
disable_irq_nosync(int irq)立即禁用指定 IRQ 线(不等待当前处理完成),非共享中断专用
enable_irq(int irq)启用指定 IRQ 线,非共享中断专用
-local_irq_save(unsigned long flags)禁用当前 CPU 的所有中断,并保存中断状态到 flags
local_irq_restore(unsigned long flags)根据 flags 恢复当前 CPU 的中断状态
local_irq_disable(void)无条件禁用当前 CPU 的所有中断(不保存状态)
local_irq_enable(void)无条件启用当前 CPU 的所有中断

关键说明

  1. 共享中断注意事项

    使用 SA_SHIRQ 时,dev_id 不可为 NULL(用于区分共享设备),且处理程序需通过硬件状态判断中断是否由本设备触发(返回 IRQ_NONE 表示非本设备中断)。

  2. 中断开关函数的适用场景

    • disable_irq/enable_irq 作用于全局 IRQ 线,影响所有使用该 IRQ 的设备,共享中断禁止使用;

    • local_irq_* 系列函数仅影响当前 CPU 的中断状态,常用于保护中断上下文与进程上下文的共享数据(配合自旋锁使用)。

  3. 中断处理程序返回值

    ​​​​​​​必须返回 IRQ_NONE 或 IRQ_HANDLED(或通过 IRQ_RETVAL 转换),内核据此判断是否需要进一步处理(如唤醒等待进程)。

http://www.dtcms.com/a/546276.html

相关文章:

  • 建网站得钱吗网站策划文案
  • 九江做网站公司国外网站备案查询
  • 代码随想录第四十八天|1143.最长公共子序列 1035.不相交的线 53. 最大子序和 392.判断子序列
  • Spring AI Alibaba 【四】
  • 保定网站建设工作要搭建网站
  • 项目构建优化:git
  • 手机产品 网站建设公众号助手
  • 网站的v2信誉认证怎么做世界500强企业查询入口
  • Veyon,一款开源免费的教室电脑远程管理工具
  • 22. 课件整理 文件IO
  • 值得浏览的国外网站国外英语写作网站
  • 贸易公司网站建设价格企业网站设计html代码
  • 创造网站需要多少钱乐清城市网
  • 专业手机网站建设价格那网站做问答
  • 做一个网站做少多少钱微网站成功案例
  • dwcc2017做网站教程网站建设需要使用哪些设备
  • 仓颉编程实战:类与对象的精髓
  • Honeywell 通过 SAP 实现端到端流程转型,打造软件业务新引擎
  • 制作网站的方法有哪些网站建设与开发教学大纲
  • 枣庄网站建设多少钱wordpress 主题 速度快
  • XSLT 简介
  • 个人网站 jsp 域名空间建设个人博客网站制作
  • 基于springboot的论坛网站设计与实现
  • 个人网站也需要备案吗中国精准扶贫网站建设现状
  • 【Vue + echarts】echarts 入门 ,超详细讲解+漏斗图案例实践
  • 网站开发流程详解上海长宁建设和交通门户网站
  • CLIP个人理解
  • vue3 实现裁剪图片问题
  • AWS + SeyouCMS:海外资源站的高性能部署实战
  • 雷州市网站建设电子商务网站设计说明