Linux 关中断 与 开中断

2023-10-26

如果你要禁止所有的中断该怎么办? 在2.6内核中,可以通过下面两个函数中的其中任何一个关闭当前处理器上的所有中断处理,这两个函数定义在 <asm/system.h>中:

    void local_irq_save(unsigned long flags);
    void local_irq_disable(void);
    对 local_irq_save的调用将把当前中断状态保存到flags中,然后禁用当前处理器上的中断发送。注意, flags 被直接传递, 而不是通过指针来传递。 local_irq_disable不保存状态而关闭本地处理器上的中断发送; 只有我们知道中断并未在其他地方被禁用的情况下,才能使用这个版本。
    可通过如下函数打开中断:
    void local_irq_restore(unsigned long flags);
    void local_irq_enable(void);
    第一个版本将local_irq_save保存的flags状态值恢复, 而local_irq_enable无条件打开中断. 与 disable_irq不同, local_irq_disable不会维护对多次的调用的跟踪。 如果调用链中有多个函数需要禁止中断, 应该使用local_irq_save.
    在2.6内核, 没有方法全局禁用整个系统的所有中断。 内核开发者认为关闭所有中断的代价太高,因此没有必要提供这个能力。如果读者使用的老驱动程序调用了类似cli和sti这样的函数,为了该驱动程序能够在2.6下使用,则需要进行修改而使用正确的锁。

    in_interrupt()是判断当前进程是否处于中断上下文,这个中断上下文包括底半部和硬件中断处理过程,

函数实现:

     #define in_interrupt() ({ const int __cpu = smp_processor_id(); /
          (local_irq_count(__cpu) + local_bh_count(__cpu) != 0); })

