*参照元 [#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]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS