Interrupt Handling

Interrupt handling in Cheriette uses a vector table at EL2, which sets up a secure call return capability to the interrupted task, and then calls the interrupt handler as if it had been called by a normal secure call.

When the interrupt handler returns, it does so thorugh the secure call primitive and returns directly to the interrupted task.

User space tasks can register interrupts using a system call, and must provide a stack that the interrupt handler is executed with.