判断中断计数和底半部计数是否〉0,如果只希望判断是否在硬件中断上下文,则可以使用:in_irq()。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 关中断 与 开中断 的相关文章

  • 比较不同文件中的列并打印那些不匹配的列

    我有两个文件 file1 和 file2 我想将 file1 的几列 1 2 3 和 4 与 file2 的几列 1 2 3 和 4 进行比较 并打印 file2 中与 file1 中任何行都不匹配的那些行 E g file1 aaa bb
  • 如何使用 python 或 CL 将文件复制到剪贴板,然后使用 STRG+V 粘贴它?

    我正在尝试将文件复制 使用 python 或 CL 命令 然后可以使用 python 调用 到剪贴板 以便稍后使用 STRG V 粘贴它 据我了解 文件不会 移动 到剪贴板中 而是剪贴板保存路径和告诉操作系统 这是一个文件 的参数 标志 我
  • fopen() 在 Linux 上创建文件失败

    我正在尝试通过创建一个文件fopen 如下 但不创建该文件并让我 Can t create file P S 我在 Linux Ubuntu 上使用 LAMP 服务器 在创建该文件之前我已经尝试过以下命令 sudo chmod R 755
  • 将多页 PDF 转换为单个图像

    我必须将多页 PDF 文档转换为 png 图像 我尝试使用 ImageMagick 但无法获得最终结果 convert document pdf document png or convert adjoin document pdf doc
  • 如何正确创建可通过http访问的SVN存储库? (在 public_html 内)?

    情况是这样的 subversion 已安装在服务器中 并且我可以访问服务器中的共享帐户之一 不是 root 并且该共享托管帐户具有 SSH 访问权限 我想创建一个存储库 我可以在其中提交我正在处理的 PHP 文件 当我提交时 它应该可以在浏
  • 如何判断全屏应用程序是否正在运行?

    python 是否可以判断 linux 上的全屏应用程序是否正在运行 我感觉使用 Xlib 可能是可行的 但我还没有找到方法 EDIT 我所说的全屏是指整个屏幕 除了应用程序之外 没有其他任何内容 例如全屏游戏 如果您有兴趣在支持下运行所有
  • 使用 Shell 脚本自动安装 R-Studio

    有没有办法在 Linux 系统上自动安装 R Studio 它应该自动检测操作系统并安装具有所需依赖项的 R 和 R Studio 谢谢 我准备了以下 shell 脚本来使安装完全自动化 bin bash Program R Studio
  • 如何从 Linux 和 Solaris 上的挂载中提取 NFS 信息?

    我需要使用提取 NFS 挂载信息mount在 Linux RHEL 4 5 和 Solaris Solaris 10 系统上 由于这是 SSH 命令的一部分 因此提取需要在一行中进行 不幸的是 Linux 和 Solaris 在该行的不同部
  • 服务器启动时 Java 运行时环境 SIGSEGV 错误

    我正在使用 java 版本 1 7 0 45 和 eclipse kepler 在服务器启动时我收到以下错误日志 虽然我发现了几个帖子 1 https stackoverflow com questions 19332489 how to
  • cronjob 上的 PHP 错误,在提示时工作正常

    我正在 cronjob 上运行以下脚本 cd etc parselog php run all php gt dev null 并收到以下错误 05 May 2009 20 30 12 PHP Warning PHP Startup Una
  • 反馈两个进程的stdin和stdout

    我有两个进程通过标准输入和标准输出相互连接 假设我有进程 A 和进程 B B 的标准输出需要输入到 A 的标准输入中 A 的标准输出需要输入到进程 B 的标准输出中 是否有一种简单的方法可以用简单的命令来表达这种关系 或者是否有一个基本的
  • 如何禁用浮点单元(FPU)?

    我想在 x86 系统中禁用 FPU MMX SSE 指令 并且我将为设备不可用异常实现一个处理程序 我已经提到过控制寄存器 wiki 页面 http en wikipedia org wiki Control register 看来我必须在
  • 如何获取子进程的返回值?

    程序计算从 1 到 N 的数字之和 子进程计算偶数之和 父进程计算奇数之和 我想在父进程中获取子进程的返回值 我怎么做 include
  • -bash: /usr/bin/virtualenvwrapper.sh: 没有这样的文件或目录

    我无法弄清楚 shell 试图在哪里运行 usr bin virtualenvwrapper sh服务器登录时 我希望 virtualenvwrapper 永久卸载 而不仅仅是从 shell 实例中删除 我以为我卸载了它pip uninst
  • Linux C 如何打开目录并获取文件描述符

    include
  • 删除损坏的链接 Unix

    我想删除损坏的链接 但在此之前我想确认目录中是否存在链接文件 我们来调用一下链接A if a A then print ya A is ther fi But if A链接已损坏 那么我该如何检查 find L type l找到损坏的符号链
  • 来自外部 .diff 文件的交互式补丁

    Linux 是否有命令或程序允许交互式地修补源代码 在屏幕上打印每个块并在将其应用到文件之前等待确认 就像是git add p 但是从另一个 diff 文件中进行更改 您始终可以在 shell ruby python 中编写脚本 逐行读取该
  • 与 grep 类似地突出显示文本,但不过滤掉文本[重复]

    这个问题在这里已经有答案了 使用 grep 时 它将突出显示与正则表达式匹配的行中的任何文本 如果我想要这种行为 但同时让 grep 打印出所有行怎么办 快速浏览完 grep 手册页后 我发现一无所获 使用确认 看看它的 passthru此
  • 安装pipenv导致pip3无法使用

    我安装了pipenv using pip3 install pipenv 这给了我错误ImportError cannot import name main 为了解决这个错误我遵循这些说明 https stackoverflow com q
  • 在 Linux 上的 makefile 和 Makefile 之间进行选择

    我想在一个目录中同时使用 Makefile 和 makefile 进行 make 默认情况下 它将执行makefile 我可以选择执行 Makefile 吗 提前致谢 最简单的选择是使用 f make f Makefile From man

