feat(kernel): Add basic interrupts for both CPU faults and hardware #25

Merged
noah.knegt merged 4 commits from interrupts into development 2026-01-09 21:39:28 +01:00
Owner
No description provided.
Add PIC and keyboard interrupt support
Some checks failed
Lint / Format (pull_request) Successful in 3m6s
Lint / Clippy (aarch64-unknown-none) (pull_request) Failing after 4m14s
Lint / Clippy (x86_64-unknown-none) (pull_request) Failing after 4m35s
Test / Integration Tests (pull_request) Successful in 5m29s
Test / Unit Tests (pull_request) Successful in 5m56s
Build / Build Binary (aarch64-unknown-none) (pull_request) Successful in 6m21s
Build / Build Binary (x86_64-unknown-none) (pull_request) Successful in 6m23s
4829c7c636
Register and initialize chained PICs (pic8259), unmask timer and
keyboard IRQs and send EOIs after handling. Add keyboard handler using
pc-keyboard (reads scancode from port 0x60 and logs keys) and a timer
handler, plus IDT entries. Load a kernel data segment (SS) in the GDT.
Make serial/framebuffer writes interrupt-safe, enable the x86-interrupt
ABI, initialize PICs and enable CPU interrupts, and change main to
halt while awaiting interrupts. Bump dependencies and update Cargo.lock

Signed-off-by: Noah Knegt <git@noahknegt.com>
Use && let to combine nested if-lets
All checks were successful
Lint / Format (pull_request) Successful in 2m58s
Lint / Clippy (aarch64-unknown-none) (pull_request) Successful in 4m46s
Lint / Clippy (x86_64-unknown-none) (pull_request) Successful in 4m45s
Build / Build Binary (aarch64-unknown-none) (pull_request) Successful in 5m16s
Build / Build Binary (x86_64-unknown-none) (pull_request) Successful in 5m15s
Test / Unit Tests (pull_request) Successful in 5m7s
Test / Integration Tests (pull_request) Successful in 5m55s
04d839b818
Signed-off-by: Noah Knegt <git@noahknegt.com>
noah.knegt merged commit 2f92d8d927 into development 2026-01-09 21:39:28 +01:00
noah.knegt deleted branch interrupts 2026-01-09 21:39:28 +01:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
noah.knegt/FerrOS!25
No description provided.