From 8ac07539b076dddb2f9c8d8c37ec96ad8bbe0431 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:46:20 +0200 Subject: [PATCH] graphics/driver-graphics: Handle mmap offset --- graphics/driver-graphics/src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/graphics/driver-graphics/src/lib.rs b/graphics/driver-graphics/src/lib.rs index 6fb09e91b8..94860f3103 100644 --- a/graphics/driver-graphics/src/lib.rs +++ b/graphics/driver-graphics/src/lib.rs @@ -360,17 +360,17 @@ impl SchemeSync for GraphicsScheme { fn mmap_prep( &mut self, id: usize, - _offset: u64, + offset: u64, _size: usize, _flags: MapFlags, _ctx: &CallerCtx, ) -> syscall::Result { // log::trace!("KSMSG MMAP {} {:?} {} {}", id, _flags, _offset, _size); - let framebuffer = match self.handles.get(&id).ok_or(Error::new(EINVAL))? { - Handle::V1Screen { vt, screen } => &self.vts[vt].display_fbs[*screen], + let (framebuffer, offset) = match self.handles.get(&id).ok_or(Error::new(EINVAL))? { + Handle::V1Screen { vt, screen } => (&self.vts[vt].display_fbs[*screen], offset), }; let ptr = T::map_dumb_framebuffer(&mut self.adapter, framebuffer); - Ok(ptr as usize) + Ok(unsafe { ptr.add(offset as usize) } as usize) } }