diff options
| author | salmonik <salmonik@tuta.io> | 2026-07-31 02:40:18 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-07-31 02:40:18 +0200 |
| commit | 4b48b6938d91a91d7b1dd242991258fe47e284f0 (patch) | |
| tree | d0d32321e9384370b72b3bda4105daaea6853196 /shell/src/lib.rs | |
| parent | interrupts: IDT, PIC remap, PIT timer, PS/2 keyboard IRQ (diff) | |
| download | rs-dos-4b48b6938d91a91d7b1dd242991258fe47e284f0.tar.gz rs-dos-4b48b6938d91a91d7b1dd242991258fe47e284f0.zip | |
fix: ISR dispatch calling convention + PS/2 interrupt enable
Root cause: x86_64-unknown-uefi uses the Microsoft x64 calling
convention where the first argument is passed in rcx, not rdi.
The ISR stub was setting rdi = rsp, but isr_dispatch() read
the frame pointer from rcx, getting garbage → triple fault.
Also:
- Enable PS/2 keyboard IRQ via controller config byte (bit 0).
- Expose read_scancode() and TICKS from interrupt module.
- ps2::poll_key() uses 'sti; hlt' race-free sleep pattern.
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions
