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


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS