linux-2.6.33/__dabt_svc()(arm)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#t7daa8ba]
#backlinks
*説明 [#s432fffc]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]
-FIXME: これは何?
--説明
**引数 [#e5f9a80e]
-なし
**返り値 [#qbaf8ae9]
-なし
**参考 [#v4ce2bbe]
*実装 [#n9f93845]
.align 5
-2^5 = 32バイト境界に配置する
__dabt_svc:
svc_entry
-
--[[linux-2.6.33/svc_entry()]]
@
@ get ready to re-enable interrupts if appropriate
@
mrs r9, cpsr
tst r3, #PSR_I_BIT
biceq r9, r9, #PSR_I_BIT
@
@ Call the processor-specific abort handler:
@
@ r2 - aborted context pc
@ r3 - aborted context cpsr
@
@ The abort handler must return the aborted address in ...
@ the fault status register in r1. r9 must be preserved.
@
#ifdef MULTI_DABORT
-
--[[linux-2.6.33/MULTI_DABORT]]
ldr r4, .LCprocfns
-
--[[linux-2.6.33/.LCprocfns()]]
mov lr, pc
ldr pc, [r4, #PROCESSOR_DABT_FUNC]
-
--[[linux-2.6.33/PROCESSOR_DABT_FUNC]]
#else
bl CPU_DABORT_HANDLER
-
--[[linux-2.6.33/CPU_DABORT_HANDLER()]]
#endif
@
@ set desired IRQ state, then call main handler
@
msr cpsr_c, r9
mov r2, sp
bl do_DataAbort
-
--[[linux-2.6.33/do_DataAbort()]]
@
@ IRQs off again before pulling preserved data off the ...
@
disable_irq
-
--[[linux-2.6.33/disable_irq()]]
@
@ restore SPSR and restart the instruction
@
ldr r2, [sp, #S_PSR]
svc_exit r2 @ return from exception
-
--[[linux-2.6.33/svc_exit()]]
UNWIND(.fnend )
-
--[[linux-2.6.33/UNWIND()]]
ENDPROC(__dabt_svc)
-
--[[linux-2.6.33/ENDPROC()]]
*コメント [#f04b0dc3]
終了行:
*参照元 [#t7daa8ba]
#backlinks
*説明 [#s432fffc]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]
-FIXME: これは何?
--説明
**引数 [#e5f9a80e]
-なし
**返り値 [#qbaf8ae9]
-なし
**参考 [#v4ce2bbe]
*実装 [#n9f93845]
.align 5
-2^5 = 32バイト境界に配置する
__dabt_svc:
svc_entry
-
--[[linux-2.6.33/svc_entry()]]
@
@ get ready to re-enable interrupts if appropriate
@
mrs r9, cpsr
tst r3, #PSR_I_BIT
biceq r9, r9, #PSR_I_BIT
@
@ Call the processor-specific abort handler:
@
@ r2 - aborted context pc
@ r3 - aborted context cpsr
@
@ The abort handler must return the aborted address in ...
@ the fault status register in r1. r9 must be preserved.
@
#ifdef MULTI_DABORT
-
--[[linux-2.6.33/MULTI_DABORT]]
ldr r4, .LCprocfns
-
--[[linux-2.6.33/.LCprocfns()]]
mov lr, pc
ldr pc, [r4, #PROCESSOR_DABT_FUNC]
-
--[[linux-2.6.33/PROCESSOR_DABT_FUNC]]
#else
bl CPU_DABORT_HANDLER
-
--[[linux-2.6.33/CPU_DABORT_HANDLER()]]
#endif
@
@ set desired IRQ state, then call main handler
@
msr cpsr_c, r9
mov r2, sp
bl do_DataAbort
-
--[[linux-2.6.33/do_DataAbort()]]
@
@ IRQs off again before pulling preserved data off the ...
@
disable_irq
-
--[[linux-2.6.33/disable_irq()]]
@
@ restore SPSR and restart the instruction
@
ldr r2, [sp, #S_PSR]
svc_exit r2 @ return from exception
-
--[[linux-2.6.33/svc_exit()]]
UNWIND(.fnend )
-
--[[linux-2.6.33/UNWIND()]]
ENDPROC(__dabt_svc)
-
--[[linux-2.6.33/ENDPROC()]]
*コメント [#f04b0dc3]
ページ名: