.vendor = const_le16(0x0627), /* same we use for usb hid devices */ .product = const_le16(0x0003), .version = const_le16(0x0001), }, },{ .select = VIRTIO_INPUT_CFG_EV_BITS, .subsel = EV_ABS, .size = 1, .u.bitmap = { (1 << ABS_X) | (1 << ABS_Y), }, },{ .select = VIRTIO_INPUT_CFG_ABS_INFO, .subsel = ABS_X, .size = sizeof(virtio_input_absinfo), .u.abs.max = const_le32(INPUT_EVENT_ABS_SIZE), },{ .select = VIRTIO_INPUT_CFG_ABS_INFO, .subsel = ABS_Y, .size = sizeof(virtio_input_absinfo), .u.abs.max = const_le32(INPUT_EVENT_ABS_SIZE), }, { /* end of list */ }, }; static void virtio_tablet_init(Object *obj) { VirtIOInputHID *vhid = VIRTIO_INPUT_HID(obj); VirtIOInput *vinput = VIRTIO_INPUT(obj); vhid->handler = &virtio_tablet_handler;
.vendor = const_le16(0x0627), /* same we use for usb hid devices */ .product = const_le16(0x0003), .version = const_le16(0x0001), }, },{ .select = VIRTIO_INPUT_CFG_EV_BITS, .subsel = EV_ABS, .size = 1, .u.bitmap = { (1 << ABS_X) | (1 << ABS_Y), }, },{ .select = VIRTIO_INPUT_CFG_ABS_INFO, .subsel = ABS_X, .size = sizeof(virtio_input_absinfo), .u.abs.min = const_le32(INPUT_EVENT_ABS_MIN), .u.abs.max = const_le32(INPUT_EVENT_ABS_MAX), },{ .select = VIRTIO_INPUT_CFG_ABS_INFO, .subsel = ABS_Y, .size = sizeof(virtio_input_absinfo), .u.abs.min = const_le32(INPUT_EVENT_ABS_MIN), .u.abs.max = const_le32(INPUT_EVENT_ABS_MAX), }, { /* end of list */ }, }; static void virtio_tablet_init(Object *obj) { VirtIOInputHID *vhid = VIRTIO_INPUT_HID(obj); VirtIOInput *vinput = VIRTIO_INPUT(obj);