aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2016-01-19 00:01:11 +0000
committerMichael Brown <mcb30@ipxe.org>2016-01-19 00:01:11 +0000
commit71b83a6d00caedb62cc62a5810f99a7a1478f2ae (patch)
tree8e1224923a381d42a60f4bac985868e5294dad66 /src/include
parent8dc23d9b83027ea93e5e8689316f8448ff964647 (diff)
downloadipxe-71b83a6d00caedb62cc62a5810f99a7a1478f2ae.zip
ipxe-71b83a6d00caedb62cc62a5810f99a7a1478f2ae.tar.gz
ipxe-71b83a6d00caedb62cc62a5810f99a7a1478f2ae.tar.bz2
[usb] Allow USB endpoints to specify a reserved header length for refills
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/usb.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/include/ipxe/usb.h b/src/include/ipxe/usb.h
index 37b6d94..e7909d3 100644
--- a/src/include/ipxe/usb.h
+++ b/src/include/ipxe/usb.h
@@ -414,7 +414,9 @@ struct usb_endpoint {
/** Recycled I/O buffer list */
struct list_head recycled;
- /** Refill buffer length */
+ /** Refill buffer reserved header length */
+ size_t reserve;
+ /** Refill buffer payload length */
size_t len;
/** Maximum fill level */
unsigned int max;
@@ -588,13 +590,16 @@ extern void usb_complete_err ( struct usb_endpoint *ep,
* Initialise USB endpoint refill
*
* @v ep USB endpoint
- * @v len Refill buffer length (or zero to use endpoint's MTU)
+ * @v reserve Refill buffer reserved header length
+ * @v len Refill buffer payload length (zero for endpoint's MTU)
* @v max Maximum fill level
*/
static inline __attribute__ (( always_inline )) void
-usb_refill_init ( struct usb_endpoint *ep, size_t len, unsigned int max ) {
+usb_refill_init ( struct usb_endpoint *ep, size_t reserve, size_t len,
+ unsigned int max ) {
INIT_LIST_HEAD ( &ep->recycled );
+ ep->reserve = reserve;
ep->len = len;
ep->max = max;
}