*参照元 [#x81764d3]
#backlinks

*説明 [#l43fd071]
-パス: [[linux-2.6.33/arch/x86/kernel/entry_32.S]]
-パス: [[linux-2.6.33/arch/x86/kernel/entry_32.S]](x86)

-割り込みハンドラの初期化、後始末を行うコード(機種依存部分)。
各実装を参照のこと。
--[[linux-2.6.33/common_interrupt()(x86)]]


**引数 [#xfc824a2]
-なし


**返り値 [#w961d571]
-なし


**参考 [#i2355e0d]


*実装 [#sdb5e291]
 /*
  * the CPU automatically disables interrupts when executing an IRQ vector,
  * so IRQ-flags tracing has to follow that:
  */
 	.p2align CONFIG_X86_L1_CACHE_SHIFT
-L1 キャッシュの先頭に乗るように境界合わせをする。
--割り込み処理は頻繁に呼び出されるため、
キャッシュ効率を上げる工夫をしている。
--.p2align は 2のべき乗(power of 2)で境界合わせをせよ、
という gas の疑似命令である
---例えば CONFIG_X86_L1_CACHE_SHIFT が 5 なら、
32バイト境界にコードが配置される
--[[linux-2.6.33/CONFIG_X86_L1_CACHE_SHIFT]]

 common_interrupt:
 	addl $-0x80,(%esp)	/* Adjust vector into the [-256,-1] range */
 	SAVE_ALL
-
--[[linux-2.6.33/SAVE_ALL()]]

 	TRACE_IRQS_OFF
-
--[[linux-2.6.33/TRACE_IRQS_OFF()]]

 	movl %esp,%eax
 	call do_IRQ
-
--[[linux-2.6.33/do_IRQ()]]

 	jmp ret_from_intr
-
--[[linux-2.6.33/ret_from_intr()]]

 ENDPROC(common_interrupt)
 	CFI_ENDPROC
-
--[[linux-2.6.33/CFI_ENDPROC()]]


*コメント [#t06361b5]

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