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:
parent
6536a979d8
commit
370231c05c
4 changed files with 8 additions and 12 deletions
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue