Changes

Jump to navigation Jump to search
188 bytes added ,  20:08, 10 December 2016
( ͡° ͜ʖ ͡°)
Line 516: Line 516:  
| style="background: green" | Yes
 
| style="background: green" | Yes
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| Result [[#Interrupt Handling|BindInterrupt]](Interrupt name, Handle syncObject, s32 priority, bool isLevelHighActive)
+
| Result [[#Interrupt Handling|BindInterrupt]](Interrupt name, Handle eventOrSemaphore, s32 priority, bool isLevelHighActive)
 
|
 
|
 
|-
 
|-
Line 523: Line 523:  
| style="background: green" | Yes
 
| style="background: green" | Yes
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| Result UnbindInterrupt(Interrupt name, Handle syncObject)
+
| Result UnbindInterrupt(Interrupt name, Handle eventOrSemaphore)
 
|
 
|
 
|-
 
|-
Line 1,148: Line 1,148:  
= Interrupt Handling =
 
= Interrupt Handling =
   −
svcBindInterrupt registers the given event corresponding to the handle to the global [[ARM11_Interrupts#Interrupt_Table_.28New3DS.29|"interrupt table"]] for the given interrupt ID. Interrupts 0-14 and 16-31 can never be mapped regardless of the [[NCCH/Extended_Header#ARM11_Kernel_Capabilities|interrupt flags of the process's exheader]], and the latter are not checked when mapping interrupt 15.
+
svcBindInterrupt registers the given event or semaphore corresponding to the handle to the global [[ARM11_Interrupts#Interrupt_Table_.28New3DS.29|"interrupt table"]] for the given interrupt ID. Interrupts 0-14 and 16-31 can never be mapped regardless of the [[NCCH/Extended_Header#ARM11_Kernel_Capabilities|interrupt flags of the process's exheader]], and the latter are not checked when mapping interrupt 15. The "is level high active"/"is manual clear" parameter must be false when binding a semaphore handle (otherwise 0xD8E007EE "invalid combination" is returned).
   −
If an interrupt event was already registered for the given ID, svcBindInterrupt returns error 0xD8E007F0. See [[KBaseInterruptEvent]] for more information on what happens on receipt of an interrupt.
+
If something was already registered for the given ID, svcBindInterrupt returns error 0xD8E007F0. See [[KBaseInterruptEvent]] for more information on what happens on receipt of an interrupt.
   −
Applications hence can wait for specific interrupts to happen by calling WaitSynchronization(N) on the event handles.
+
Applications hence can wait for specific interrupts to happen by calling WaitSynchronization(N) on the event or semaphore handles.
    
The set of existing ARM11 interrupts is listed on [[ARM11 Interrupts|this page]].
 
The set of existing ARM11 interrupts is listed on [[ARM11 Interrupts|this page]].

Navigation menu