Lines Matching refs:uurb

1404 find_memory_area(struct usb_dev_state *ps, const struct usbdevfs_urb *uurb)  in find_memory_area()  argument
1408 unsigned long uurb_start = (unsigned long)uurb->buffer; in find_memory_area()
1414 if (uurb->buffer_length > iter->vm_start + iter->size - in find_memory_area()
1428 static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb, in proc_do_submiturb() argument
1450 if (uurb->type == USBDEVFS_URB_TYPE_ISO) in proc_do_submiturb()
1453 if (uurb->flags & ~mask) in proc_do_submiturb()
1456 if ((unsigned int)uurb->buffer_length >= USBFS_XFER_MAX) in proc_do_submiturb()
1458 if (uurb->buffer_length > 0 && !uurb->buffer) in proc_do_submiturb()
1460 if (!(uurb->type == USBDEVFS_URB_TYPE_CONTROL && in proc_do_submiturb()
1461 (uurb->endpoint & ~USB_ENDPOINT_DIR_MASK) == 0)) { in proc_do_submiturb()
1462 ifnum = findintfep(ps->dev, uurb->endpoint); in proc_do_submiturb()
1469 ep = ep_to_host_endpoint(ps->dev, uurb->endpoint); in proc_do_submiturb()
1472 is_in = (uurb->endpoint & USB_ENDPOINT_DIR_MASK) != 0; in proc_do_submiturb()
1475 switch (uurb->type) { in proc_do_submiturb()
1480 if (uurb->buffer_length < 8) in proc_do_submiturb()
1485 if (copy_from_user(dr, uurb->buffer, 8)) { in proc_do_submiturb()
1489 if (uurb->buffer_length < (le16_to_cpup(&dr->wLength) + 8)) { in proc_do_submiturb()
1497 uurb->buffer_length = le16_to_cpup(&dr->wLength); in proc_do_submiturb()
1498 uurb->buffer += 8; in proc_do_submiturb()
1499 if ((dr->bRequestType & USB_DIR_IN) && uurb->buffer_length) { in proc_do_submiturb()
1501 uurb->endpoint |= USB_DIR_IN; in proc_do_submiturb()
1504 uurb->endpoint &= ~USB_DIR_IN; in proc_do_submiturb()
1529 uurb->type = USBDEVFS_URB_TYPE_INTERRUPT; in proc_do_submiturb()
1532 num_sgs = DIV_ROUND_UP(uurb->buffer_length, USB_SG_SIZE); in proc_do_submiturb()
1536 stream_id = uurb->stream_id; in proc_do_submiturb()
1551 if (uurb->number_of_packets < 1 || in proc_do_submiturb()
1552 uurb->number_of_packets > 128) in proc_do_submiturb()
1556 number_of_packets = uurb->number_of_packets; in proc_do_submiturb()
1579 uurb->buffer_length = totlen; in proc_do_submiturb()
1586 if (uurb->buffer_length > 0 && in proc_do_submiturb()
1588 uurb->buffer, uurb->buffer_length)) { in proc_do_submiturb()
1598 as->usbm = find_memory_area(ps, uurb); in proc_do_submiturb()
1611 u += sizeof(struct async) + sizeof(struct urb) + uurb->buffer_length + in proc_do_submiturb()
1629 totlen = uurb->buffer_length; in proc_do_submiturb()
1640 if (copy_from_user(buf, uurb->buffer, u)) { in proc_do_submiturb()
1644 uurb->buffer += u; in proc_do_submiturb()
1648 } else if (uurb->buffer_length > 0) { in proc_do_submiturb()
1650 unsigned long uurb_start = (unsigned long)uurb->buffer; in proc_do_submiturb()
1655 as->urb->transfer_buffer = kmalloc(uurb->buffer_length, in proc_do_submiturb()
1663 uurb->buffer, in proc_do_submiturb()
1664 uurb->buffer_length)) { in proc_do_submiturb()
1668 } else if (uurb->type == USBDEVFS_URB_TYPE_ISO) { in proc_do_submiturb()
1676 uurb->buffer_length); in proc_do_submiturb()
1681 as->urb->pipe = (uurb->type << 30) | in proc_do_submiturb()
1682 __create_pipe(ps->dev, uurb->endpoint & 0xf) | in proc_do_submiturb()
1683 (uurb->endpoint & USB_DIR_IN); in proc_do_submiturb()
1690 if (uurb->flags & USBDEVFS_URB_ISO_ASAP) in proc_do_submiturb()
1692 if (allow_short && uurb->flags & USBDEVFS_URB_SHORT_NOT_OK) in proc_do_submiturb()
1694 if (allow_zero && uurb->flags & USBDEVFS_URB_ZERO_PACKET) in proc_do_submiturb()
1696 if (uurb->flags & USBDEVFS_URB_NO_INTERRUPT) in proc_do_submiturb()
1700 if (!allow_short && uurb->flags & USBDEVFS_URB_SHORT_NOT_OK) in proc_do_submiturb()
1702 if (!allow_zero && uurb->flags & USBDEVFS_URB_ZERO_PACKET) in proc_do_submiturb()
1705 as->urb->transfer_buffer_length = uurb->buffer_length; in proc_do_submiturb()
1708 as->urb->start_frame = uurb->start_frame; in proc_do_submiturb()
1713 if (uurb->type == USBDEVFS_URB_TYPE_ISO || in proc_do_submiturb()
1734 unsigned long uurb_start = (unsigned long)uurb->buffer; in proc_do_submiturb()
1739 } else if (is_in && uurb->buffer_length > 0) in proc_do_submiturb()
1740 as->userbuffer = uurb->buffer; in proc_do_submiturb()
1741 as->signr = uurb->signr; in proc_do_submiturb()
1767 if (uurb->flags & USBDEVFS_URB_BULK_CONTINUATION) in proc_do_submiturb()
1806 struct usbdevfs_urb uurb; in proc_submiturb() local
1808 if (copy_from_user(&uurb, arg, sizeof(uurb))) in proc_submiturb()
1811 return proc_do_submiturb(ps, &uurb, in proc_submiturb()
1988 struct usbdevfs_urb32 __user *uurb) in get_urb32() argument
1991 if (copy_from_user(&urb32, uurb, sizeof(*uurb))) in get_urb32()
2010 struct usbdevfs_urb uurb; in proc_submiturb_compat() local
2012 if (get_urb32(&uurb, (struct usbdevfs_urb32 __user *)arg)) in proc_submiturb_compat()
2015 return proc_do_submiturb(ps, &uurb, in proc_submiturb_compat()