*参照元 [#a6fe1bf5] #backlinks *説明 [#f102c533] -パス: [[linux-2.6.33/]] -パス: [[linux-2.6.33/arch/arm/entry-armv.S]] -FIXME: これは何? --説明 **引数 [#a7e7386d] - -- **返り値 [#lac31baa] - -- **参考 [#s3c31b83] *実装 [#b32c01fa] .align 5 __irq_usr: usr_entry kuser_cmpxchg_check - --[[linux-2.6.33/usr_entry()]] - --[[linux-2.6.33/kuser_cmpxchg_check()]] get_thread_info tsk - --[[linux-2.6.33/get_thread_info()]] #ifdef CONFIG_PREEMPT - --[[linux-2.6.33/CONFIG_PREEMPT]] ldr r8, [tsk, #TI_PREEMPT] @ get preempt count add r7, r8, #1 @ increment it str r7, [tsk, #TI_PREEMPT] #endif irq_handler - --[[linux-2.6.33/irq_handler()]] #ifdef CONFIG_PREEMPT ldr r0, [tsk, #TI_PREEMPT] str r8, [tsk, #TI_PREEMPT] teq r0, r7 ARM( strne r0, [r0, -r0] ) - --[[linux-2.6.33/ARM()]] THUMB( movne r0, #0 ) THUMB( strne r0, [r0] ) - --[[linux-2.6.33/THUMB()]] #endif #ifdef CONFIG_TRACE_IRQFLAGS - --[[linux-2.6.33/CONFIG_TRACE_IRQFLAGS]] bl trace_hardirqs_on - --[[linux-2.6.33/trace_hardirqs_on()]] #endif mov why, #0 b ret_to_user - --[[linux-2.6.33/ret_to_user()]] UNWIND(.fnend ) - --[[linux-2.6.33/UNWIND()]] ENDPROC(__irq_usr) - --[[linux-2.6.33/ENDPROC()]] *コメント [#k289be3b]