Merge branch 'drm15' into 'master'

Fix DRM_IOCTL_MODE_SETPLANE and add DRM_IOCTL_MODE_CLOSEFB

See merge request redox-os/relibc!1328
This commit is contained in:
bjorn3
2026-05-14 19:20:57 +00:00
2 changed files with 12 additions and 2 deletions
+9 -1
View File
@@ -7,7 +7,7 @@ use core::{
pub use drm_sys::{
__kernel_size_t, DRM_PROP_NAME_LEN, drm_clip_rect, drm_get_cap, drm_mode_card_res,
drm_mode_connector_set_property, drm_mode_create_dumb, drm_mode_crtc,
drm_mode_closefb, drm_mode_connector_set_property, drm_mode_create_dumb, drm_mode_crtc,
drm_mode_crtc_page_flip_target, drm_mode_cursor, drm_mode_cursor2, drm_mode_destroy_dumb,
drm_mode_fb_cmd, drm_mode_fb_cmd2, drm_mode_fb_dirty_cmd, drm_mode_get_blob,
drm_mode_get_connector, drm_mode_get_encoder, drm_mode_get_plane, drm_mode_get_plane_res,
@@ -337,3 +337,11 @@ define_ioctl_data! {
modifier: [u64; 4],
}
}
pub const MODE_CLOSE_FB: u64 = 0xD0;
define_ioctl_data! {
struct drm_mode_closefb, DrmModeClosefb {
fb_id: u32,
pad: u32,
}
}
+3 -1
View File
@@ -117,13 +117,15 @@ pub(super) unsafe fn ioctl(fd: c_int, func: u8, buf: IoctlBuffer) -> Result<c_in
0xB3 => unsafe { dev.read_write_ioctl::<drm_mode_map_dumb>(buf, MODE_MAP_DUMB) },
0xB4 => unsafe { dev.read_write_ioctl::<drm_mode_destroy_dumb>(buf, MODE_DESTROY_DUMB) },
0xB5 => unsafe { dev.read_write_ioctl::<drm_mode_get_plane_res>(buf, MODE_GET_PLANE_RES) },
0xB8 => unsafe { dev.read_write_ioctl::<drm_mode_fb_cmd2>(buf, MODE_ADD_FB2) },
0xB6 => unsafe { dev.read_write_ioctl::<drm_mode_get_plane>(buf, MODE_GET_PLANE) },
0xB7 => unsafe { dev.read_write_ioctl::<drm_mode_set_plane>(buf, MODE_SET_PLANE) },
0xB8 => unsafe { dev.read_write_ioctl::<drm_mode_fb_cmd2>(buf, MODE_ADD_FB2) },
0xB9 => unsafe {
dev.read_write_ioctl::<drm_mode_obj_get_properties>(buf, MODE_OBJ_GET_PROPERTIES)
},
0xBB => unsafe { dev.write_ioctl::<drm_mode_cursor2>(buf, MODE_CURSOR2) },
0xCE => unsafe { dev.read_write_ioctl::<drm_mode_fb_cmd2>(buf, MODE_GET_FB2) },
0xD0 => unsafe { dev.read_write_ioctl::<drm_mode_closefb>(buf, MODE_CLOSE_FB) },
_ => {
todo_skip!(
0,