Lines Matching refs:uurb

1457 find_memory_area(struct usb_dev_state *ps, const struct usbdevfs_urb *uurb)  in find_memory_area()  argument
1461 unsigned long uurb_start = (unsigned long)uurb->buffer; in find_memory_area()
1467 if (uurb->buffer_length > iter->vm_start + iter->size - in find_memory_area()
1481 static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb, in proc_do_submiturb() argument
1503 if (uurb->type == USBDEVFS_URB_TYPE_ISO) in proc_do_submiturb()
1506 if (uurb->flags & ~mask) in proc_do_submiturb()
1509 if ((unsigned int)uurb->buffer_length >= USBFS_XFER_MAX) in proc_do_submiturb()
1511 if (uurb->buffer_length > 0 && !uurb->buffer) in proc_do_submiturb()
1513 if (!(uurb->type == USBDEVFS_URB_TYPE_CONTROL && in proc_do_submiturb()
1514 (uurb->endpoint & ~USB_ENDPOINT_DIR_MASK) == 0)) { in proc_do_submiturb()
1515 ifnum = findintfep(ps->dev, uurb->endpoint); in proc_do_submiturb()
1522 ep = ep_to_host_endpoint(ps->dev, uurb->endpoint); in proc_do_submiturb()
1525 is_in = (uurb->endpoint & USB_ENDPOINT_DIR_MASK) != 0; in proc_do_submiturb()
1528 switch (uurb->type) { in proc_do_submiturb()
1533 if (uurb->buffer_length < 8) in proc_do_submiturb()
1538 if (copy_from_user(dr, uurb->buffer, 8)) { in proc_do_submiturb()
1542 if (uurb->buffer_length < (le16_to_cpu(dr->wLength) + 8)) { in proc_do_submiturb()
1550 uurb->buffer_length = le16_to_cpu(dr->wLength); in proc_do_submiturb()
1551 uurb->buffer += 8; in proc_do_submiturb()
1552 if ((dr->bRequestType & USB_DIR_IN) && uurb->buffer_length) { in proc_do_submiturb()
1554 uurb->endpoint |= USB_DIR_IN; in proc_do_submiturb()
1557 uurb->endpoint &= ~USB_DIR_IN; in proc_do_submiturb()
1582 uurb->type = USBDEVFS_URB_TYPE_INTERRUPT; in proc_do_submiturb()
1585 num_sgs = DIV_ROUND_UP(uurb->buffer_length, USB_SG_SIZE); in proc_do_submiturb()
1589 stream_id = uurb->stream_id; in proc_do_submiturb()
1604 if (uurb->number_of_packets < 1 || in proc_do_submiturb()
1605 uurb->number_of_packets > 128) in proc_do_submiturb()
1609 number_of_packets = uurb->number_of_packets; in proc_do_submiturb()
1630 uurb->buffer_length = totlen; in proc_do_submiturb()
1637 if (uurb->buffer_length > 0 && in proc_do_submiturb()
1638 !access_ok(uurb->buffer, uurb->buffer_length)) { in proc_do_submiturb()
1648 as->usbm = find_memory_area(ps, uurb); in proc_do_submiturb()
1662 (as->usbm ? 0 : uurb->buffer_length) + in proc_do_submiturb()
1680 totlen = uurb->buffer_length; in proc_do_submiturb()
1691 if (copy_from_user(buf, uurb->buffer, u)) { in proc_do_submiturb()
1695 uurb->buffer += u; in proc_do_submiturb()
1699 } else if (uurb->buffer_length > 0) { in proc_do_submiturb()
1701 unsigned long uurb_start = (unsigned long)uurb->buffer; in proc_do_submiturb()
1706 as->urb->transfer_buffer = kmalloc(uurb->buffer_length, in proc_do_submiturb()
1714 uurb->buffer, in proc_do_submiturb()
1715 uurb->buffer_length)) { in proc_do_submiturb()
1719 } else if (uurb->type == USBDEVFS_URB_TYPE_ISO) { in proc_do_submiturb()
1727 uurb->buffer_length); in proc_do_submiturb()
1732 as->urb->pipe = (uurb->type << 30) | in proc_do_submiturb()
1733 __create_pipe(ps->dev, uurb->endpoint & 0xf) | in proc_do_submiturb()
1734 (uurb->endpoint & USB_DIR_IN); in proc_do_submiturb()
1741 if (uurb->flags & USBDEVFS_URB_ISO_ASAP) in proc_do_submiturb()
1743 if (allow_short && uurb->flags & USBDEVFS_URB_SHORT_NOT_OK) in proc_do_submiturb()
1745 if (allow_zero && uurb->flags & USBDEVFS_URB_ZERO_PACKET) in proc_do_submiturb()
1747 if (uurb->flags & USBDEVFS_URB_NO_INTERRUPT) in proc_do_submiturb()
1751 if (!allow_short && uurb->flags & USBDEVFS_URB_SHORT_NOT_OK) in proc_do_submiturb()
1753 if (!allow_zero && uurb->flags & USBDEVFS_URB_ZERO_PACKET) in proc_do_submiturb()
1756 as->urb->transfer_buffer_length = uurb->buffer_length; in proc_do_submiturb()
1759 as->urb->start_frame = uurb->start_frame; in proc_do_submiturb()
1764 if (uurb->type == USBDEVFS_URB_TYPE_ISO || in proc_do_submiturb()
1786 unsigned long uurb_start = (unsigned long)uurb->buffer; in proc_do_submiturb()
1791 } else if (is_in && uurb->buffer_length > 0) in proc_do_submiturb()
1792 as->userbuffer = uurb->buffer; in proc_do_submiturb()
1793 as->signr = uurb->signr; in proc_do_submiturb()
1819 if (uurb->flags & USBDEVFS_URB_BULK_CONTINUATION) in proc_do_submiturb()
1856 struct usbdevfs_urb uurb; in proc_submiturb() local
1859 if (copy_from_user(&uurb, arg, sizeof(uurb))) in proc_submiturb()
1865 return proc_do_submiturb(ps, &uurb, in proc_submiturb()
2042 struct usbdevfs_urb32 __user *uurb) in get_urb32() argument
2045 if (copy_from_user(&urb32, uurb, sizeof(*uurb))) in get_urb32()
2064 struct usbdevfs_urb uurb; in proc_submiturb_compat() local
2067 if (get_urb32(&uurb, (struct usbdevfs_urb32 __user *)arg)) in proc_submiturb_compat()
2073 return proc_do_submiturb(ps, &uurb, in proc_submiturb_compat()