linux - linux内核中指令{interrupt do_IRQ}是什么意思?

标签 linux linux-kernel interrupt

linux内核文件arch/x86/kernel/entry_64.S中指令{interrupt do_IRQ}是什么意思?中断是指令还是宏?定义在哪里?如何使用它?

847 common_interrupt: 
848         XCPT_FRAME    
849         addq $-0x80,(%rsp)              /* Adjust vector to [-256,-1] range */
850         interrupt do_IRQ
851         /* 0(%rsp): old_rsp-ARGOFFSET */

最佳答案

它在上面声明了一个短距离:

/* 0(%rsp): ~(interrupt number) */
    .macro interrupt func
    /* reserve pt_regs for scratch regs and rbp */
    subq $ORIG_RAX-RBP, %rsp
    CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
    call save_args
    PARTIAL_FRAME 0
    call \func
    .endm

虽然我不知道那是做什么的。 :-)

关于linux - linux内核中指令{interrupt do_IRQ}是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243328/

相关文章:

python - 在网络上的另一台计算机上启动进程

linux - 如何使用 'mv' 命令移动特定目录中的文件除外?

c - 在 linux 内核引导中读取键盘输入

linux - linux下只有中断向量能识别中断源吗?

java - 使用Thread.currentThread()。isInterrupted()与Thread.sleep()

java - 单个 Thread.interrupt() 中断不止一次

linux - Nginx 服务器没有重启

linux - zssh 无法启动并在启动时显示 "out of pty' s"

c - 为什么spin_unlock_bh函数不用调用调度器就可以抢占

memory - 不可撤销的页面