From 811a6bd572f4c6b26e99b4e746f5d710947ee934 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Sun, 2 Feb 2025 21:54:14 +0100 Subject: screen: drm change struct layout --- src/screen/drm/connector/connection.zig | 6 ---- src/screen/drm/connector/kind.zig | 23 ++++++++++++++++ src/screen/drm/connector/root.zig | 49 ++++++++++----------------------- src/screen/drm/connector/status.zig | 6 ++++ src/screen/drm/connector/type.zig | 23 ---------------- 5 files changed, 43 insertions(+), 64 deletions(-) delete mode 100644 src/screen/drm/connector/connection.zig create mode 100644 src/screen/drm/connector/kind.zig create mode 100644 src/screen/drm/connector/status.zig delete mode 100644 src/screen/drm/connector/type.zig (limited to 'src/screen/drm/connector') diff --git a/src/screen/drm/connector/connection.zig b/src/screen/drm/connector/connection.zig deleted file mode 100644 index 7377800..0000000 --- a/src/screen/drm/connector/connection.zig +++ /dev/null @@ -1,6 +0,0 @@ -pub const Connection = enum(u32) { - undefined_state = 0, - connected = 1, - disconnected = 2, - unknown = 3, -}; diff --git a/src/screen/drm/connector/kind.zig b/src/screen/drm/connector/kind.zig new file mode 100644 index 0000000..4c89b4a --- /dev/null +++ b/src/screen/drm/connector/kind.zig @@ -0,0 +1,23 @@ +pub const Kind = enum(u32) { + unknown = 0, + vga = 1, + dvi_i = 2, + dvi_d = 3, + dvi_a = 4, + composite = 5, + s_video = 6, + lvds = 7, + component = 8, + nine_pin_din = 9, + display_port = 10, + hdmi_a = 11, + hdmi_b = 12, + tv = 13, + edp = 14, + virtual = 15, + dsi = 16, + dpi = 17, + writeback = 18, + spi = 19, + usb = 20, +}; diff --git a/src/screen/drm/connector/root.zig b/src/screen/drm/connector/root.zig index 6141899..64686b9 100644 --- a/src/screen/drm/connector/root.zig +++ b/src/screen/drm/connector/root.zig @@ -1,36 +1,15 @@ const std = @import("std"); const os = std.os.linux; -const Drm = @import("../request.zig").Drm; -const Card = @import("../card.zig").Card; -const FrameBuffer = @import("../frame-buffer/root.zig").FrameBuffer; - -pub const Connection = @import("connection.zig").Connection; -pub const Mode = @import("mode.zig").Mode; -pub const ConnectorType = @import("type.zig").Type; - -const RawConnector = extern struct { - encoder_ids: ?*u32, - modes: ?*Mode, - prop_ids: ?*u32, - prop_value_ids: ?*u64, - count_modes: u32, - count_props: u32, - count_encoders: u32, - encoder_id: u32, - id: u32, - type: ConnectorType, - type_id: u32, - connection: Connection, - mm_width: u32, - mm_height: u32, - subpixel: u32, - pad: u32, -}; +const drm = @import("../root.zig"); pub const Connector = struct { + pub const Status = @import("status.zig").Status; + pub const Mode = @import("mode.zig").Mode; + pub const Kind = @import("kind.zig").Kind; + const Self = @This(); - card: *Card, + card: *drm.Card, encoder_ids: []u32, modes: []Mode, @@ -38,24 +17,24 @@ pub const Connector = struct { prop_value_ids: []u64, encoder_id: u32, id: u32, - type: ConnectorType, + kind: Kind, type_id: u32, - connection: Connection, + connection: Status, mm_width: u32, mm_height: u32, subpixel: u32, pad: u32, - pub fn raw_without_ids(card: *Card, id: u32) !RawConnector { - var result = std.mem.zeroInit(RawConnector, .{ .id = id }); - try Drm.get_connector.request(card.file.handle, RawConnector, &result); + pub fn raw_without_ids(card: *drm.Card, id: u32) !drm.request.Connector { + var result = std.mem.zeroInit(drm.request.Connector, .{ .id = id }); + try card.request(.get_connector, &result); return result; } // NOTE: This function does not take in account // that there might be some hot-plugging going // on. This might have to change in the future. - pub fn init(card: *Card, id: u32) !Self { + pub fn init(card: *drm.Card, id: u32) !Self { var raw = try Self.raw_without_ids(card, id); const resources = .{ .encoder_ids = try card.allocator.alloc(u32, raw.count_encoders), @@ -64,7 +43,7 @@ pub const Connector = struct { .prop_value_ids = try card.allocator.alloc(u64, raw.count_props), .encoder_id = raw.encoder_id, .id = raw.id, - .type = raw.type, + .kind = raw.type, .type_id = raw.type_id, .connection = raw.connection, .mm_width = raw.mm_width, @@ -84,7 +63,7 @@ pub const Connector = struct { raw.prop_ids = @ptrCast(resources.prop_ids); raw.prop_value_ids = @ptrCast(resources.prop_value_ids); - try Drm.get_connector.request(card.file.handle, RawConnector, &raw); + try card.request(.get_connector, &raw); return resources; } diff --git a/src/screen/drm/connector/status.zig b/src/screen/drm/connector/status.zig new file mode 100644 index 0000000..3358e34 --- /dev/null +++ b/src/screen/drm/connector/status.zig @@ -0,0 +1,6 @@ +pub const Status = enum(u32) { + undefined_state = 0, + connected = 1, + disconnected = 2, + unknown = 3, +}; diff --git a/src/screen/drm/connector/type.zig b/src/screen/drm/connector/type.zig deleted file mode 100644 index c813c66..0000000 --- a/src/screen/drm/connector/type.zig +++ /dev/null @@ -1,23 +0,0 @@ -pub const Type = enum(u32) { - unknown = 0, - vga = 1, - dvi_i = 2, - dvi_d = 3, - dvi_a = 4, - composite = 5, - s_video = 6, - lvds = 7, - component = 8, - nine_pin_din = 9, - display_port = 10, - hdmi_a = 11, - hdmi_b = 12, - tv = 13, - edp = 14, - virtual = 15, - dsi = 16, - dpi = 17, - writeback = 18, - spi = 19, - usb = 20, -}; -- cgit v1.2.3-70-g09d2