WIP: Rewrote interrupt handling #3
Reference in New Issue
Block a user
No description provided.
Delete Branch "(deleted):interrupt-handlers"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Purpose
This PR introduces a new system for handling interrupts:
When an interrupt is triggered, a corresponding routine from
traps.s
is ran, which does the following things:iretq
is executed, ensuring the OS can continue its execution normally.This allows to easily add interrupt listeners for device drivers later.
Proposed changes
TODO
traps.s
to make use of compile-time loops and drastically reduce the file sizeNotes
At the time of writing, the traps aren't handled correctly.
The
ArTrapHandlers[]
array contains invalid addresses that point to unknown locations.Manually rewriting
ArTrapHandlers[index]
toArHandleTrapX
works, but a real fix should be found for this issue.Pull request closed