forked from AbleOS/ableos
attempt to log arguments in the limine framebuffer
Still needs work having to do with setting the log level
This commit is contained in:
parent
815c424248
commit
fe6cccc70d
|
@ -1,7 +1,8 @@
|
|||
//! Environment call handling routines
|
||||
|
||||
use {
|
||||
super::{mem::Memory, Vm},
|
||||
crate::{arch, ipc::buffer::IpcBuffer, kmain::IPC_BUFFERS},
|
||||
crate::{arch, holeybytes::mem, ipc::buffer::IpcBuffer, kmain::IPC_BUFFERS},
|
||||
alloc::string::String,
|
||||
log::{debug, error, info, trace, warn},
|
||||
};
|
||||
|
@ -65,12 +66,15 @@ pub fn handler(vm: &mut Vm) {
|
|||
use alloc::vec::Vec;
|
||||
|
||||
match buffer_id {
|
||||
1 => {
|
||||
log_msg_handler(vm, mem_addr, length);
|
||||
}
|
||||
1 => match log_msg_handler(vm, mem_addr, length) {
|
||||
Ok(()) => {}
|
||||
Err(err) => log::error!("Improper log format"),
|
||||
},
|
||||
buffer_id => {
|
||||
let mut buffs = IPC_BUFFERS.lock();
|
||||
|
||||
let mut buff = buffs.get_mut(&buffer_id).unwrap();
|
||||
|
||||
let mut msg_vec = vec![];
|
||||
|
||||
for x in 0..(length as isize) {
|
||||
|
@ -94,13 +98,14 @@ pub fn handler(vm: &mut Vm) {
|
|||
}
|
||||
// 5
|
||||
_ => {
|
||||
log::error!("Syscall unknown {:?}", r1);
|
||||
log::error!("Syscall unknown {:?}{:?}", r1, vm.registers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn log_msg_handler(vm: &mut Vm, mem_addr: u64, length: usize) -> Result<(), LogError> {
|
||||
// let message_length = 8 + 8 + 8;
|
||||
// log::info!("Mem Addr {} length {}", mem_addr, length);
|
||||
let mut msg_vec = vec![];
|
||||
|
||||
for x in 0..(length as isize) {
|
||||
|
@ -111,7 +116,6 @@ fn log_msg_handler(vm: &mut Vm, mem_addr: u64, length: usize) -> Result<(), LogE
|
|||
}
|
||||
let log_level = msg_vec.pop().unwrap();
|
||||
let strr = String::from_utf8(msg_vec).unwrap();
|
||||
// info!("{}", strr);
|
||||
|
||||
// use LogLevel::*;
|
||||
let ll = match log_level {
|
||||
|
@ -120,7 +124,10 @@ fn log_msg_handler(vm: &mut Vm, mem_addr: u64, length: usize) -> Result<(), LogE
|
|||
50 => info!("{}", strr),
|
||||
51 => debug!("{}", strr),
|
||||
52 => trace!("{}", strr),
|
||||
_ => return Err(LogError::InvalidLogFormat),
|
||||
_ => {
|
||||
// log::error!("Invalid log format");
|
||||
return Err(LogError::InvalidLogFormat);
|
||||
}
|
||||
};
|
||||
|
||||
Ok(())
|
||||
|
|
|
@ -72,7 +72,7 @@ pub fn kmain(cmdline: &str, boot_modules: BootModules) -> ! {
|
|||
unsafe {
|
||||
for module in boot_modules.into_iter().take(bm_take) {
|
||||
let mut cmd = module.cmd;
|
||||
{
|
||||
if cmd.len() > 2 {
|
||||
// Remove the quotes
|
||||
cmd.remove(0);
|
||||
cmd.pop();
|
||||
|
|
|
@ -18,17 +18,17 @@ TERM_BACKDROP=008080
|
|||
# Setting a default resolution for the framebuffer
|
||||
RESOLUTION=1024x768x24
|
||||
|
||||
MODULE_PATH=boot:///failure.hbf
|
||||
MODULE_CMDLINE=""
|
||||
# MODULE_PATH=boot:///failure.hbf
|
||||
# MODULE_CMDLINE=""
|
||||
|
||||
MODULE_PATH=boot:///ecall.hbf
|
||||
MODULE_CMDLINE=""
|
||||
# MODULE_PATH=boot:///ecall.hbf
|
||||
# MODULE_CMDLINE=""
|
||||
|
||||
MODULE_PATH=boot:///main.hbf
|
||||
MODULE_CMDLINE=""
|
||||
# MODULE_PATH=boot:///main.hbf
|
||||
# MODULE_CMDLINE=""
|
||||
|
||||
MODULE_PATH=boot:///vfs_test.hbf
|
||||
MODULE_CMDLINE=""
|
||||
# MODULE_PATH=boot:///vfs_test.hbf
|
||||
# MODULE_CMDLINE=""
|
||||
|
||||
MODULE_PATH=boot:///limine_framebuffer_driver.hbf
|
||||
MODULE_CMDLINE="height=10 width=10 arch=${ARCH}"
|
|
@ -73,6 +73,17 @@ fn clear() {
|
|||
|
||||
// Define main
|
||||
fn main(){
|
||||
// Log the arguments
|
||||
{
|
||||
cp(r3, r1);
|
||||
cp(r4, r2);
|
||||
|
||||
li64(r1, 3);
|
||||
li64(r2, 1);
|
||||
// don't forget to set the log level
|
||||
|
||||
eca();
|
||||
}
|
||||
std::Info("Starting the limine framebuffer driver.");
|
||||
// un();
|
||||
li64(r100, 300);
|
||||
|
|
Loading…
Reference in a new issue