mirror of
https://github.com/RGBCube/serenity
synced 2025-05-26 00:45:06 +00:00
Kernel: Move x86-specific HID code to the Arch/x86 directory
The i8042 controller with its attached devices, the PS2 keyboard and mouse, rely on x86-specific IO instructions to work. Therefore, move them to the Arch/x86 directory to make it easier to omit the handling code of these devices.
This commit is contained in:
parent
948be9674a
commit
c50a81e93e
11 changed files with 23 additions and 16 deletions
|
@ -6,10 +6,10 @@
|
|||
*/
|
||||
|
||||
#include <AK/Types.h>
|
||||
#include <Kernel/Arch/x86/ISABus/HID/PS2KeyboardDevice.h>
|
||||
#include <Kernel/Debug.h>
|
||||
#include <Kernel/Devices/DeviceManagement.h>
|
||||
#include <Kernel/Devices/HID/HIDManagement.h>
|
||||
#include <Kernel/Devices/HID/PS2KeyboardDevice.h>
|
||||
#include <Kernel/Scheduler.h>
|
||||
#include <Kernel/Sections.h>
|
||||
#include <Kernel/TTY/ConsoleManagement.h>
|
|
@ -10,7 +10,7 @@
|
|||
#include <AK/DoublyLinkedList.h>
|
||||
#include <AK/Types.h>
|
||||
#include <Kernel/API/KeyCode.h>
|
||||
#include <Kernel/Devices/HID/I8042Controller.h>
|
||||
#include <Kernel/Arch/x86/ISABus/I8042Controller.h>
|
||||
#include <Kernel/Devices/HID/KeyboardDevice.h>
|
||||
#include <Kernel/Interrupts/IRQHandler.h>
|
||||
#include <Kernel/Random.h>
|
|
@ -6,9 +6,9 @@
|
|||
|
||||
#include <AK/Memory.h>
|
||||
#include <Kernel/Arch/x86/Hypervisor/VMWareBackdoor.h>
|
||||
#include <Kernel/Arch/x86/ISABus/HID/PS2MouseDevice.h>
|
||||
#include <Kernel/Debug.h>
|
||||
#include <Kernel/Devices/DeviceManagement.h>
|
||||
#include <Kernel/Devices/HID/PS2MouseDevice.h>
|
||||
#include <Kernel/Sections.h>
|
||||
|
||||
namespace Kernel {
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <AK/CircularQueue.h>
|
||||
#include <Kernel/API/MousePacket.h>
|
||||
#include <Kernel/Devices/HID/I8042Controller.h>
|
||||
#include <Kernel/Arch/x86/ISABus/I8042Controller.h>
|
||||
#include <Kernel/Devices/HID/MouseDevice.h>
|
||||
#include <Kernel/Interrupts/IRQHandler.h>
|
||||
#include <Kernel/Random.h>
|
|
@ -5,8 +5,8 @@
|
|||
*/
|
||||
|
||||
#include <Kernel/Arch/x86/Hypervisor/VMWareBackdoor.h>
|
||||
#include <Kernel/Arch/x86/ISABus/HID/VMWareMouseDevice.h>
|
||||
#include <Kernel/Devices/DeviceManagement.h>
|
||||
#include <Kernel/Devices/HID/VMWareMouseDevice.h>
|
||||
#include <Kernel/Sections.h>
|
||||
|
||||
namespace Kernel {
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
#include <AK/CircularQueue.h>
|
||||
#include <Kernel/API/MousePacket.h>
|
||||
#include <Kernel/Devices/HID/I8042Controller.h>
|
||||
#include <Kernel/Devices/HID/PS2MouseDevice.h>
|
||||
#include <Kernel/Arch/x86/ISABus/HID/PS2MouseDevice.h>
|
||||
#include <Kernel/Arch/x86/ISABus/I8042Controller.h>
|
||||
#include <Kernel/Interrupts/IRQHandler.h>
|
||||
#include <Kernel/Random.h>
|
||||
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
#include <Kernel/Arch/Delay.h>
|
||||
#include <Kernel/Arch/x86/IO.h>
|
||||
#include <Kernel/Devices/HID/I8042Controller.h>
|
||||
#include <Kernel/Devices/HID/PS2KeyboardDevice.h>
|
||||
#include <Kernel/Devices/HID/PS2MouseDevice.h>
|
||||
#include <Kernel/Devices/HID/VMWareMouseDevice.h>
|
||||
#include <Kernel/Arch/x86/ISABus/HID/PS2KeyboardDevice.h>
|
||||
#include <Kernel/Arch/x86/ISABus/HID/PS2MouseDevice.h>
|
||||
#include <Kernel/Arch/x86/ISABus/HID/VMWareMouseDevice.h>
|
||||
#include <Kernel/Arch/x86/ISABus/I8042Controller.h>
|
||||
#include <Kernel/Sections.h>
|
||||
|
||||
namespace Kernel {
|
|
@ -62,13 +62,9 @@ set(KERNEL_SOURCES
|
|||
Devices/SelfTTYDevice.cpp
|
||||
Devices/SerialDevice.cpp
|
||||
Devices/ZeroDevice.cpp
|
||||
Devices/HID/I8042Controller.cpp
|
||||
Devices/HID/HIDManagement.cpp
|
||||
Devices/HID/KeyboardDevice.cpp
|
||||
Devices/HID/MouseDevice.cpp
|
||||
Devices/HID/PS2KeyboardDevice.cpp
|
||||
Devices/HID/PS2MouseDevice.cpp
|
||||
Devices/HID/VMWareMouseDevice.cpp
|
||||
GlobalProcessExposed.cpp
|
||||
Graphics/Bochs/DisplayConnector.cpp
|
||||
Graphics/Bochs/GraphicsAdapter.cpp
|
||||
|
@ -339,6 +335,10 @@ if ("${SERENITY_ARCH}" STREQUAL "i686" OR "${SERENITY_ARCH}" STREQUAL "x86_64")
|
|||
|
||||
Arch/x86/Hypervisor/VMWareBackdoor.cpp
|
||||
|
||||
Arch/x86/ISABus/HID/PS2KeyboardDevice.cpp
|
||||
Arch/x86/ISABus/HID/PS2MouseDevice.cpp
|
||||
Arch/x86/ISABus/HID/VMWareMouseDevice.cpp
|
||||
Arch/x86/ISABus/I8042Controller.cpp
|
||||
Arch/x86/ISABus/IDEController.cpp
|
||||
Arch/x86/PCI/Controller/HostBridge.cpp
|
||||
Arch/x86/PCI/Initializer.cpp
|
||||
|
|
|
@ -4,10 +4,13 @@
|
|||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <AK/Platform.h>
|
||||
#include <AK/Singleton.h>
|
||||
#if ARCH(I386) || ARCH(X86_64)
|
||||
# include <Kernel/Arch/x86/ISABus/I8042Controller.h>
|
||||
#endif
|
||||
#include <Kernel/CommandLine.h>
|
||||
#include <Kernel/Devices/HID/HIDManagement.h>
|
||||
#include <Kernel/Devices/HID/I8042Controller.h>
|
||||
#include <Kernel/Firmware/ACPI/Parser.h>
|
||||
#include <Kernel/Sections.h>
|
||||
|
||||
|
@ -119,6 +122,7 @@ UNMAP_AFTER_INIT ErrorOr<void> HIDManagement::enumerate()
|
|||
// set to emulate PS/2, we should not initialize the PS/2 controller.
|
||||
if (kernel_command_line().disable_ps2_controller())
|
||||
return {};
|
||||
#if ARCH(I386) || ARCH(X86_64)
|
||||
m_i8042_controller = I8042Controller::initialize();
|
||||
|
||||
// Note: If ACPI is disabled or doesn't indicate that we have an i8042, we
|
||||
|
@ -140,6 +144,7 @@ UNMAP_AFTER_INIT ErrorOr<void> HIDManagement::enumerate()
|
|||
|
||||
if (m_i8042_controller->keyboard())
|
||||
m_hid_devices.append(m_i8042_controller->keyboard().release_nonnull());
|
||||
#endif
|
||||
return {};
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,9 @@ private:
|
|||
size_t m_mouse_minor_number { 0 };
|
||||
size_t m_keyboard_minor_number { 0 };
|
||||
KeyboardClient* m_client { nullptr };
|
||||
#if ARCH(I386) || ARCH(X86_64)
|
||||
LockRefPtr<I8042Controller> m_i8042_controller;
|
||||
#endif
|
||||
NonnullLockRefPtrVector<HIDDevice> m_hid_devices;
|
||||
Spinlock m_client_lock { LockRank::None };
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue