我看到probe有这样一段struct usb_mouse { 
        char name[128]; 
        char phys[64]; 
        struct usb_device *usbdev; 
        struct input_dev *dev; 
        struct urb *irq; 
 
        signed char *data; 
        dma_addr_t data_dma; 
}; 
 
static void usb_mouse_irq(struct urb *urb) 
{ 
        struct usb_mouse *mouse = urb->context; 
        signed char *data = mouse->data; 
        struct input_dev *dev = mouse->dev; 
        int status; 
 
        switch (urb->status) { 
        case 0:                        /* success */ 
                break; 
        case -ECONNRESET:        /* unlink */ 
        case -ENOENT: 
        case -ESHUTDOWN: 
                return; 
        /* -EPIPE:  should clear the halt */ 
        default:                /* error */ 
                goto resubmit; 
        } 
 
        input_report_key(dev, BTN_LEFT,   data[0] & 0x01); 
        input_report_key(dev, BTN_RIGHT,  data[0] & 0x02); 
        input_report_key(dev, BTN_MIDDLE, data[0] & 0x04); 
        input_report_key(dev, BTN_SIDE,   data[0] & 0x08); 
        input_report_key(dev, BTN_EXTRA,  data[0] & 0x10); 
 
        input_report_rel(dev, REL_X,     data[1]); 
        input_report_rel(dev, REL_Y,     data[2]); 
        input_report_rel(dev, REL_WHEEL, data[3]); 
 
        input_sync(dev); 
date指针的偏移数据到底存到哪里去了呀,感觉会丢失, |