Merge branch 'late_disable_graphic_debug' into 'master'
graphics/vesad: Disable kernel graphical debug as late as possible See merge request redox-os/drivers!262
This commit is contained in:
@@ -3,9 +3,10 @@ extern crate syscall;
|
||||
|
||||
use driver_graphics::GraphicsScheme;
|
||||
use event::{user_data, EventQueue};
|
||||
use inputd::DisplayHandle;
|
||||
use inputd::{DisplayHandle, VtEventKind};
|
||||
use std::env;
|
||||
use std::fs::File;
|
||||
use std::io::Write;
|
||||
use std::os::fd::AsRawFd;
|
||||
|
||||
use crate::framebuffer::FrameBuffer;
|
||||
@@ -104,7 +105,10 @@ fn inner(daemon: redox_daemon::Daemon, framebuffers: Vec<FrameBuffer>) -> ! {
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let _ = File::open("/scheme/debug/disable-graphical-debug");
|
||||
let mut disable_graphical_debug = Some(
|
||||
File::open("/scheme/debug/disable-graphical-debug")
|
||||
.expect("vesad: Failed to open /scheme/debug/disable-graphical-debug"),
|
||||
);
|
||||
|
||||
libredox::call::setrens(0, 0).expect("vesad: failed to enter null namespace");
|
||||
|
||||
@@ -121,6 +125,16 @@ fn inner(daemon: redox_daemon::Daemon, framebuffers: Vec<FrameBuffer>) -> ! {
|
||||
.read_vt_event()
|
||||
.expect("vesad: failed to read display handle")
|
||||
{
|
||||
if let VtEventKind::Activate = vt_event.kind {
|
||||
// Disable the kernel graphical debug writing once switching vt's for the
|
||||
// first time. This way the kernel graphical debug remains enabled if the
|
||||
// userspace logging infrastructure doesn't start up because for example a
|
||||
// kernel panic happened prior to it starting up or logd crashed.
|
||||
if let Some(mut disable_graphical_debug) = disable_graphical_debug.take() {
|
||||
let _ = disable_graphical_debug.write(&[1]);
|
||||
}
|
||||
}
|
||||
|
||||
scheme.handle_vt_event(vt_event);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user