summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiav A <liavalb@gmail.com>2022-12-20 08:17:25 +0200
committerJelle Raaijmakers <jelle@gmta.nl>2023-04-09 18:11:37 +0200
commitd8cbda69505968c6d5d2ae674a6754577efd53ed (patch)
tree2245b7ba4a7601d12ddb16e66763ab48b33f583e
parentd76c08c9b0e2743e752a182fc1cd9a48667bf23c (diff)
downloadserenity-d8cbda69505968c6d5d2ae674a6754577efd53ed.zip
Kernel: Move HIDDevice::enable_interrupts method to I8042Device class
It happens to be that only PS/2 devices that are connected via the i8042 controller can generate interrupt events, so it makes much more sense to have those devices to implement the enable_interrupts method because of the I8042Device class and not the HIDDevice class.
-rw-r--r--Kernel/Arch/x86_64/ISABus/I8042Controller.h7
-rw-r--r--Kernel/Devices/HID/Device.h1
2 files changed, 5 insertions, 3 deletions
diff --git a/Kernel/Arch/x86_64/ISABus/I8042Controller.h b/Kernel/Arch/x86_64/ISABus/I8042Controller.h
index 6ef1015208..e04a5ba4b6 100644
--- a/Kernel/Arch/x86_64/ISABus/I8042Controller.h
+++ b/Kernel/Arch/x86_64/ISABus/I8042Controller.h
@@ -67,11 +67,14 @@ enum I8042Response : u8 {
};
class I8042Controller;
+class PS2KeyboardDevice;
+class PS2MouseDevice;
class I8042Device {
public:
virtual ~I8042Device() = default;
virtual void irq_handle_byte_read(u8 byte) = 0;
+ virtual void enable_interrupts() = 0;
protected:
explicit I8042Device(I8042Controller const& ps2_controller)
@@ -156,8 +159,8 @@ private:
bool m_first_port_available { false };
bool m_second_port_available { false };
bool m_is_dual_channel { false };
- LockRefPtr<MouseDevice> m_mouse_device;
- LockRefPtr<KeyboardDevice> m_keyboard_device;
+ LockRefPtr<PS2MouseDevice> m_mouse_device;
+ LockRefPtr<PS2KeyboardDevice> m_keyboard_device;
};
}
diff --git a/Kernel/Devices/HID/Device.h b/Kernel/Devices/HID/Device.h
index 72d244650c..a9e12f15f8 100644
--- a/Kernel/Devices/HID/Device.h
+++ b/Kernel/Devices/HID/Device.h
@@ -20,7 +20,6 @@ public:
};
virtual Type instrument_type() const = 0;
- virtual void enable_interrupts() = 0;
protected:
HIDDevice(MajorNumber major, MinorNumber minor)