From d89657d0a44d2140f7e8147794429df4268651a4 Mon Sep 17 00:00:00 2001 From: Daniel Samson <12231216+daniel-samson@users.noreply.github.com> Date: Mon, 13 Jul 2026 05:21:08 +0100 Subject: [PATCH] fix device-manager: debug prefix --- .../device-manager/device-manager.zig | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/system/services/device-manager/device-manager.zig b/system/services/device-manager/device-manager.zig index 4ae29a3..88f1021 100644 --- a/system/services/device-manager/device-manager.zig +++ b/system/services/device-manager/device-manager.zig @@ -191,7 +191,7 @@ fn addChild(parent: u64, bus_address: u64, identity: u64, device_id: u64, report fn pruneChildrenOf(reporter: u32) void { for (&children) |*child| { if (child.used and child.reporter == reporter) { - writeLine("device-manager: child removed (device {d} port {d})\n", .{ child.parent, child.bus_address }); + writeLine("system/services/device-manager: child removed (device {d} port {d})\n", .{ child.parent, child.bus_address }); child.used = false; const event = protocol.ChildRemoved{ .parent = child.parent, .bus_address = child.bus_address }; publishEvent(std.mem.asBytes(&event)); @@ -238,7 +238,7 @@ fn addDriver(name: []const u8, device_id: u64, speaks_protocol: bool) void { spawnDriver(driver); return; } - writeLine("device-manager: driver table full; cannot supervise {s}\n", .{name}); + writeLine("system/services/device-manager: driver table full; cannot supervise {s}\n", .{name}); } /// (Re)spawn a driver instance: supervised on the manager's own endpoint, the @@ -253,7 +253,7 @@ fn spawnDriver(driver: *Driver) void { argument_count = 1; } const child = system.spawnSupervised(driver.name(), arguments[0..argument_count], manager_endpoint) orelse { - writeLine("device-manager: failed to spawn {s}\n", .{driver.name()}); + writeLine("system/services/device-manager: failed to spawn {s}\n", .{driver.name()}); driver.state = .failed; return; }; @@ -267,9 +267,9 @@ fn spawnDriver(driver: *Driver) void { driver.state = .running; } if (driver.device_id != protocol.no_device) { - writeLine("device-manager: spawned {s} for device {d}\n", .{ driver.name(), driver.device_id }); + writeLine("system/services/device-manager: spawned {s} for device {d}\n", .{ driver.name(), driver.device_id }); } else { - writeLine("device-manager: spawned {s}\n", .{driver.name()}); + writeLine("system/services/device-manager: spawned {s}\n", .{driver.name()}); } } @@ -281,7 +281,7 @@ fn onDriverExit(driver: *Driver) void { const reason = runtime.process.exitReason(driver.process_id) orelse .fault; if (reason == .exited) { driver.state = .stopped; - writeLine("device-manager: {s} exited cleanly; not restarting\n", .{driver.name()}); + writeLine("system/services/device-manager: {s} exited cleanly; not restarting\n", .{driver.name()}); return; } const now = system.clock(); @@ -289,13 +289,13 @@ fn onDriverExit(driver: *Driver) void { driver.restarts = if (alive_ns < fast_death_ns) driver.restarts + 1 else 1; if (driver.restarts >= crash_loop_cap) { driver.state = .failed; - writeLine("device-manager: {s} is failing repeatedly (crash loop); giving up\n", .{driver.name()}); + writeLine("system/services/device-manager: {s} is failing repeatedly (crash loop); giving up\n", .{driver.name()}); return; } const delay_ms = backoff_base_ms << @intCast(driver.restarts - 1); driver.state = .restarting; driver.restart_due_ns = now + delay_ms * 1_000_000; - writeLine("device-manager: restarting {s} in {d} ms (died: {s})\n", .{ driver.name(), delay_ms, @tagName(reason) }); + writeLine("system/services/device-manager: restarting {s} in {d} ms (died: {s})\n", .{ driver.name(), delay_ms, @tagName(reason) }); _ = system.timerOnce(manager_endpoint, delay_ms + 50); } @@ -306,7 +306,7 @@ fn onDriverExit(driver: *Driver) void { fn sweepDeadlines() void { const now = system.clock(); if (test_kill_pid != 0 and now >= test_kill_due_ns) { - writeLine("device-manager: test mode: killing the reporter\n", .{}); + writeLine("system/services/device-manager: test mode: killing the reporter\n", .{}); _ = system.kill(test_kill_pid); test_kill_pid = 0; } @@ -314,7 +314,7 @@ fn sweepDeadlines() void { if (!driver.used) continue; switch (driver.state) { .awaiting_hello => if (now >= driver.hello_deadline_ns) { - writeLine("device-manager: {s} missed its hello deadline\n", .{driver.name()}); + writeLine("system/services/device-manager: {s} missed its hello deadline\n", .{driver.name()}); _ = system.kill(driver.process_id); // The exit notification finishes the job via onDriverExit. }, @@ -331,7 +331,7 @@ fn initialise(endpoint: runtime.ipc.Handle) bool { // Enumerate into a heap buffer (too big for the one-page user stack). const buffer = runtime.allocator().alloc(device.DeviceDescriptor, 64) catch { - _ = runtime.system.write("device-manager: out of memory\n"); + _ = runtime.system.write("system/services/device-manager: out of memory\n"); return false; }; const total = device.enumerate(buffer); @@ -372,9 +372,9 @@ fn initialise(endpoint: runtime.ipc.Handle) bool { } if (matched == 0) { - _ = runtime.system.write("device-manager: no matchable devices\n"); + _ = runtime.system.write("system/services/device-manager: no matchable devices\n"); } else { - _ = runtime.system.write("device-manager: ok\n"); + _ = runtime.system.write("system/services/device-manager: ok\n"); } return true; } @@ -395,13 +395,13 @@ fn onMessage(message: []const u8, reply: []u8, sender: u32, capability: ?runtime var status: i32 = 0; if (hello.version != protocol.version) { status = -1; - writeLine("device-manager: refused hello (version {d}) from process {d}\n", .{ hello.version, sender }); + writeLine("system/services/device-manager: refused hello (version {d}) from process {d}\n", .{ hello.version, sender }); } else if (driverByProcess(sender)) |driver| { driver.state = .running; - writeLine("device-manager: hello from {s} (device {d})\n", .{ driver.name(), hello.device_id }); + writeLine("system/services/device-manager: hello from {s} (device {d})\n", .{ driver.name(), hello.device_id }); } else { status = -1; - writeLine("device-manager: hello from unknown process {d}\n", .{sender}); + writeLine("system/services/device-manager: hello from unknown process {d}\n", .{sender}); } const hello_reply = protocol.HelloReply{ .status = status }; @memcpy(reply[0..protocol.reply_size], std.mem.asBytes(&hello_reply)); @@ -417,7 +417,7 @@ fn onChildAdded(message: []const u8, reply: []u8, sender: u32) usize { var status: i32 = 0; if (driverByProcess(sender)) |driver| { if (!addChild(report.parent, report.bus_address, report.identity, report.device_id, sender)) status = -1; - writeLine("device-manager: child added (device {d} port {d}, identity {d}) by {s}\n", .{ report.parent, report.bus_address, report.identity, driver.name() }); + writeLine("system/services/device-manager: child added (device {d} port {d}, identity {d}) by {s}\n", .{ report.parent, report.bus_address, report.identity, driver.name() }); if (status == 0) publishEvent(message[0..protocol.child_added_size]); // Matching from reports (M19.3): a registered child whose identity // names a driver gets one, once — re-reports after a bus restart @@ -478,7 +478,7 @@ fn onChildRemoved(message: []const u8, reply: []u8, sender: u32) usize { var status: i32 = -1; for (&children) |*child| { if (child.used and child.parent == report.parent and child.bus_address == report.bus_address and child.reporter == sender) { - writeLine("device-manager: child removed (device {d} port {d})\n", .{ child.parent, child.bus_address }); + writeLine("system/services/device-manager: child removed (device {d} port {d})\n", .{ child.parent, child.bus_address }); child.used = false; status = 0; }