SVC: Difference between revisions
No edit summary |
Add Interrupts |
||
Line 516: | Line 516: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| Result BindInterrupt(Interrupt name, Handle syncObject, s32 priority, bool isManualClear) | | Result [[SVC#Interrupts|BindInterrupt]](Interrupt name, Handle syncObject, s32 priority, bool isManualClear) | ||
| | | | ||
|- | |- | ||
Line 1,466: | Line 1,466: | ||
= svc7B Backdoor = | = svc7B Backdoor = | ||
This saves SVC-mode SP+LR on the user-mode stack, then sets the SVC-mode SP to the user-mode SP. This then calls the specified code in SVC-mode. Once the called code returns, this pops the saved SP+LR off the stack for restoring the SVC-mode SP, then returns from the svc7b handler. Note that this svc7b handler does not disable IRQs, if any IRQs/context-switches occur while the SVC-mode SP is set to the user-mode one here, the ARM11-kernel will crash(which hangs the whole ARM11-side system). | This saves SVC-mode SP+LR on the user-mode stack, then sets the SVC-mode SP to the user-mode SP. This then calls the specified code in SVC-mode. Once the called code returns, this pops the saved SP+LR off the stack for restoring the SVC-mode SP, then returns from the svc7b handler. Note that this svc7b handler does not disable IRQs, if any IRQs/context-switches occur while the SVC-mode SP is set to the user-mode one here, the ARM11-kernel will crash(which hangs the whole ARM11-side system). | ||
= Interrupts = | |||
{| class="wikitable" border="1" | |||
! Interrupt numbers | |||
! Module using it | |||
|- | |||
| 0x54, 0x55, 0x5C | |||
| I2C | |||
|} | |||
= Kernel error-codes = | = Kernel error-codes = |