//! Security? Multiple address spaces? What are you talking about //! young adventurer. In this temple, we know no such words. //! //! Want your program to override other program's data or even the //! data of the kernel itself? Sure. This right shall not be infringed. use hbvm::mem::Address; pub struct Memory; impl hbvm::mem::Memory for Memory { #[inline] unsafe fn load( &mut self, addr: Address, target: *mut u8, count: usize, ) -> Result<(), hbvm::mem::LoadError> { core::ptr::copy(addr.get() as *const u8, target, count); Ok(()) } #[inline] unsafe fn store( &mut self, addr: Address, source: *const u8, count: usize, ) -> Result<(), hbvm::mem::StoreError> { // log::info!("Storing memory"); core::ptr::copy(source, addr.get() as *mut u8, count); Ok(()) } #[inline] unsafe fn prog_read(&mut self, addr: Address) -> T { (addr.get() as *const T).read_unaligned() } }