ableos/kernel/src/holeybytes/kernel_services/service_definition_service.rs

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(())
}