- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#ocd9ebb8]
#backlinks
*説明 [#g9d2c8bb]
-パス: [[linux-2.6.33/arch/x86/kernel/irq.c]]
-FIXME: これは何?
--説明
**引数 [#fa09eecb]
-struct pt_regs *regs
--
--[[linux-2.6.33/pt_regs]]
**返り値 [#v74a78e8]
-int
--
**参考 [#f52200a5]
*実装 [#z6c8091f]
/*
* do_IRQ handles all normal device IRQ's (the special
* SMP cross-CPU interrupts have their own specific
* handlers).
*/
unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
{
struct pt_regs *old_regs = set_irq_regs(regs);
/* high bit used in ret_from_ code */
unsigned vector = ~regs->orig_ax;
unsigned irq;
exit_idle();
irq_enter();
irq = __get_cpu_var(vector_irq)[vector];
if (!handle_irq(irq, regs)) {
ack_APIC_irq();
if (printk_ratelimit())
pr_emerg("%s: %d.%d No irq handler for vector (irq %d)\n",
__func__, smp_processor_id(), vector, irq);
}
irq_exit();
set_irq_regs(old_regs);
return 1;
}
*コメント [#d29cfa37]