*参照元 [#d93c4696]
#backlinks

*説明 [#o0230bfb]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]

-FIXME: これは何?
--説明


**引数 [#f9777e1a]
-
--

**返り値 [#sf08a25c]
-
--

**参考 [#xd8791f8]


*実装 [#j3cf837d]
 	.macro	usr_entry
  UNWIND(.fnstart	)
  UNWIND(.cantunwind	)	@ don't unwind the user space
-
--[[linux-2.6.33/UNWIND()]]

 	sub	sp, sp, #S_FRAME_SIZE
-
--[[linux-2.6.33/S_FRAME_SIZE]]

  ARM(	stmib	sp, {r1 - r12}	)
  THUMB(	stmia	sp, {r0 - r12}	)
 
-
--[[linux-2.6.33/ARM()]]
-
--[[linux-2.6.33/THUMB()]]

 	ldmia	r0, {r1 - r3}
 	add	r0, sp, #S_PC		@ here for interlock avoidance
 	mov	r4, #-1			@  ""  ""     ""        ""
 
 	str	r1, [sp]		@ save the "real" r0 copied
 					@ from the exception stack
 
 	@
 	@ We are now ready to fill in the remaining blanks on the stack:
 	@
 	@  r2 - lr_<exception>, already fixed up for correct return/restart
 	@  r3 - spsr_<exception>
 	@  r4 - orig_r0 (see pt_regs definition in ptrace.h)
 	@
 	@ Also, separately save sp_usr and lr_usr
 	@
 	stmia	r0, {r2 - r4}
  ARM(	stmdb	r0, {sp, lr}^			)
  THUMB(	store_user_sp_lr r0, r1, S_SP - S_PC	)
 
-
--[[linux-2.6.33/store_user_sp_lr()]]

 	@
 	@ Enable the alignment trap while in kernel mode
 	@
 	alignment_trap r0
 
-
--[[linux-2.6.33/alignment_trap()]]

 	@
 	@ Clear FP to mark the first stack frame
 	@
 	zero_fp
 
-
--[[linux-2.6.33/zero_fp()]]

 	asm_trace_hardirqs_off
-
--[[linux-2.6.33/asm_trace_hardirqs_off()]]

 	.endm


*コメント [#a61077d3]


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