1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:37:45 +00:00

Kernel: Expose minor device numbers for keyboard and mouse

A fix for two FIXMEs, and paving the way for multi-keyboard/mouse
support, I guess.
This commit is contained in:
Valtteri Koskivuori 2021-05-01 20:50:07 +03:00 committed by Linus Groh
parent 6536a979d8
commit 370231c05c
4 changed files with 8 additions and 12 deletions

View file

@ -35,9 +35,7 @@ public:
// ^Device // ^Device
virtual mode_t required_mode() const override { return 0440; } virtual mode_t required_mode() const override { return 0440; }
//FIXME: It should be something like String::formatted("keyboard{}", minor()) virtual String device_name() const override { return String::formatted("keyboard{}", minor()); }
// instead of a fixed string like this
virtual String device_name() const override { return "keyboard"; }
void update_modifier(u8 modifier, bool state) void update_modifier(u8 modifier, bool state)
{ {

View file

@ -34,9 +34,7 @@ public:
// ^Device // ^Device
virtual mode_t required_mode() const override { return 0440; } virtual mode_t required_mode() const override { return 0440; }
//FIXME: It should be something like String::formatted("mouse{}", minor()) virtual String device_name() const override { return String::formatted("mouse{}", minor()); }
// instead of a fixed string like this
virtual String device_name() const override { return "mouse"; }
protected: protected:
MouseDevice(); MouseDevice();

View file

@ -101,9 +101,9 @@ static void prepare_devfs()
VERIFY(phys_group); VERIFY(phys_group);
chown_wrapper("/dev/fb0", 0, phys_group->gr_gid); chown_wrapper("/dev/fb0", 0, phys_group->gr_gid);
chown_wrapper("/dev/keyboard", 0, phys_group->gr_gid); chown_wrapper("/dev/keyboard0", 0, phys_group->gr_gid);
chown_wrapper("/dev/mouse", 0, phys_group->gr_gid); chown_wrapper("/dev/mouse0", 0, phys_group->gr_gid);
auto tty_group = getgrnam("tty"); auto tty_group = getgrnam("tty");
VERIFY(tty_group); VERIFY(tty_group);

View file

@ -30,8 +30,8 @@ EventLoop::EventLoop()
: m_window_server(Core::LocalServer::construct()) : m_window_server(Core::LocalServer::construct())
, m_wm_server(Core::LocalServer::construct()) , m_wm_server(Core::LocalServer::construct())
{ {
m_keyboard_fd = open("/dev/keyboard", O_RDONLY | O_NONBLOCK | O_CLOEXEC); m_keyboard_fd = open("/dev/keyboard0", O_RDONLY | O_NONBLOCK | O_CLOEXEC);
m_mouse_fd = open("/dev/mouse", O_RDONLY | O_NONBLOCK | O_CLOEXEC); m_mouse_fd = open("/dev/mouse0", O_RDONLY | O_NONBLOCK | O_CLOEXEC);
bool ok = m_window_server->take_over_from_system_server("/tmp/portal/window"); bool ok = m_window_server->take_over_from_system_server("/tmp/portal/window");
VERIFY(ok); VERIFY(ok);
@ -64,14 +64,14 @@ EventLoop::EventLoop()
m_keyboard_notifier = Core::Notifier::construct(m_keyboard_fd, Core::Notifier::Read); m_keyboard_notifier = Core::Notifier::construct(m_keyboard_fd, Core::Notifier::Read);
m_keyboard_notifier->on_ready_to_read = [this] { drain_keyboard(); }; m_keyboard_notifier->on_ready_to_read = [this] { drain_keyboard(); };
} else { } else {
dbgln("Couldn't open /dev/keyboard"); dbgln("Couldn't open /dev/keyboard0");
} }
if (m_mouse_fd >= 0) { if (m_mouse_fd >= 0) {
m_mouse_notifier = Core::Notifier::construct(m_mouse_fd, Core::Notifier::Read); m_mouse_notifier = Core::Notifier::construct(m_mouse_fd, Core::Notifier::Read);
m_mouse_notifier->on_ready_to_read = [this] { drain_mouse(); }; m_mouse_notifier->on_ready_to_read = [this] { drain_mouse(); };
} else { } else {
dbgln("Couldn't open /dev/mouse"); dbgln("Couldn't open /dev/mouse0");
} }
} }