随机推荐

  • React 性能优化,你需要知道的几个点

    转自于 https www jianshu com p 333f390f2e84 写了一段时间的react之后 渐渐的喜欢上了使用react来写应用 我们知道 Facebook在推出react时打出的旗号之一就是高性能 今天我们还一起来聊一
  • Python 手把手实现M3U8视频抓取

    声明 本文只作学习研究 禁止用于非法用途 否则后果自负 如有侵权 请告知删除 谢谢 此案例比较适合新手学习JS逆向 引言 本文出自微信公众号 Python三剑客 作者 阿K 阅读时长 5min 留言 文章输出我一直贯彻着即拿即用的方式为大家
  • java错误-The prefix "aop" for element "aop:aspectj-autoproxy" is not bound.

    配置springmvc的aop时出错 当我向配置文件中添加
  • web安全的漏洞种类

    SQL注入 SQL注入 SQL Injection 是一个常见的发生于应用程序和数据库之间的web安全漏洞 由于在开发过程中的设计不当导致程序中忽略了检查 没有有效的过滤用户的输入 是攻击者可以向服务器提交不正常的访问数据 即恶意的的SQL
  • logback.xml日志文件配置说明

  • MATLAB学习笔记(系统学习)

    教程来源 1 MATLAB教程 https www cainiaojc com matlab matlab tutorial html 不断学习补充中 文章目录 一 MATLAB基础 1 在MATLAB中使用分号 2 save命令用于将工作
  • windows:开机自动执行bat脚本

    参考 https blog csdn net li1325169021 article details 79889082
  • 在线等待,求高手,socket发送延迟问题

    在线等待 我的app可以按取颜色 色盘与固定颜色的button 使用tcp socket传输 让灯可以根据按的颜色做改变 目前碰到的问题是 1 前面动作都可以正常执行 但按取到后面时就会产生延迟的问题发生 颜色还是可按取 但灯不会变色 但时
  • 光通量发光强度照度亮度关系_照度、发光强度、光通量之间是什么关系

    我们发现有不少朋友对照度 发光强度和光通量这三个概念之间的关系总是搞混淆 包括他们各自的含义 以及标识单位 这里 我们就系统的来解读一下 首先 我们来看一下三者各自的名词解释 光通量 照度 亮度的关系 1 照度 也称光照度 指的是某光源照射
  • JS 如何判断当前页面是否全屏

    点击事件 span class iconfont icon quanping1 span js 代码 fullscreenchange fullScreen 被弃用 const isFullScreen document fullScree
  • 二级建造师继续教育留念

    35 下列关于地方性法规 规章之间冲突时的法律适用 表述正确的是 A 地方性法规 规章之间不一致时 由有关机关依照下列规定的权限作出裁决 B 地方性法规与部门规章之间时同一事项的规定不一致的 由国务院裁决 C 部门规章之间对同一事项的规定不
  • 超级炫酷的决策树可视化R包

    决策树的可视化我们之前介绍过 主要是使用rpart plot包 视觉效果还是不错的 mlr3 模型评价 今天再给大家介绍一个更加花里胡哨的R包 treeheatr 安装 install packages treeheatr install
  • centos7 安装docker

    1 检查linux内核版本 要求版本高于3 10 uname r 2 安装辅助工具 yum install y yum utils device mapper persistent data lvm2 3 设置docker的yum源 sud
  • 什么是测试用例?如何设计?

    在学习或者实际的测试工作中经常都会提到 测试用例 这个词 没错 测试用例是测试工作的核心 不管要做的是什么样的测试 在真正动手执行测试之前 我们都需要先根据软件需求来设计测试用例 之后再依据设计好的测试用例 展开测试工作 那么问题来了 什么
  • 制作Station主机的Armbian启动卡

    Station主机支持很多种操作系统 烧录系统可以连接电脑进行线刷 也可以制作TF卡启动卡 方便系统的切换 本文介绍了制作Armbian启动卡的方法 见视频 视频演示 通过TF卡启动的时候需要先擦除EMMC里面的系统或者暂时拆掉EMMC模块
  • 年底裁员潮,你有没有被"N+1"?

    2018年11月28日上午 前一天加班到深夜的李女士 又一大早起床匆匆赶去上班了 她在一家垂直电商公司工作多年 岁末将至 一切和往常一样 为了在年前完成比上一季度更高的 KPI 她所在团队经常通宵达旦赶工 李女士准备开始新一天的鸡血工作 主
  • 【学习体会】SIMD256技术 & AVX2指令集 & 使用immintrin的api和数据结构编写测试实例 & immintrin的api解析

    目录 SIMD256技术 AVX2指令集 C 的immintrin库 使用immintrin的api和数据结构 举个例子 计算pi immintrin的api解析 mm256 set1 pd mm256 set pd mm256 setze
  • 业务中台、技术中台、数据中台、AI中台

    中台是一种体系 生态 方法论 有标准和机制 解决顶层领域下各业务子域的高效协同和资源复用问题 中台建设强调企业级 IT部门与业务部门协同建设 各部门 各业务域是中台能力的使用方 同时也是中台能力的重要提供方 目前网上比较主流的中台定义和分类
  • 应聘者是以前上司,能力一般,职场老白兔,本不想给他通过,但他卑微哀求,怎么办?...

    什么是现世报 大概就是下面这个程序员分享的职场故事了 昨天做了一场特殊的面试 应聘者是以前的上司 面试前知道是他 但他不知道面试官是自己 今天早晨收到他发来的信息 很犹豫 因为他能力一般 典型职场老白兔 不太想用他 但又因为他的卑微而不忍
  • Linux 关中断 与 开中断

    如果你要禁止所有的中断该怎么办 在2 6内核中 可以通过下面两个函数中的其中任何一个关闭当前处理器上的所有中断处理 这两个函数定义在