函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\irq.c Create Date:2022-07-27 08:32:28
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:do_IRQ handles all normal device IRQ's (the special* SMP cross-CPU interrupts have their own specific* handlers).

函数原型:__visible unsigned int __irq_entry do_IRQ(struct pt_regs *regs)

返回类型:unsigned int

参数:

类型参数名称
struct pt_regs *regs
235  old_regs等于set_irq_regs(regs)
238  vector等于orig_ax的反
240  entering_irq()
243  RCU_LOCKDEP_WARN(!_is_watching - see if RCU thinks that the current CPU is not idle* Return true if RCU is watching the running CPU, which means that this* CPU can safely enter RCU read-side critical sections, "IRQ failed to wake up RCU")
245  desc等于Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(vector_irq[vector])
246  如果此条件成立可能性大(为编译器优化)(!是错误或空)则
247  如果IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_X86_32)则handle_irq(desc, regs)
249  否则Architectures call this to let the generic IRQ layer* handle an interrupt.
251  否则
252  ack_APIC_irq()
254  如果desc恒等于VECTOR_UNUSED
255  pr_emerg_ratelimited("%s: %d.%d No irq handler for vector\n", __func__, 当前cpu ID(), vector)
258  否则
263  exiting_irq()
265  set_irq_regs(old_regs)
266  返回:1