linux-2.6.33/usr_entry()(arm)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#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 t...
@
@ r2 - lr_<exception>, already fixed up for correct re...
@ 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]
終了行:
*参照元 [#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 t...
@
@ r2 - lr_<exception>, already fixed up for correct re...
@ 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]
ページ名: