From 85bcada8cf78bdf2bfb3be583289686026e0f25e Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Sat, 1 Feb 2025 12:47:35 +0100 Subject: screen: start drm implementation --- src/screen/drm/request.zig | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/screen/drm/request.zig (limited to 'src/screen/drm/request.zig') diff --git a/src/screen/drm/request.zig b/src/screen/drm/request.zig new file mode 100644 index 0000000..bf9701c --- /dev/null +++ b/src/screen/drm/request.zig @@ -0,0 +1,19 @@ +const std = @import("std"); +const os = std.os.linux; +const cerror = @import("../cerror.zig"); + +fn ioctl(fd: os.fd_t, request: u32, arg: usize) !void { + try cerror.from_usize(os.ioctl(fd, request, arg)); +} + +pub const Drm = enum(u8) { + const Self = @This(); + + get_resources = 0xA0, + get_connector = 0xA7, + + pub fn request(self: Self, fd: os.fd_t, T: type, arg: *T) !void { + const id = os.IOCTL.IOWR('d', @intFromEnum(self), T); + try ioctl(fd, id, @intFromPtr(arg)); + } +}; -- cgit v1.2.3-70-g09d2