diff --git a/redox-ioctl/src/drm.rs b/redox-ioctl/src/drm.rs index 062407b103..50fb22253f 100644 --- a/redox-ioctl/src/drm.rs +++ b/redox-ioctl/src/drm.rs @@ -4,16 +4,16 @@ use core::{ ffi::{c_char, c_int, c_uint}, iter, mem, slice, }; -use drm_sys::drm_clip_rect; pub use drm_sys::{ - __kernel_size_t, DRM_PROP_NAME_LEN, drm_get_cap, drm_mode_card_res, + __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_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, drm_mode_get_property, drm_mode_map_dumb, drm_mode_modeinfo, drm_mode_obj_get_properties, - drm_mode_property_enum, drm_mode_set_plane, drm_set_client_cap, drm_version, + drm_mode_property_enum, drm_mode_set_plane, drm_set_client_cap, drm_set_version, drm_unique, + drm_version, }; pub const VERSION: u64 = 0; @@ -31,6 +31,24 @@ define_ioctl_data! { } } +pub const GET_UNIQUE: u64 = 0x01; +define_ioctl_data! { + struct drm_unique, DrmUnique { + unique_len: __kernel_size_t, + unique: *mut c_char [array], + } +} + +pub const SET_VERSION: u64 = 0x07; +define_ioctl_data! { + struct drm_set_version, DrmSetVersion { + drm_di_major: c_int, + drm_di_minor: c_int, + drm_dd_major: c_int, + drm_dd_minor: c_int, + } +} + pub const GET_CAP: u64 = 0x0C; pub use drm_sys::DRM_CAP_DUMB_BUFFER; define_ioctl_data! { diff --git a/src/header/sys_ioctl/redox/drm.rs b/src/header/sys_ioctl/redox/drm.rs index 0557178ee8..a395baddd1 100644 --- a/src/header/sys_ioctl/redox/drm.rs +++ b/src/header/sys_ioctl/redox/drm.rs @@ -91,6 +91,8 @@ pub(super) unsafe fn ioctl(fd: c_int, func: u8, buf: IoctlBuffer) -> Result unsafe { dev.read_write_ioctl::(buf, VERSION) }, + 0x01 => unsafe { dev.read_write_ioctl::(buf, GET_UNIQUE) }, + 0x07 => unsafe { dev.read_write_ioctl::(buf, SET_VERSION) }, 0x0C => unsafe { dev.read_write_ioctl::(buf, GET_CAP) }, 0x0D => unsafe { dev.write_ioctl::(buf, SET_CLIENT_CAP) }, 0xA0 => unsafe { dev.read_write_ioctl::(buf, MODE_CARD_RES) },