Revision f3aaaa24

b/hw/usb-hid.c
45 45
typedef struct USBHIDState {
46 46
    USBDevice dev;
47 47
    HIDState hid;
48
    void *datain_opaque;
49
    void (*datain)(void *);
50 48
} USBHIDState;
51 49

  
52 50
enum {
......
362 360
{
363 361
    USBHIDState *us = container_of(hs, USBHIDState, hid);
364 362

  
365
    if (us->datain) {
366
        us->datain(us->datain_opaque);
367
    }
368

  
369 363
    usb_wakeup(&us->dev);
370 364
}
371 365

  
......
533 527
    return usb_hid_initfn(dev, HID_KEYBOARD);
534 528
}
535 529

  
536
void usb_hid_datain_cb(USBDevice *dev, void *opaque, void (*datain)(void *))
537
{
538
    USBHIDState *s = (USBHIDState *)dev;
539

  
540
    s->datain_opaque = opaque;
541
    s->datain = datain;
542
}
543

  
544 530
static const VMStateDescription vmstate_usb_ptr = {
545 531
    .name = "usb-ptr",
546 532
    .version_id = 1,
b/hw/usb.h
316 316
int usb_host_device_close(const char *devname);
317 317
void usb_host_info(Monitor *mon);
318 318

  
319
/* usb-hid.c */
320
void usb_hid_datain_cb(USBDevice *dev, void *opaque, void (*datain)(void *));
321

  
322 319
/* usb-bt.c */
323 320
USBDevice *usb_bt_init(HCIInfo *hci);
324 321

  

Also available in: Unified diff