31 lines
813 B
Rust
31 lines
813 B
Rust
use {
|
|
crate::{
|
|
alloc::string::ToString,
|
|
holeybytes::{ecah::LogError, kernel_services::block_read, Vm},
|
|
},
|
|
alloc::string::String,
|
|
hashbrown::HashMap,
|
|
log::info,
|
|
spin::{lazy::Lazy, Mutex},
|
|
};
|
|
|
|
pub struct Services(HashMap<u64, String>);
|
|
|
|
pub static SERVICES: Lazy<Mutex<Services>> = Lazy::new(|| {
|
|
let mut dt = Services(HashMap::new());
|
|
dt.0.insert(0, "SDS".to_string());
|
|
info!("test");
|
|
Mutex::new(dt)
|
|
});
|
|
|
|
pub fn sds_msg_handler(vm: &mut Vm, mem_addr: u64, length: usize) -> Result<(), LogError> {
|
|
let mut msg_vec = block_read(mem_addr, length);
|
|
let buffer_id_raw = &msg_vec[0..8];
|
|
let mut arr = [0u8; 8];
|
|
arr.copy_from_slice(&buffer_id_raw);
|
|
let buffer_id = u64::from_le_bytes(arr);
|
|
info!("BufferID({:x?})", buffer_id);
|
|
|
|
Ok(())
|
|
}
|