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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS