Kernel: Device dev and rdev number is done more properly

Also hd* partitions are now 1 indexed instead of 0
This commit is contained in:
Bananymous
2023-04-03 11:43:16 +03:00
parent 86d777e2eb
commit b87dae7e7c
15 changed files with 100 additions and 78 deletions

View File

@@ -302,7 +302,7 @@ namespace Kernel::Input
// MF2 Keyboard
if (index == 2 && (bytes[0] == 0xAB && bytes[1] == 0x83))
m_devices[device] = TRY(PS2Keyboard::create(*this, device));
m_devices[device] = TRY(PS2Keyboard::create(*this));
if (m_devices[device])
return {};
@@ -332,10 +332,4 @@ namespace Kernel::Input
return {};
}
PS2Device::PS2Device(dev_t dev)
{
m_dev = dev;
m_ino = dev & 1;
}
}

View File

@@ -37,9 +37,9 @@ namespace Kernel::Input
}
BAN::ErrorOr<PS2Keyboard*> PS2Keyboard::create(PS2Controller& controller, dev_t device)
BAN::ErrorOr<PS2Keyboard*> PS2Keyboard::create(PS2Controller& controller)
{
PS2Keyboard* keyboard = new PS2Keyboard(controller, device);
PS2Keyboard* keyboard = new PS2Keyboard(controller);
if (keyboard == nullptr)
return BAN::Error::from_errno(ENOMEM);
BAN::ScopeGuard guard([keyboard] { delete keyboard; });
@@ -48,6 +48,12 @@ namespace Kernel::Input
return keyboard;
}
PS2Keyboard::PS2Keyboard(PS2Controller& controller)
: m_controller(controller)
, m_name(BAN::String::formatted("input{}", DeviceManager::get().get_next_input_dev()))
, m_rdev(makedev(DeviceManager::get().get_next_rdev(), 0))
{ }
void PS2Keyboard::on_byte(uint8_t byte)
{
// NOTE: This implementation does not allow using commands