*参照元 [#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]

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS