fix / debug
This commit is contained in:
@@ -72,17 +72,17 @@ fn modifierWord(modifiers: scancode.ModifierSnapshot) u32 {
|
|||||||
pub fn main(init: runtime.process.Init) void {
|
pub fn main(init: runtime.process.Init) void {
|
||||||
const hid = init.arguments.get(1).?;
|
const hid = init.arguments.get(1).?;
|
||||||
if (hid.len == 0) {
|
if (hid.len == 0) {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: no HID argument\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: no HID argument\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
writeLine("system/drivers/ps2-bus/keyboard: starting for hid {s}\n", .{hid});
|
writeLine("/system/drivers/ps2-bus/keyboard: starting for hid {s}\n", .{hid});
|
||||||
|
|
||||||
const buffer = runtime.allocator().alloc(device.DeviceDescriptor, 64) catch {
|
const buffer = runtime.allocator().alloc(device.DeviceDescriptor, 64) catch {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: out of memory\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: out of memory\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
if (device.findDeviceDescriptorByHid(buffer, hid) == null) {
|
if (device.findDeviceDescriptorByHid(buffer, hid) == null) {
|
||||||
writeLine("system/drivers/ps2-bus/keyboard: no device for hid {s}\n", .{hid});
|
writeLine("/system/drivers/ps2-bus/keyboard: no device for hid {s}\n", .{hid});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,38 +90,38 @@ pub fn main(init: runtime.process.Init) void {
|
|||||||
// absent (as today) it defaults to us.
|
// absent (as today) it defaults to us.
|
||||||
const layout_name = init.arguments.get(2) orelse "us";
|
const layout_name = init.arguments.get(2) orelse "us";
|
||||||
const layout = xkb.byName(layout_name) orelse xkb.us;
|
const layout = xkb.byName(layout_name) orelse xkb.us;
|
||||||
writeLine("system/drivers/ps2-bus/keyboard: layout {s}\n", .{layout.name});
|
writeLine("/system/drivers/ps2-bus/keyboard: layout {s}\n", .{layout.name});
|
||||||
|
|
||||||
// Attach to the bus: hand it our endpoint, and it forwards every byte the
|
// Attach to the bus: hand it our endpoint, and it forwards every byte the
|
||||||
// keyboard sends (it owns the controller; we own the decoding).
|
// keyboard sends (it owns the controller; we own the decoding).
|
||||||
const bus = lookupBus() orelse {
|
const bus = lookupBus() orelse {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: ps2-bus service unavailable\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: ps2-bus service unavailable\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
const endpoint = ipc.createIpcEndpoint() orelse {
|
const endpoint = ipc.createIpcEndpoint() orelse {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: no endpoint\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: no endpoint\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
var attach = ps2.AttachRequest{ .device_type = @intFromEnum(ps2.DeviceType.keyboard) };
|
var attach = ps2.AttachRequest{ .device_type = @intFromEnum(ps2.DeviceType.keyboard) };
|
||||||
var attach_reply: [@sizeOf(ps2.AttachReply)]u8 = undefined;
|
var attach_reply: [@sizeOf(ps2.AttachReply)]u8 = undefined;
|
||||||
const attached = ipc.callCap(bus, std.mem.asBytes(&attach), &attach_reply, endpoint) catch {
|
const attached = ipc.callCap(bus, std.mem.asBytes(&attach), &attach_reply, endpoint) catch {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: attach call failed\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: attach call failed\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
if (attached.len < @sizeOf(ps2.AttachReply) or
|
if (attached.len < @sizeOf(ps2.AttachReply) or
|
||||||
std.mem.bytesToValue(ps2.AttachReply, attach_reply[0..@sizeOf(ps2.AttachReply)]).status != @intFromEnum(ps2.AttachStatus.ok))
|
std.mem.bytesToValue(ps2.AttachReply, attach_reply[0..@sizeOf(ps2.AttachReply)]).status != @intFromEnum(ps2.AttachStatus.ok))
|
||||||
{
|
{
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: attach refused\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: attach refused\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Broadcast keyboard events through the input service so programs can listen
|
// Broadcast keyboard events through the input service so programs can listen
|
||||||
// for them (docs/input.md).
|
// for them (docs/input.md).
|
||||||
var source = runtime.input.connectSource() orelse {
|
var source = runtime.input.connectSource() orelse {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: input service unavailable\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: input service unavailable\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/keyboard: ok\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/keyboard: ok\n");
|
||||||
|
|
||||||
var decoder = scancode.Decoder{};
|
var decoder = scancode.Decoder{};
|
||||||
var state = scancode.KeyboardState{};
|
var state = scancode.KeyboardState{};
|
||||||
|
|||||||
@@ -51,50 +51,50 @@ pub fn main(init: runtime.process.Init) void {
|
|||||||
const hid = init.arguments.get(1).?;
|
const hid = init.arguments.get(1).?;
|
||||||
|
|
||||||
if (hid.len == 0) {
|
if (hid.len == 0) {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: no HID argument\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: no HID argument\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
writeLine("system/drivers/ps2-bus/mouse: starting for hid {s}\n", .{hid});
|
writeLine("/system/drivers/ps2-bus/mouse: starting for hid {s}\n", .{hid});
|
||||||
|
|
||||||
const buffer = runtime.allocator().alloc(device.DeviceDescriptor, 64) catch {
|
const buffer = runtime.allocator().alloc(device.DeviceDescriptor, 64) catch {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: out of memory\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: out of memory\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
if (device.findDeviceDescriptorByHid(buffer, hid) == null) {
|
if (device.findDeviceDescriptorByHid(buffer, hid) == null) {
|
||||||
writeLine("system/drivers/ps2-bus/mouse: no device for hid {s}\n", .{hid});
|
writeLine("/system/drivers/ps2-bus/mouse: no device for hid {s}\n", .{hid});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attach to the bus: hand it our endpoint, and it forwards every byte the
|
// Attach to the bus: hand it our endpoint, and it forwards every byte the
|
||||||
// mouse sends (it owns the controller; we own the decoding).
|
// mouse sends (it owns the controller; we own the decoding).
|
||||||
const bus = lookupBus() orelse {
|
const bus = lookupBus() orelse {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: ps2-bus service unavailable\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: ps2-bus service unavailable\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
const endpoint = ipc.createIpcEndpoint() orelse {
|
const endpoint = ipc.createIpcEndpoint() orelse {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: no endpoint\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: no endpoint\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
var attach = ps2.AttachRequest{ .device_type = @intFromEnum(ps2.DeviceType.mouse) };
|
var attach = ps2.AttachRequest{ .device_type = @intFromEnum(ps2.DeviceType.mouse) };
|
||||||
var attach_reply: [@sizeOf(ps2.AttachReply)]u8 = undefined;
|
var attach_reply: [@sizeOf(ps2.AttachReply)]u8 = undefined;
|
||||||
const attached = ipc.callCap(bus, std.mem.asBytes(&attach), &attach_reply, endpoint) catch {
|
const attached = ipc.callCap(bus, std.mem.asBytes(&attach), &attach_reply, endpoint) catch {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: attach call failed\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: attach call failed\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
if (attached.len < @sizeOf(ps2.AttachReply) or
|
if (attached.len < @sizeOf(ps2.AttachReply) or
|
||||||
std.mem.bytesToValue(ps2.AttachReply, attach_reply[0..@sizeOf(ps2.AttachReply)]).status != @intFromEnum(ps2.AttachStatus.ok))
|
std.mem.bytesToValue(ps2.AttachReply, attach_reply[0..@sizeOf(ps2.AttachReply)]).status != @intFromEnum(ps2.AttachStatus.ok))
|
||||||
{
|
{
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: attach refused\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: attach refused\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Broadcast mouse events through the input service so programs can listen
|
// Broadcast mouse events through the input service so programs can listen
|
||||||
// for them (docs/input.md).
|
// for them (docs/input.md).
|
||||||
var source = runtime.input.connectSource() orelse {
|
var source = runtime.input.connectSource() orelse {
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: input service unavailable\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: input service unavailable\n");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
_ = runtime.system.write("system/drivers/ps2-bus/mouse: ok\n");
|
_ = runtime.system.write("/system/drivers/ps2-bus/mouse: ok\n");
|
||||||
|
|
||||||
var assembler = mouse_packet.Assembler{};
|
var assembler = mouse_packet.Assembler{};
|
||||||
var buttons: u32 = 0;
|
var buttons: u32 = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user