aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/usbdi.h
diff options
context:
space:
mode:
authorAndrew Thompson <thompsa@FreeBSD.org>2009-11-22 21:16:43 +0000
committerAndrew Thompson <thompsa@FreeBSD.org>2009-11-22 21:16:43 +0000
commitf12c6c2913ed46e6cc5e1a9317727a63e43c03dd (patch)
tree03755e6bb81bc77a4f5a2db3eb4c79f32ac294f7 /sys/dev/usb/usbdi.h
parentca3f1187f154de5329921d158d37177641a3f20b (diff)
downloadsrc-f12c6c2913ed46e6cc5e1a9317727a63e43c03dd.tar.gz
src-f12c6c2913ed46e6cc5e1a9317727a63e43c03dd.zip
Improve High Speed slot allocation mechanism by moving the computation to the
endpoint rather than per xfer and provide functions around get/free of resources. Submitted by: Hans Petter Selasky
Notes
Notes: svn path=/head/; revision=199672
Diffstat (limited to 'sys/dev/usb/usbdi.h')
-rw-r--r--sys/dev/usb/usbdi.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/usb/usbdi.h b/sys/dev/usb/usbdi.h
index 46747d7baf00..1a6665227beb 100644
--- a/sys/dev/usb/usbdi.h
+++ b/sys/dev/usb/usbdi.h
@@ -130,13 +130,22 @@ struct usb_endpoint {
struct usb_pipe_methods *methods; /* set by HC driver */
uint16_t isoc_next;
- uint16_t refcount;
uint8_t toggle_next:1; /* next data toggle value */
uint8_t is_stalled:1; /* set if endpoint is stalled */
uint8_t is_synced:1; /* set if we a synchronised */
uint8_t unused:5;
uint8_t iface_index; /* not used by "default endpoint" */
+
+ uint8_t refcount_alloc; /* allocation refcount */
+ uint8_t refcount_bw; /* bandwidth refcount */
+#define USB_EP_REF_MAX 0x3f
+
+ /* High-Speed resource allocation (valid if "refcount_bw" > 0) */
+
+ uint8_t usb_smask; /* USB start mask */
+ uint8_t usb_cmask; /* USB complete mask */
+ uint8_t usb_uframe; /* USB microframe */
};
/*