Changes

291 bytes added ,  19:21, 10 December 2016
Line 1,148: Line 1,148:  
= Interrupt Handling =
 
= Interrupt Handling =
   −
BindInterrupt adds the given event handle to an internal list for the given interrupt ID. Whenever the given interrupt is triggered, the kernel's interrupt handler will signal all events in the list corresponding to that interrupt.
+
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.
 +
 
 +
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.
    
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 handles.
  −
It is unknown whether BindInterrupt may be used with non-event 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]].