fix: kernel concurrency, interrupt context, and user VA safety

This commit is contained in:
daniel committed 2026-08-01 15:43:38 +02:00
1 parent f222bf1f04
commit b1c55073c7
71 files changed
+2654 -1092

No files matched your search

+1 -1
View File
@@ -150,7 +150,7 @@ namespace Drivers::PS2::Keyboard {
Kt::KernelLogStream(Kt::OK, "PS2/KB") << "Keyboard driver initialized";
}
void HandleIRQ(uint8_t irq) {
void HandleIRQ(uint8_t irq, bool) {
(void)irq;
uint8_t scancode = Io::In8(DataPort);
+2 -2
View File
@@ -39,7 +39,7 @@ namespace Drivers::PS2::Keyboard {
void Initialize();
// Interrupt handler -- called from IRQ dispatch (EOI is sent automatically)
void HandleIRQ(uint8_t irq);
void HandleIRQ(uint8_t irq, bool fromUser);
// Public interface for consuming key events
bool IsKeyAvailable();
@@ -52,4 +52,4 @@ namespace Drivers::PS2::Keyboard {
// Inject a key event from an external source (e.g., USB HID keyboard)
void InjectKeyEvent(const KeyEvent& event);
};
};
+1 -1
View File
@@ -109,7 +109,7 @@ namespace Drivers::PS2::Mouse {
Kt::KernelLogStream(Kt::OK, "PS2/Mouse") << "Mouse driver initialized";
}
void HandleIRQ(uint8_t irq) {
void HandleIRQ(uint8_t irq, bool) {
(void)irq;
uint8_t data = Io::In8(DataPort);
+2 -2
View File
@@ -24,7 +24,7 @@ namespace Drivers::PS2::Mouse {
void Initialize();
// Interrupt handler -- called from IRQ dispatch (EOI is sent automatically)
void HandleIRQ(uint8_t irq);
void HandleIRQ(uint8_t irq, bool fromUser);
// Public interface
MouseState GetMouseState();
@@ -42,4 +42,4 @@ namespace Drivers::PS2::Mouse {
// Inject a mouse report from an external source (e.g., USB HID mouse)
void InjectMouseReport(uint8_t buttons, int8_t deltaX, int8_t deltaY, int8_t scroll);
};
};