linux-2.6.33/__irq_svc()(arm)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#ge0a7502]
#backlinks
*説明 [#s3ce4cb1]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]
-FIXME: これは何?
--説明
**引数 [#oc5fcff5]
-
--
**返り値 [#p62b0bbd]
-
--
**参考 [#lb47c036]
*実装 [#b136b67c]
.align 5
__irq_svc:
svc_entry
-
--[[linux-2.6.33/svc_entry()]]
#ifdef CONFIG_PREEMPT
-
--[[linux-2.6.33/CONFIG_PREEMPT]]
get_thread_info tsk
-
--[[linux-2.6.33/get_thread_info()]]
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
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
-
--[[linux-2.6.33/svc_preempt()]]
#endif
ldr r4, [sp, #S_PSR] @ irqs are already disabled
#ifdef CONFIG_TRACE_IRQFLAGS
-
--[[linux-2.6.33/CONFIG_TRACE_IRQFLAGS]]
tst r4, #PSR_I_BIT
bleq trace_hardirqs_on
-
--[[linux-2.6.33/trace_hardirqs_on()]]
#endif
svc_exit r4 @ return from exception
-
--[[linux-2.6.33/svc_exit()]]
UNWIND(.fnend )
-
--[[linux-2.6.33/UNWIND()]]
ENDPROC(__irq_svc)
-
--[[linux-2.6.33/ENDPROC()]]
*コメント [#db72e16a]
終了行:
*参照元 [#ge0a7502]
#backlinks
*説明 [#s3ce4cb1]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]
-FIXME: これは何?
--説明
**引数 [#oc5fcff5]
-
--
**返り値 [#p62b0bbd]
-
--
**参考 [#lb47c036]
*実装 [#b136b67c]
.align 5
__irq_svc:
svc_entry
-
--[[linux-2.6.33/svc_entry()]]
#ifdef CONFIG_PREEMPT
-
--[[linux-2.6.33/CONFIG_PREEMPT]]
get_thread_info tsk
-
--[[linux-2.6.33/get_thread_info()]]
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
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
-
--[[linux-2.6.33/svc_preempt()]]
#endif
ldr r4, [sp, #S_PSR] @ irqs are already disabled
#ifdef CONFIG_TRACE_IRQFLAGS
-
--[[linux-2.6.33/CONFIG_TRACE_IRQFLAGS]]
tst r4, #PSR_I_BIT
bleq trace_hardirqs_on
-
--[[linux-2.6.33/trace_hardirqs_on()]]
#endif
svc_exit r4 @ return from exception
-
--[[linux-2.6.33/svc_exit()]]
UNWIND(.fnend )
-
--[[linux-2.6.33/UNWIND()]]
ENDPROC(__irq_svc)
-
--[[linux-2.6.33/ENDPROC()]]
*コメント [#db72e16a]
ページ名: