Changes

139 bytes added ,  16:37, 25 March 2016
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 =
85

edits