From 7c533510a949677bbd389911cbde905822afe3ee Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Tue, 12 May 2026 21:03:42 +0200 Subject: [PATCH] drivers/graphics/driver-graphics: Match error codes of Linux --- drivers/graphics/driver-graphics/src/kms/objects.rs | 12 ++++++------ .../graphics/driver-graphics/src/kms/properties.rs | 4 ++-- drivers/graphics/driver-graphics/src/lib.rs | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/graphics/driver-graphics/src/kms/objects.rs b/drivers/graphics/driver-graphics/src/kms/objects.rs index b46bc7d5d7..467f6f8ed0 100644 --- a/drivers/graphics/driver-graphics/src/kms/objects.rs +++ b/drivers/graphics/driver-graphics/src/kms/objects.rs @@ -7,7 +7,7 @@ use drm_sys::{ drm_mode_modeinfo, DRM_MODE_OBJECT_BLOB, DRM_MODE_OBJECT_CONNECTOR, DRM_MODE_OBJECT_CRTC, DRM_MODE_OBJECT_ENCODER, DRM_MODE_OBJECT_FB, DRM_MODE_OBJECT_PROPERTY, }; -use syscall::{Error, Result, EINVAL}; +use syscall::{Error, Result, ENOENT}; use crate::kms::connector::{KmsConnector, KmsEncoder}; use crate::kms::properties::{ @@ -50,16 +50,16 @@ impl KmsObjects { } pub(super) fn get>(&self, id: KmsObjectId) -> Result<&U> { - let object = self.objects.get(&id).ok_or(Error::new(EINVAL))?; + let object = self.objects.get(&id).ok_or(Error::new(ENOENT))?; if let Some(object) = U::try_from_object(object) { Ok(object) } else { - Err(Error::new(EINVAL)) + Err(Error::new(ENOENT)) } } pub(crate) fn object_type(&self, id: KmsObjectId) -> Result { - let object = self.objects.get(&id).ok_or(Error::new(EINVAL))?; + let object = self.objects.get(&id).ok_or(Error::new(ENOENT))?; Ok(object.object_type()) } @@ -107,10 +107,10 @@ impl KmsObjects { pub fn remove_framebuffer(&mut self, id: KmsObjectId) -> Result<()> { let Some(object) = self.objects.get(&id) else { - return Err(Error::new(EINVAL)); + return Err(Error::new(ENOENT)); }; let KmsObject::Framebuffer(_) = object else { - return Err(Error::new(EINVAL)); + return Err(Error::new(ENOENT)); }; self.objects.remove(&id).unwrap(); diff --git a/drivers/graphics/driver-graphics/src/kms/properties.rs b/drivers/graphics/driver-graphics/src/kms/properties.rs index a76669cd73..427b5ef0a8 100644 --- a/drivers/graphics/driver-graphics/src/kms/properties.rs +++ b/drivers/graphics/driver-graphics/src/kms/properties.rs @@ -7,7 +7,7 @@ use drm_sys::{ DRM_MODE_OBJECT_CRTC, DRM_MODE_OBJECT_FB, DRM_PLANE_TYPE_CURSOR, DRM_PLANE_TYPE_OVERLAY, DRM_PLANE_TYPE_PRIMARY, DRM_PROP_NAME_LEN, }; -use syscall::{Error, Result, EINVAL}; +use syscall::{Error, Result, ENOENT}; use crate::kms::objects::{KmsObject, KmsObjectId, KmsObjects}; use crate::GraphicsAdapter; @@ -51,7 +51,7 @@ impl KmsObjects { } pub fn get_object_properties_data(&self, id: KmsObjectId) -> Result<(Vec, Vec)> { - let object = self.objects.get(&id).ok_or(Error::new(EINVAL))?; + let object = self.objects.get(&id).ok_or(Error::new(ENOENT))?; match object { KmsObject::Crtc(crtc) => { let crtc = crtc.lock().unwrap(); diff --git a/drivers/graphics/driver-graphics/src/lib.rs b/drivers/graphics/driver-graphics/src/lib.rs index 9fdb6d40bb..2c0b3946e5 100644 --- a/drivers/graphics/driver-graphics/src/lib.rs +++ b/drivers/graphics/driver-graphics/src/lib.rs @@ -20,7 +20,7 @@ use redox_scheme::scheme::{register_scheme_inner, SchemeState, SchemeSync}; use redox_scheme::{CallerCtx, OpenResult, RequestKind, SignalBehavior, Socket}; use scheme_utils::{FpathWriter, HandleMap}; use syscall::schemev2::NewFdFlags; -use syscall::{Error, MapFlags, Result, EACCES, EAGAIN, EINVAL, ENOENT, EOPNOTSUPP}; +use syscall::{Error, MapFlags, Result, EACCES, EAGAIN, EINVAL, ENOENT, ENXIO, EOPNOTSUPP}; use crate::kms::connector::{KmsConnectorDriver, KmsConnectorState}; use crate::kms::objects::{self, KmsCrtc, KmsCrtcDriver, KmsCrtcState, KmsObjectId, KmsObjects}; @@ -602,7 +602,7 @@ impl SchemeSync for GraphicsSchemeInner { let vt_state = self.vts.get_mut(vt).unwrap(); let Some(cursor_plane) = &mut vt_state.cursor_plane else { - return Err(Error::new(EINVAL)); + return Err(Error::new(ENXIO)); }; let update_buffer = data.flags() & DRM_MODE_CURSOR_BO != 0; @@ -612,7 +612,7 @@ impl SchemeSync for GraphicsSchemeInner { } else if let Some(buffer) = buffers.get(&data.handle()) { Some(buffer.clone()) } else { - return Err(Error::new(EINVAL)); + return Err(Error::new(ENOENT)); }; } @@ -852,7 +852,7 @@ impl SchemeSync for GraphicsSchemeInner { let buffer_id = data.handle(); if !buffers.contains_key(&buffer_id) { - return Err(Error::new(EINVAL)); + return Err(Error::new(ENOENT)); } // FIXME use a better scheme for creating map offsets @@ -916,7 +916,7 @@ impl SchemeSync for GraphicsSchemeInner { let vt_state = self.vts.get_mut(vt).unwrap(); let Some(cursor_plane) = &mut vt_state.cursor_plane else { - return Err(Error::new(EINVAL)); + return Err(Error::new(ENXIO)); }; let update_buffer = data.flags() & DRM_MODE_CURSOR_BO != 0; @@ -926,7 +926,7 @@ impl SchemeSync for GraphicsSchemeInner { } else if let Some(buffer) = buffers.get(&data.handle()) { Some(buffer.clone()) } else { - return Err(Error::new(EINVAL)); + return Err(Error::new(ENOENT)); }; cursor_plane.hot_x = data.hot_x(); cursor_plane.hot_y = data.hot_y();