diff options
author | Andrew Thompson <thompsa@FreeBSD.org> | 2009-11-22 21:16:43 +0000 |
---|---|---|
committer | Andrew Thompson <thompsa@FreeBSD.org> | 2009-11-22 21:16:43 +0000 |
commit | f12c6c2913ed46e6cc5e1a9317727a63e43c03dd (patch) | |
tree | 03755e6bb81bc77a4f5a2db3eb4c79f32ac294f7 /sys/dev/usb/usbdi.h | |
parent | ca3f1187f154de5329921d158d37177641a3f20b (diff) | |
download | src-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.h | 11 |
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 */ }; /* |