*参照元 [#x81764d3] #backlinks *説明 [#l43fd071] -パス: [[linux-2.6.33/arch/x86/kernel/entry_32.S]] -割り込みハンドラの初期化、後始末を行うコード(機種依存部分)。 **引数 [#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)で境界合わせをせよ、 --.p2align は 2のべき乗(power of 2)で境界合わせ(align)をせよ、 という 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]