*参照元 [#ge0a7502] #backlinks *説明 [#s3ce4cb1] -パス: [[linux-2.6.33/]] -FIXME: これは何? --説明 **引数 [#oc5fcff5] - -- **返り値 [#p62b0bbd] - -- **参考 [#lb47c036] *実装 [#b136b67c] .align 5 __irq_svc: svc_entry #ifdef CONFIG_PREEMPT get_thread_info tsk ldr r8, [tsk, #TI_PREEMPT] @ get preempt count add r7, r8, #1 @ increment it str r7, [tsk, #TI_PREEMPT] #endif irq_handler #ifdef CONFIG_PREEMPT str r8, [tsk, #TI_PREEMPT] @ restore preempt count ldr r0, [tsk, #TI_FLAGS] @ get flags teq r8, #0 @ if preempt count != 0 movne r0, #0 @ force flags to 0 tst r0, #_TIF_NEED_RESCHED blne svc_preempt #endif ldr r4, [sp, #S_PSR] @ irqs are already disabled #ifdef CONFIG_TRACE_IRQFLAGS tst r4, #PSR_I_BIT bleq trace_hardirqs_on #endif svc_exit r4 @ return from exception UNWIND(.fnend ) ENDPROC(__irq_svc) *コメント [#db72e16a]