*参照元 [#x84b3bc1] #backlinks *説明 [#td6b07b4] -パス: [[linux-2.6.33/arch/x86/kernel/irq_32.c]] -FIXME: これは何? --説明 **引数 [#yd1409b0] -unsigned irq -- -struct pt_regs *regs -- --[[linux-2.6.33/pt_regs]] **返り値 [#e5df9aef] -bool --割り込みを処理したときは true、そうでなければ false **参考 [#ef0acb4a] *実装 [#ta24b8f1] bool handle_irq(unsigned irq, struct pt_regs *regs) { struct irq_desc *desc; int overflow; - --[[linux-2.6.33/irq_desc]] overflow = check_stack_overflow(); - --[[linux-2.6.33/check_stack_overflow()]] desc = irq_to_desc(irq); if (unlikely(!desc)) return false; - --[[linux-2.6.33/irq_to_desc()]] --[[linux-2.6.33/unlikely()]] if (!execute_on_irq_stack(overflow, desc, irq)) { - --[[linux-2.6.33/execute_on_irq_stack()]] if (unlikely(overflow)) print_stack_overflow(); - --[[linux-2.6.33/print_stack_overflow()]] desc->handle_irq(irq, desc); - --handle_irq の型は irq_flow_handler_t である --[[linux-2.6.33/irq_flow_handler_t]] } return true; } *コメント [#q1de3b69]