Kernel: Rewrite mounting code
This commit is contained in:
@@ -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 };
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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; });
|
||||
|
||||
Reference in New Issue
Block a user