kernel: Allow turning off the TTY by setting it to graphical mode
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
207d901de8
commit
f8cb6e03df
@ -11,6 +11,7 @@
|
|||||||
#include <luna/Vector.h>
|
#include <luna/Vector.h>
|
||||||
|
|
||||||
Vector<SharedPtr<ConsoleDevice>> ConsoleDevice::m_console_devices;
|
Vector<SharedPtr<ConsoleDevice>> ConsoleDevice::m_console_devices;
|
||||||
|
bool ConsoleDevice::s_is_in_graphical_mode { false };
|
||||||
|
|
||||||
Result<void> ConsoleDevice::create()
|
Result<void> ConsoleDevice::create()
|
||||||
{
|
{
|
||||||
@ -60,6 +61,8 @@ Result<usize> ConsoleDevice::write(const u8* buf, usize, usize length)
|
|||||||
{
|
{
|
||||||
if (m_settings.c_lflag & TOSTOP) TRY(handle_background_process_group(true, SIGTTOU));
|
if (m_settings.c_lflag & TOSTOP) TRY(handle_background_process_group(true, SIGTTOU));
|
||||||
|
|
||||||
|
if (s_is_in_graphical_mode) return length;
|
||||||
|
|
||||||
TextConsole::write((const char*)buf, length);
|
TextConsole::write((const char*)buf, length);
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
@ -229,6 +232,10 @@ Result<u64> ConsoleDevice::ioctl(int request, void* arg)
|
|||||||
if (!MemoryManager::copy_to_user_typed((struct winsize*)arg, &window)) return err(EFAULT);
|
if (!MemoryManager::copy_to_user_typed((struct winsize*)arg, &window)) return err(EFAULT);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
case TTYSETGFX: {
|
||||||
|
s_is_in_graphical_mode = (bool)arg;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
default: return err(EINVAL);
|
default: return err(EINVAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@ class ConsoleDevice : public Device
|
|||||||
mutable Keyboard::KeyboardState m_kb_state;
|
mutable Keyboard::KeyboardState m_kb_state;
|
||||||
|
|
||||||
static Vector<SharedPtr<ConsoleDevice>> m_console_devices;
|
static Vector<SharedPtr<ConsoleDevice>> m_console_devices;
|
||||||
|
static bool s_is_in_graphical_mode;
|
||||||
|
|
||||||
void process_key_event(u8 scancode);
|
void process_key_event(u8 scancode);
|
||||||
|
|
||||||
|
@ -8,4 +8,7 @@
|
|||||||
#define FB_GET_HEIGHT 1
|
#define FB_GET_HEIGHT 1
|
||||||
#define FB_GET_SCANLINE 2
|
#define FB_GET_SCANLINE 2
|
||||||
|
|
||||||
|
/* TTY requests. */
|
||||||
|
#define TTYSETGFX 162
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user