usb_claim_bandwidth — records bandwidth for a periodic transfer
void usb_claim_bandwidth ( | struct usb_device * | dev, |
| struct urb * | urb, | |
| int | bustime, | |
| int | isoc); |
devsource/target of request
urbrequest (urb->dev == dev)
bustimebandwidth consumed, in (average) microseconds per frame
isoctrue iff the request is isochronous
Bus bandwidth reservations are recorded purely for diagnostic purposes. HCDs are expected not to overcommit periodic bandwidth, and to record such reservations whenever endpoints are added to the periodic schedule.
FIXME averaging per-frame is suboptimal. Better to sum over the HCD's entire periodic schedule ... 32 frames for OHCI, 1024 for UHCI, settable for EHCI (256/512/1024 frames, default 1024) and have the bus expose how large its periodic schedule is.