diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-01 12:47:35 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-01 12:47:35 +0100 |
| commit | 85bcada8cf78bdf2bfb3be583289686026e0f25e (patch) | |
| tree | 0ce404c4840432db9b6d3addd3947a736d103382 /src/screen/drm/request.zig | |
| parent | 2ce14aec655589f00442ab469b9d877a143eeefd (diff) | |
screen: start drm implementation
Diffstat (limited to 'src/screen/drm/request.zig')
| -rw-r--r-- | src/screen/drm/request.zig | 19 |
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)); + } +}; |