mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-21 14:23:39 +00:00
feat: 添加serial console,支持non-graphic启动 (#947)
Signed-off-by: longjin <longjin@dragonos.org>
This commit is contained in:
@ -1,7 +1,6 @@
|
||||
use crate::{
|
||||
driver::{
|
||||
serial::serial8250::send_to_default_serial8250_port,
|
||||
tty::{tty_port::tty_port, virtual_terminal::virtual_console::CURRENT_VCNUM},
|
||||
serial::serial8250::send_to_default_serial8250_port, tty::virtual_terminal::vc_manager,
|
||||
video::video_refresh_manager,
|
||||
},
|
||||
libs::{
|
||||
@ -1031,8 +1030,7 @@ where
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rs_textui_putchar(character: u8, fr_color: u32, bk_color: u32) -> i32 {
|
||||
let current_vcnum = CURRENT_VCNUM.load(Ordering::SeqCst);
|
||||
if current_vcnum != -1 {
|
||||
if let Some(current_vc) = vc_manager().current_vc() {
|
||||
// tty已经初始化了之后才输出到屏幕
|
||||
let fr = (fr_color & 0x00ff0000) >> 16;
|
||||
let fg = (fr_color & 0x0000ff00) >> 8;
|
||||
@ -1044,7 +1042,7 @@ pub extern "C" fn rs_textui_putchar(character: u8, fr_color: u32, bk_color: u32)
|
||||
"\x1B[38;2;{fr};{fg};{fb};48;2;{br};{bg};{bb}m{}\x1B[0m",
|
||||
character as char
|
||||
);
|
||||
let port = tty_port(current_vcnum as usize);
|
||||
let port = current_vc.port();
|
||||
let tty = port.port_data().internal_tty();
|
||||
if let Some(tty) = tty {
|
||||
send_to_default_serial8250_port(&[character]);
|
||||
|
@ -1,7 +1,4 @@
|
||||
use core::{
|
||||
fmt::{self, Write},
|
||||
sync::atomic::Ordering,
|
||||
};
|
||||
use core::fmt::{self, Write};
|
||||
|
||||
use alloc::string::ToString;
|
||||
use log::{info, Level, Log};
|
||||
@ -9,10 +6,7 @@ use log::{info, Level, Log};
|
||||
use super::lib_ui::textui::{textui_putstr, FontColor};
|
||||
|
||||
use crate::{
|
||||
driver::tty::{
|
||||
tty_driver::TtyOperation, tty_port::tty_port,
|
||||
virtual_terminal::virtual_console::CURRENT_VCNUM,
|
||||
},
|
||||
driver::tty::{tty_driver::TtyOperation, virtual_terminal::vc_manager},
|
||||
filesystem::procfs::{
|
||||
kmsg::KMSG,
|
||||
log::{LogLevel, LogMessage},
|
||||
@ -44,10 +38,9 @@ impl PrintkWriter {
|
||||
/// 并输出白底黑字
|
||||
/// @param str: 要写入的字符
|
||||
pub fn __write_string(&mut self, s: &str) {
|
||||
let current_vcnum = CURRENT_VCNUM.load(Ordering::SeqCst);
|
||||
if current_vcnum != -1 {
|
||||
if let Some(current_vc) = vc_manager().current_vc() {
|
||||
// tty已经初始化了之后才输出到屏幕
|
||||
let port = tty_port(current_vcnum as usize);
|
||||
let port = current_vc.port();
|
||||
let tty = port.port_data().internal_tty();
|
||||
if let Some(tty) = tty {
|
||||
let _ = tty.write(tty.core(), s.as_bytes(), s.len());
|
||||
|
Reference in New Issue
Block a user