linux-2.6.33/svc_entry()(arm)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#q121ee50]
#backlinks
*説明 [#e3585a78]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]
-FIXME: これは何?
--説明
**引数 [#aec93045]
-
--
**返り値 [#f5191226]
-
--
**参考 [#n690a81c]
*実装 [#m893f637]
.macro svc_entry, stack_hole=0
UNWIND(.fnstart )
-
--[[linux-2.6.33/UNWIND()]]
UNWIND(.save {r0 - pc} )
sub sp, sp, #(S_FRAME_SIZE + \stack_hole - 4)
-
--[[linux-2.6.33/S_FRAME_SIZE]]
#ifdef CONFIG_THUMB2_KERNEL
-
--[[linux-2.6.33/CONFIG_THUMB2_KERNEL]]
SPFIX( str r0, [sp] ) @ temporarily saved
SPFIX( mov r0, sp )
SPFIX( tst r0, #4 ) @ test original stack alignment
SPFIX( ldr r0, [sp] ) @ restored
-
--[[linux-2.6.33/SPFIX()]]
#else
SPFIX( tst sp, #4 )
#endif
SPFIX( subeq sp, sp, #4 )
stmia sp, {r1 - r12}
ldmia r0, {r1 - r3}
add r5, sp, #S_SP - 4 @ here for interlock avoidance
mov r4, #-1 @ "" "" "" ""
add r0, sp, #(S_FRAME_SIZE + \stack_hole - 4)
SPFIX( addeq r0, r0, #4 )
str r1, [sp, #-4]! @ save the "real" r0 copied
@ from the exception stack
mov r1, lr
@
@ We are now ready to fill in the remaining blanks on t...
@
@ r0 - sp_svc
@ r1 - lr_svc
@ r2 - lr_<exception>, already fixed up for correct re...
@ r3 - spsr_<exception>
@ r4 - orig_r0 (see pt_regs definition in ptrace.h)
@
stmia r5, {r0 - r4}
asm_trace_hardirqs_off
-
--[[linux-2.6.33/asm_trace_hardirqs_off()]]
.endm
*コメント [#tf09d646]
終了行:
*参照元 [#q121ee50]
#backlinks
*説明 [#e3585a78]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]
-FIXME: これは何?
--説明
**引数 [#aec93045]
-
--
**返り値 [#f5191226]
-
--
**参考 [#n690a81c]
*実装 [#m893f637]
.macro svc_entry, stack_hole=0
UNWIND(.fnstart )
-
--[[linux-2.6.33/UNWIND()]]
UNWIND(.save {r0 - pc} )
sub sp, sp, #(S_FRAME_SIZE + \stack_hole - 4)
-
--[[linux-2.6.33/S_FRAME_SIZE]]
#ifdef CONFIG_THUMB2_KERNEL
-
--[[linux-2.6.33/CONFIG_THUMB2_KERNEL]]
SPFIX( str r0, [sp] ) @ temporarily saved
SPFIX( mov r0, sp )
SPFIX( tst r0, #4 ) @ test original stack alignment
SPFIX( ldr r0, [sp] ) @ restored
-
--[[linux-2.6.33/SPFIX()]]
#else
SPFIX( tst sp, #4 )
#endif
SPFIX( subeq sp, sp, #4 )
stmia sp, {r1 - r12}
ldmia r0, {r1 - r3}
add r5, sp, #S_SP - 4 @ here for interlock avoidance
mov r4, #-1 @ "" "" "" ""
add r0, sp, #(S_FRAME_SIZE + \stack_hole - 4)
SPFIX( addeq r0, r0, #4 )
str r1, [sp, #-4]! @ save the "real" r0 copied
@ from the exception stack
mov r1, lr
@
@ We are now ready to fill in the remaining blanks on t...
@
@ r0 - sp_svc
@ r1 - lr_svc
@ r2 - lr_<exception>, already fixed up for correct re...
@ r3 - spsr_<exception>
@ r4 - orig_r0 (see pt_regs definition in ptrace.h)
@
stmia r5, {r0 - r4}
asm_trace_hardirqs_off
-
--[[linux-2.6.33/asm_trace_hardirqs_off()]]
.endm
*コメント [#tf09d646]
ページ名: