mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 06:02:44 +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
	
	 Liav A
						Liav A