Logging works enough. Still unstructured however.
This commit is contained in:
parent
707528ef86
commit
1ae1d2ceac
|
@ -9,8 +9,8 @@ use {
|
||||||
pub fn handler(vm: &mut Vm) {
|
pub fn handler(vm: &mut Vm) {
|
||||||
let r1 = vm.registers[1].cast::<u64>();
|
let r1 = vm.registers[1].cast::<u64>();
|
||||||
|
|
||||||
debug!("Ecall number {:?}", r1);
|
// debug!("Ecall number {:?}", r1);
|
||||||
trace!("Register dump: {:?}", vm.registers);
|
// trace!("Register dump: {:?}", vm.registers);
|
||||||
|
|
||||||
match r1 {
|
match r1 {
|
||||||
0 => {
|
0 => {
|
||||||
|
@ -66,7 +66,7 @@ pub fn handler(vm: &mut Vm) {
|
||||||
match buffer_id {
|
match buffer_id {
|
||||||
1 => {
|
1 => {
|
||||||
log_msg_handler(vm, mem_addr, length);
|
log_msg_handler(vm, mem_addr, length);
|
||||||
error!("Logging via IPC isn't quite ready")
|
// error!("Logging via IPC isn't quite ready")
|
||||||
}
|
}
|
||||||
buffer_id => {
|
buffer_id => {
|
||||||
info!("Message has been sent to {}", buffer_id)
|
info!("Message has been sent to {}", buffer_id)
|
||||||
|
@ -82,42 +82,28 @@ pub fn handler(vm: &mut Vm) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn log_msg_handler(vm: &mut Vm, mem_addr: u64, length: usize) -> Result<(), LogError> {
|
fn log_msg_handler(vm: &mut Vm, mem_addr: u64, length: usize) -> Result<(), LogError> {
|
||||||
let message_length = 8 + 8 + 8;
|
// let message_length = 8 + 8 + 8;
|
||||||
let mut msg_vec = vec![];
|
let mut msg_vec = vec![];
|
||||||
for x in 0..(message_length as isize) {
|
|
||||||
|
for x in 0..(length as isize) {
|
||||||
let xyz = mem_addr as *const u8;
|
let xyz = mem_addr as *const u8;
|
||||||
let value = unsafe { xyz.offset(x).read() };
|
let value = unsafe { xyz.offset(x).read() };
|
||||||
info!("{} - {:x?} - {}", value, value, value as char);
|
// info!("{} - {:x?} - {}", value, value, value as char);
|
||||||
msg_vec.push(value);
|
msg_vec.push(value);
|
||||||
}
|
}
|
||||||
|
let log_level = msg_vec.pop().unwrap();
|
||||||
|
let strr = String::from_utf8(msg_vec).unwrap();
|
||||||
|
// info!("{}", strr);
|
||||||
|
|
||||||
// use LogLevel::*;
|
// use LogLevel::*;
|
||||||
// let log_level = match bytes[0] {
|
let ll = match log_level {
|
||||||
// 0 => Error,
|
48 => error!("{}", strr),
|
||||||
// 2 => Info,
|
49 => warn!("{}", strr),
|
||||||
// _ => return Err(LogError::InvalidLogFormat),
|
50 => info!("{}", strr),
|
||||||
// };
|
51 => debug!("{}", strr),
|
||||||
// println!("Log Level {:?}", log_level);
|
52 => trace!("{}", strr),
|
||||||
|
_ => return Err(LogError::InvalidLogFormat),
|
||||||
// let mut msg_ptr_arr = [0u8; 8];
|
};
|
||||||
// msg_ptr_arr.copy_from_slice(&bytes[8..=15]);
|
|
||||||
// let msg_ptr = u64::from_le_bytes(msg_ptr_arr) as *const u8;
|
|
||||||
|
|
||||||
// info!("bytes ptr: {:?}", msg_ptr);
|
|
||||||
|
|
||||||
// let mut msg_len_arr = [0u8; 8];
|
|
||||||
// msg_len_arr.copy_from_slice(&bytes[16..=23]);
|
|
||||||
// let msg_len = usize::from_le_bytes(msg_len_arr);
|
|
||||||
// info!("MSG Len: {}", msg_len);
|
|
||||||
|
|
||||||
// let mut str_vec = vec![];
|
|
||||||
// for offset in 0..(msg_len as isize) {
|
|
||||||
// let value = unsafe { msg_ptr.offset(offset).read() };
|
|
||||||
// info!("{} - {}", value, value as char);
|
|
||||||
// str_vec.push(value);
|
|
||||||
// }
|
|
||||||
// let log_message = String::from_utf8(str_vec).unwrap();
|
|
||||||
// info!("{}", log_message);
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -125,4 +111,4 @@ fn log_msg_handler(vm: &mut Vm, mem_addr: u64, length: usize) -> Result<(), LogE
|
||||||
pub enum LogError {
|
pub enum LogError {
|
||||||
InvalidLogFormat,
|
InvalidLogFormat,
|
||||||
}
|
}
|
||||||
use alloc::vec;
|
use {alloc::vec, log::Record};
|
||||||
|
|
|
@ -12,7 +12,7 @@ fn ipc_send(buffer_id, mem_addr, length){
|
||||||
}
|
}
|
||||||
|
|
||||||
private fn log(log_level, string){
|
private fn log(log_level, string){
|
||||||
let str = data::str(string);
|
let str = data::str(string + log_level);
|
||||||
ipc_send(1, str, str.len);
|
ipc_send(1, str, str.len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue