import drivers.usb.usb as usb define HID_BOOT_PROTOCOL = 0 define HID_REPORT_PROTOCOL = 1 define HID_KBD_REPORT_SIZE = 8 define HID_MOUSE_REPORT_SIZE = 4 class hid_kbd_report: modifier: uint8 reserved: uint8 keycode: [6]uint8 class hid_mouse_report: buttons: uint8 dx: int8 dy: int8 wheel: int8 def init_keyboard(dev: usb.usb_device*) -> int: if dev.iface_class != 0x03: return -1 if dev.iface_protocol != 0x01: return -2 if dev.ep_in == 0: return -3 return 0 def init_mouse(dev: usb.usb_device*) -> int: if dev.iface_class != 0x03: return -1 if dev.iface_protocol != 0x02: return -2 if dev.ep_in == 0: return -3 return 0 def read_keyboard(dev: usb.usb_device*, report: hid_kbd_report*) -> int: return usb.read_interrupt(dev, &report) # 存疑 def read_mouse(dev: usb.usb_device*, report: hid_mouse_report*) -> int: return usb.read_interrupt(dev, &report)