Kernel: Rewrite mounting code

This commit is contained in:
Bananymous
2023-03-29 21:34:48 +03:00
parent 10e0c90fde
commit ab3cdea548
14 changed files with 121 additions and 144 deletions

View File

@@ -1,3 +1,4 @@
#include <BAN/Time.h>
#include <BAN/ScopeGuard.h>
#include <kernel/ACPI.h>
#include <kernel/IDT.h>
@@ -5,6 +6,7 @@
#include <kernel/Input/PS2Keyboard.h>
#include <kernel/InterruptController.h>
#include <kernel/IO.h>
#include <kernel/RTC.h>
namespace Kernel::Input
{
@@ -301,7 +303,7 @@ namespace Kernel::Input
// MF2 Keyboard
if (index == 2 && (bytes[0] == 0xAB && bytes[1] == 0x83))
m_devices[device] = TRY(PS2Keyboard::create(*this));
m_devices[device] = TRY(PS2Keyboard::create(*this, device));
if (m_devices[device])
return {};
@@ -331,4 +333,11 @@ namespace Kernel::Input
return {};
}
PS2Device::PS2Device(dev_t dev)
{
m_dev = dev;
m_ino = dev & 1;
m_time = { BAN::to_unix_time(RTC::get_current_time()), 0 };
}
}

View File

@@ -37,9 +37,9 @@ namespace Kernel::Input
}
BAN::ErrorOr<PS2Keyboard*> PS2Keyboard::create(PS2Controller& controller)
BAN::ErrorOr<PS2Keyboard*> PS2Keyboard::create(PS2Controller& controller, dev_t device)
{
PS2Keyboard* keyboard = new PS2Keyboard(controller);
PS2Keyboard* keyboard = new PS2Keyboard(controller, device);
if (keyboard == nullptr)
return BAN::Error::from_errno(ENOMEM);
BAN::ScopeGuard guard([keyboard] { delete keyboard; });