【问题标题】:raising a softirq in assembly x86 or ARM在程序集 x86 或 ARM 中引发 softirq
【发布时间】:2013-01-24 21:02:21
【问题描述】:

我熟悉instruction int on x86

  1. 是否可以内联汇编int my_unique_number 并使用
    requst_irq(my_unique_number , function); 与函数
    指令执行时调用?
  2. ARM有没有类似的方式使用SWI immed_8 instructionSVC
  3. 我可以做同样的伎俩吗?

【问题讨论】:

    标签: c assembly linux-kernel x86 arm


    【解决方案1】:

    在 Linux 内核中,简单地在内核中实现自己的系统调用并使用syscall(your_number) 函数来调用它比自己编写汇编代码要简单得多。

    这样做很容易http://www.linuxjournal.com/article/3326 这是一篇文章的链接,该文章描述了如何做到这一点,用比我用的少得多的字眼。

    【讨论】:

    • @0x90 你想让它在发生特定中断时运行,还是在某些情况下你会调用request_irq。如果是这样,为什么不直接调用函数(除非您需要原子上下文)?
    • @0x90 如果您处于原子上下文中,则无法引发中断,因为中断本身是原子的。您始终可以通过spin_lock_irqsavespin_unlock_irqrestore 禁用中断,然后执行您的代码。
    猜你喜欢
    • 2021-01-12
    • 2010-12-16
    • 2016-12-02
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2013-08-13
    • 2016-08-19
    • 1970-01-01
    相关资源
    最近更新 更多