summaryrefslogtreecommitdiff
path: root/src/screen/drm/request.zig
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2025-02-01 12:47:35 +0100
committerNathan Reiner <nathan@nathanreiner.xyz>2025-02-01 12:47:35 +0100
commit85bcada8cf78bdf2bfb3be583289686026e0f25e (patch)
tree0ce404c4840432db9b6d3addd3947a736d103382 /src/screen/drm/request.zig
parent2ce14aec655589f00442ab469b9d877a143eeefd (diff)
screen: start drm implementation
Diffstat (limited to 'src/screen/drm/request.zig')
-rw-r--r--src/screen/drm/request.zig19
1 files changed, 19 insertions, 0 deletions
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));
+ }
+};