31004e6
From f6ca5450858cedbe0fc18c973fc19e1242f71f45 Mon Sep 17 00:00:00 2001
a5bd9f6
From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
a5bd9f6
Date: Tue, 19 Mar 2013 11:19:36 +0100
f74b50e
Subject: [PATCH 212/482] 	remove get_endpoint_descriptor and change all
a5bd9f6
 functions needing 	descriptor to just receive it as argument rather than
a5bd9f6
 endpoint 	address.
a5bd9f6
a5bd9f6
---
a5bd9f6
 ChangeLog                                |  6 +++++
a5bd9f6
 grub-core/bus/usb/serial/common.c        |  2 +-
a5bd9f6
 grub-core/bus/usb/serial/ftdi.c          |  2 +-
a5bd9f6
 grub-core/bus/usb/serial/pl2303.c        |  2 +-
a5bd9f6
 grub-core/bus/usb/serial/usbdebug_late.c |  2 +-
a5bd9f6
 grub-core/bus/usb/usb.c                  | 25 -------------------
a5bd9f6
 grub-core/bus/usb/usbhub.c               |  4 ++--
a5bd9f6
 grub-core/bus/usb/usbtrans.c             | 41 ++++++++++++++++----------------
a5bd9f6
 grub-core/disk/usbms.c                   | 18 +++++++-------
a5bd9f6
 grub-core/term/usb_keyboard.c            |  4 ++--
a5bd9f6
 include/grub/usb.h                       | 15 ++++++------
a5bd9f6
 11 files changed, 51 insertions(+), 70 deletions(-)
a5bd9f6
a5bd9f6
diff --git a/ChangeLog b/ChangeLog
a5bd9f6
index d331cb4..a544fbf 100644
a5bd9f6
--- a/ChangeLog
a5bd9f6
+++ b/ChangeLog
a5bd9f6
@@ -1,3 +1,9 @@
a5bd9f6
+2013-03-19  Vladimir Serbinenko  <phcoder@gmail.com>
a5bd9f6
+
a5bd9f6
+	remove get_endpoint_descriptor and change all functions needing
a5bd9f6
+	descriptor to just receive it as argument rather than endpoint
a5bd9f6
+	address.
a5bd9f6
+
a5bd9f6
 2013-03-19  AleŇ° Nesrsta  <starous@volny.cz>
a5bd9f6
 
a5bd9f6
 	Better estimate the maximum USB transfer size.
a5bd9f6
diff --git a/grub-core/bus/usb/serial/common.c b/grub-core/bus/usb/serial/common.c
a5bd9f6
index 06f2b0e..8e94c7d 100644
a5bd9f6
--- a/grub-core/bus/usb/serial/common.c
a5bd9f6
+++ b/grub-core/bus/usb/serial/common.c
a5bd9f6
@@ -124,7 +124,7 @@ grub_usbserial_fetch (struct grub_serial_port *port, grub_size_t header_size)
a5bd9f6
   if (port->bufstart < port->bufend)
a5bd9f6
     return port->buf[port->bufstart++];
a5bd9f6
 
a5bd9f6
-  err = grub_usb_bulk_read_extended (port->usbdev, port->in_endp->endp_addr,
a5bd9f6
+  err = grub_usb_bulk_read_extended (port->usbdev, port->in_endp,
a5bd9f6
 				     sizeof (port->buf), port->buf, 10,
a5bd9f6
 				     &actual);
a5bd9f6
   if (err != GRUB_USB_ERR_NONE)
a5bd9f6
diff --git a/grub-core/bus/usb/serial/ftdi.c b/grub-core/bus/usb/serial/ftdi.c
a5bd9f6
index e94fd27..25c1d6f 100644
a5bd9f6
--- a/grub-core/bus/usb/serial/ftdi.c
a5bd9f6
+++ b/grub-core/bus/usb/serial/ftdi.c
a5bd9f6
@@ -128,7 +128,7 @@ ftdi_hw_put (struct grub_serial_port *port, const int c)
a5bd9f6
 
a5bd9f6
   real_config (port);
a5bd9f6
 
a5bd9f6
-  grub_usb_bulk_write (port->usbdev, port->out_endp->endp_addr, 1, &cc);
a5bd9f6
+  grub_usb_bulk_write (port->usbdev, port->out_endp, 1, &cc);
a5bd9f6
 }
a5bd9f6
 
a5bd9f6
 static grub_err_t
a5bd9f6
diff --git a/grub-core/bus/usb/serial/pl2303.c b/grub-core/bus/usb/serial/pl2303.c
a5bd9f6
index f46c6ac..92b00ef 100644
a5bd9f6
--- a/grub-core/bus/usb/serial/pl2303.c
a5bd9f6
+++ b/grub-core/bus/usb/serial/pl2303.c
a5bd9f6
@@ -146,7 +146,7 @@ pl2303_hw_put (struct grub_serial_port *port, const int c)
a5bd9f6
 
a5bd9f6
   real_config (port);
a5bd9f6
 
a5bd9f6
-  grub_usb_bulk_write (port->usbdev, port->out_endp->endp_addr, 1, &cc);
a5bd9f6
+  grub_usb_bulk_write (port->usbdev, port->out_endp, 1, &cc);
a5bd9f6
 }
a5bd9f6
 
a5bd9f6
 static grub_err_t
a5bd9f6
diff --git a/grub-core/bus/usb/serial/usbdebug_late.c b/grub-core/bus/usb/serial/usbdebug_late.c
a5bd9f6
index 23526e1..e88ba13 100644
a5bd9f6
--- a/grub-core/bus/usb/serial/usbdebug_late.c
a5bd9f6
+++ b/grub-core/bus/usb/serial/usbdebug_late.c
a5bd9f6
@@ -41,7 +41,7 @@ usbdebug_late_hw_put (struct grub_serial_port *port, const int c)
a5bd9f6
 {
a5bd9f6
   char cc = c;
a5bd9f6
 
a5bd9f6
-  grub_usb_bulk_write (port->usbdev, port->out_endp->endp_addr, 1, &cc);
a5bd9f6
+  grub_usb_bulk_write (port->usbdev, port->out_endp, 1, &cc);
a5bd9f6
 }
a5bd9f6
 
a5bd9f6
 static grub_err_t
a5bd9f6
diff --git a/grub-core/bus/usb/usb.c b/grub-core/bus/usb/usb.c
a5bd9f6
index 41d8010..7a517f8 100644
a5bd9f6
--- a/grub-core/bus/usb/usb.c
a5bd9f6
+++ b/grub-core/bus/usb/usb.c
a5bd9f6
@@ -147,31 +147,6 @@ grub_usb_get_descriptor (grub_usb_device_t dev,
a5bd9f6
 			       0, size, data);
a5bd9f6
 }
a5bd9f6
 
a5bd9f6
-struct grub_usb_desc_endp *
a5bd9f6
-grub_usb_get_endpdescriptor (grub_usb_device_t usbdev, int addr)
a5bd9f6
-{
a5bd9f6
-  int i;
a5bd9f6
-
a5bd9f6
-  for (i = 0; i < usbdev->config[0].descconf->numif; i++)
a5bd9f6
-    {
a5bd9f6
-      struct grub_usb_desc_if *interf;
a5bd9f6
-      int j;
a5bd9f6
-
a5bd9f6
-      interf = usbdev->config[0].interf[i].descif;
a5bd9f6
-
a5bd9f6
-      for (j = 0; j < interf->endpointcnt; j++)
a5bd9f6
-	{
a5bd9f6
-	  struct grub_usb_desc_endp *endp;
a5bd9f6
-	  endp = &usbdev->config[0].interf[i].descendp[j];
a5bd9f6
-
a5bd9f6
-	  if (endp->endp_addr == addr)
a5bd9f6
-	    return endp;
a5bd9f6
-	}
a5bd9f6
-    }
a5bd9f6
-
a5bd9f6
-  return NULL;
a5bd9f6
-}
a5bd9f6
-
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_device_initialize (grub_usb_device_t dev)
a5bd9f6
 {
a5bd9f6
diff --git a/grub-core/bus/usb/usbhub.c b/grub-core/bus/usb/usbhub.c
a5bd9f6
index 3927f51..7e7dc8c 100644
a5bd9f6
--- a/grub-core/bus/usb/usbhub.c
a5bd9f6
+++ b/grub-core/bus/usb/usbhub.c
a5bd9f6
@@ -173,7 +173,7 @@ grub_usb_add_hub (grub_usb_device_t dev)
a5bd9f6
 	  if (len > sizeof (dev->statuschange))
a5bd9f6
 	    len = sizeof (dev->statuschange);
a5bd9f6
 	  dev->hub_transfer
a5bd9f6
-	    = grub_usb_bulk_read_background (dev, endp->endp_addr, len,
a5bd9f6
+	    = grub_usb_bulk_read_background (dev, endp, len,
a5bd9f6
 					     (char *) &dev->statuschange);
a5bd9f6
 	  break;
a5bd9f6
 	}
a5bd9f6
@@ -342,7 +342,7 @@ poll_nonroot_hub (grub_usb_device_t dev)
a5bd9f6
   if (len > sizeof (dev->statuschange))
a5bd9f6
     len = sizeof (dev->statuschange);
a5bd9f6
   dev->hub_transfer
a5bd9f6
-    = grub_usb_bulk_read_background (dev, dev->hub_endpoint->endp_addr, len,
a5bd9f6
+    = grub_usb_bulk_read_background (dev, dev->hub_endpoint, len,
a5bd9f6
 				     (char *) &dev->statuschange);
a5bd9f6
 
a5bd9f6
   if (err || actual == 0 || changed == 0)
a5bd9f6
diff --git a/grub-core/bus/usb/usbtrans.c b/grub-core/bus/usb/usbtrans.c
a5bd9f6
index 4c4d8b4..533c3e7 100644
a5bd9f6
--- a/grub-core/bus/usb/usbtrans.c
a5bd9f6
+++ b/grub-core/bus/usb/usbtrans.c
a5bd9f6
@@ -27,21 +27,14 @@
a5bd9f6
 
a5bd9f6
 
a5bd9f6
 static inline unsigned int
a5bd9f6
-grub_usb_bulk_maxpacket (grub_usb_device_t dev, int endpoint)
a5bd9f6
+grub_usb_bulk_maxpacket (grub_usb_device_t dev,
a5bd9f6
+			 struct grub_usb_desc_endp *endpoint)
a5bd9f6
 {
a5bd9f6
-  unsigned int max = 64;
a5bd9f6
-
a5bd9f6
   /* Use the maximum packet size given in the endpoint descriptor.  */
a5bd9f6
-  if (dev->initialized)
a5bd9f6
-    {
a5bd9f6
-      struct grub_usb_desc_endp *endpdesc;
a5bd9f6
-      endpdesc = grub_usb_get_endpdescriptor (dev, endpoint);
a5bd9f6
-
a5bd9f6
-      if (endpdesc)
a5bd9f6
-	max = endpdesc->maxpacket;
a5bd9f6
-    }
a5bd9f6
+  if (dev->initialized && endpoint)
a5bd9f6
+    return endpoint->maxpacket;
a5bd9f6
 
a5bd9f6
-  return max;
a5bd9f6
+  return 64;
a5bd9f6
 }
a5bd9f6
 
a5bd9f6
 
a5bd9f6
@@ -219,7 +212,8 @@ grub_usb_control_msg (grub_usb_device_t dev,
a5bd9f6
 
a5bd9f6
 static grub_usb_transfer_t
a5bd9f6
 grub_usb_bulk_setup_readwrite (grub_usb_device_t dev,
a5bd9f6
-			       int endpoint, grub_size_t size0, char *data_in,
a5bd9f6
+			       struct grub_usb_desc_endp *endpoint,
a5bd9f6
+			       grub_size_t size0, char *data_in,
a5bd9f6
 			       grub_transfer_type_t type)
a5bd9f6
 {
a5bd9f6
   int i;
a5bd9f6
@@ -230,7 +224,7 @@ grub_usb_bulk_setup_readwrite (grub_usb_device_t dev,
a5bd9f6
   grub_uint32_t data_addr;
a5bd9f6
   struct grub_pci_dma_chunk *data_chunk;
a5bd9f6
   grub_size_t size = size0;
a5bd9f6
-  int toggle = dev->toggle[endpoint];
a5bd9f6
+  int toggle = dev->toggle[endpoint->endp_addr];
a5bd9f6
 
a5bd9f6
   grub_dprintf ("usb", "bulk: size=0x%02lx type=%d\n", (unsigned long) size,
a5bd9f6
 		type);
a5bd9f6
@@ -257,7 +251,7 @@ grub_usb_bulk_setup_readwrite (grub_usb_device_t dev,
a5bd9f6
   datablocks = ((size + max - 1) / max);
a5bd9f6
   transfer->transcnt = datablocks;
a5bd9f6
   transfer->size = size - 1;
a5bd9f6
-  transfer->endpoint = endpoint;
a5bd9f6
+  transfer->endpoint = endpoint->endp_addr;
a5bd9f6
   transfer->devaddr = dev->addr;
a5bd9f6
   transfer->type = GRUB_USB_TRANSACTION_TYPE_BULK;
a5bd9f6
   transfer->dir = type;
a5bd9f6
@@ -323,7 +317,8 @@ grub_usb_bulk_finish_readwrite (grub_usb_transfer_t transfer)
a5bd9f6
 
a5bd9f6
 static grub_usb_err_t
a5bd9f6
 grub_usb_bulk_readwrite (grub_usb_device_t dev,
a5bd9f6
-			 int endpoint, grub_size_t size0, char *data_in,
a5bd9f6
+			 struct grub_usb_desc_endp *endpoint,
a5bd9f6
+			 grub_size_t size0, char *data_in,
a5bd9f6
 			 grub_transfer_type_t type, int timeout,
a5bd9f6
 			 grub_size_t *actual)
a5bd9f6
 {
a5bd9f6
@@ -343,7 +338,7 @@ grub_usb_bulk_readwrite (grub_usb_device_t dev,
a5bd9f6
 
a5bd9f6
 static grub_usb_err_t
a5bd9f6
 grub_usb_bulk_readwrite_packetize (grub_usb_device_t dev,
a5bd9f6
-				   int endpoint,
a5bd9f6
+				   struct grub_usb_desc_endp *endpoint,
a5bd9f6
 				   grub_transfer_type_t type,
a5bd9f6
 				   grub_size_t size, char *data)
a5bd9f6
 {
a5bd9f6
@@ -380,7 +375,8 @@ grub_usb_bulk_readwrite_packetize (grub_usb_device_t dev,
a5bd9f6
 
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_bulk_write (grub_usb_device_t dev,
a5bd9f6
-		     int endpoint, grub_size_t size, char *data)
a5bd9f6
+		     struct grub_usb_desc_endp *endpoint,
a5bd9f6
+		     grub_size_t size, char *data)
a5bd9f6
 {
a5bd9f6
   return grub_usb_bulk_readwrite_packetize (dev, endpoint,
a5bd9f6
 					    GRUB_USB_TRANSFER_TYPE_OUT,
a5bd9f6
@@ -389,7 +385,8 @@ grub_usb_bulk_write (grub_usb_device_t dev,
a5bd9f6
 
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_bulk_read (grub_usb_device_t dev,
a5bd9f6
-		    int endpoint, grub_size_t size, char *data)
a5bd9f6
+		    struct grub_usb_desc_endp *endpoint,
a5bd9f6
+		    grub_size_t size, char *data)
a5bd9f6
 {
a5bd9f6
   return grub_usb_bulk_readwrite_packetize (dev, endpoint,
a5bd9f6
 					    GRUB_USB_TRANSFER_TYPE_IN,
a5bd9f6
@@ -414,7 +411,8 @@ grub_usb_check_transfer (grub_usb_transfer_t transfer, grub_size_t *actual)
a5bd9f6
 
a5bd9f6
 grub_usb_transfer_t
a5bd9f6
 grub_usb_bulk_read_background (grub_usb_device_t dev,
a5bd9f6
-			       int endpoint, grub_size_t size, void *data)
a5bd9f6
+			       struct grub_usb_desc_endp *endpoint,
a5bd9f6
+			       grub_size_t size, void *data)
a5bd9f6
 {
a5bd9f6
   grub_usb_err_t err;
a5bd9f6
   grub_usb_transfer_t transfer;
a5bd9f6
@@ -441,7 +439,8 @@ grub_usb_cancel_transfer (grub_usb_transfer_t transfer)
a5bd9f6
 
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_bulk_read_extended (grub_usb_device_t dev,
a5bd9f6
-			     int endpoint, grub_size_t size, char *data,
a5bd9f6
+			     struct grub_usb_desc_endp *endpoint,
a5bd9f6
+			     grub_size_t size, char *data,
a5bd9f6
 			     int timeout, grub_size_t *actual)
a5bd9f6
 {
a5bd9f6
   return grub_usb_bulk_readwrite (dev, endpoint, size, data,
a5bd9f6
diff --git a/grub-core/disk/usbms.c b/grub-core/disk/usbms.c
a5bd9f6
index 50f0caf..dd35bff 100644
a5bd9f6
--- a/grub-core/disk/usbms.c
a5bd9f6
+++ b/grub-core/disk/usbms.c
a5bd9f6
@@ -326,7 +326,7 @@ grub_usbms_transfer_bo (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
 
a5bd9f6
   /* Write the request.
a5bd9f6
    * XXX: Error recovery is maybe still not fully correct. */
a5bd9f6
-  err = grub_usb_bulk_write (dev->dev, dev->out->endp_addr,
a5bd9f6
+  err = grub_usb_bulk_write (dev->dev, dev->out,
a5bd9f6
 			     sizeof (cbw), (char *) &cbw);
a5bd9f6
   if (err)
a5bd9f6
     {
a5bd9f6
@@ -341,7 +341,7 @@ grub_usbms_transfer_bo (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
   /* Read/write the data, (maybe) according to specification.  */
a5bd9f6
   if (size && (read_write == 0))
a5bd9f6
     {
a5bd9f6
-      err = grub_usb_bulk_read (dev->dev, dev->in->endp_addr, size, buf);
a5bd9f6
+      err = grub_usb_bulk_read (dev->dev, dev->in, size, buf);
a5bd9f6
       grub_dprintf ("usb", "read: %d %d\n", err, GRUB_USB_ERR_STALL); 
a5bd9f6
       if (err)
a5bd9f6
         {
a5bd9f6
@@ -362,7 +362,7 @@ grub_usbms_transfer_bo (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
     }
a5bd9f6
   else if (size)
a5bd9f6
     {
a5bd9f6
-      err = grub_usb_bulk_write (dev->dev, dev->out->endp_addr, size, buf);
a5bd9f6
+      err = grub_usb_bulk_write (dev->dev, dev->out, size, buf);
a5bd9f6
       grub_dprintf ("usb", "write: %d %d\n", err, GRUB_USB_ERR_STALL);
a5bd9f6
       grub_dprintf ("usb", "First 16 bytes of sent data:\n %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
a5bd9f6
   	buf[ 0], buf[ 1], buf[ 2], buf[ 3],
a5bd9f6
@@ -388,12 +388,12 @@ grub_usbms_transfer_bo (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
 
a5bd9f6
   /* Read the status - (maybe) according to specification.  */
a5bd9f6
 CheckCSW:
a5bd9f6
-  errCSW = grub_usb_bulk_read (dev->dev, dev->in->endp_addr,
a5bd9f6
+  errCSW = grub_usb_bulk_read (dev->dev, dev->in,
a5bd9f6
 		    sizeof (status), (char *) &status);
a5bd9f6
   if (errCSW)
a5bd9f6
     {
a5bd9f6
       grub_usb_clear_halt (dev->dev, dev->in->endp_addr);
a5bd9f6
-      errCSW = grub_usb_bulk_read (dev->dev, dev->in->endp_addr,
a5bd9f6
+      errCSW = grub_usb_bulk_read (dev->dev, dev->in,
a5bd9f6
 			        sizeof (status), (char *) &status);
a5bd9f6
       if (errCSW)
a5bd9f6
         { /* Bulk-only reset device. */
a5bd9f6
@@ -476,7 +476,7 @@ grub_usbms_transfer_cbi (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
       else if (dev->protocol == GRUB_USBMS_PROTOCOL_CBI)
a5bd9f6
         {
a5bd9f6
           /* Try to get status from interrupt pipe */
a5bd9f6
-          err = grub_usb_bulk_read (dev->dev, dev->intrpt->endp_addr,
a5bd9f6
+          err = grub_usb_bulk_read (dev->dev, dev->intrpt,
a5bd9f6
                                     2, (char*)&status);
a5bd9f6
           grub_dprintf ("usb", "CBI cmdcb setup status: err=%d, status=0x%x\n", err, status);
a5bd9f6
         }
a5bd9f6
@@ -487,7 +487,7 @@ grub_usbms_transfer_cbi (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
   /* Read/write the data, (maybe) according to specification.  */
a5bd9f6
   if (size && (read_write == 0))
a5bd9f6
     {
a5bd9f6
-      err = grub_usb_bulk_read (dev->dev, dev->in->endp_addr, size, buf);
a5bd9f6
+      err = grub_usb_bulk_read (dev->dev, dev->in, size, buf);
a5bd9f6
       grub_dprintf ("usb", "read: %d\n", err); 
a5bd9f6
       if (err)
a5bd9f6
         {
a5bd9f6
@@ -498,7 +498,7 @@ grub_usbms_transfer_cbi (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
     }
a5bd9f6
   else if (size)
a5bd9f6
     {
a5bd9f6
-      err = grub_usb_bulk_write (dev->dev, dev->out->endp_addr, size, buf);
a5bd9f6
+      err = grub_usb_bulk_write (dev->dev, dev->out, size, buf);
a5bd9f6
       grub_dprintf ("usb", "write: %d\n", err);
a5bd9f6
       if (err)
a5bd9f6
         {
a5bd9f6
@@ -517,7 +517,7 @@ grub_usbms_transfer_cbi (struct grub_scsi *scsi, grub_size_t cmdsize, char *cmd,
a5bd9f6
    * (we do not it yet) - ? */
a5bd9f6
   if (dev->protocol == GRUB_USBMS_PROTOCOL_CBI)
a5bd9f6
     { /* Check status in interrupt pipe */
a5bd9f6
-      err = grub_usb_bulk_read (dev->dev, dev->intrpt->endp_addr,
a5bd9f6
+      err = grub_usb_bulk_read (dev->dev, dev->intrpt,
a5bd9f6
                                 2, (char*)&status);
a5bd9f6
       grub_dprintf ("usb", "read status: %d\n", err);
a5bd9f6
       if (err)
a5bd9f6
diff --git a/grub-core/term/usb_keyboard.c b/grub-core/term/usb_keyboard.c
a5bd9f6
index ae00936..3b74846 100644
a5bd9f6
--- a/grub-core/term/usb_keyboard.c
a5bd9f6
+++ b/grub-core/term/usb_keyboard.c
a5bd9f6
@@ -244,7 +244,7 @@ grub_usb_keyboard_attach (grub_usb_device_t usbdev, int configno, int interfno)
a5bd9f6
 #endif
a5bd9f6
 
a5bd9f6
   data->transfer = grub_usb_bulk_read_background (usbdev,
a5bd9f6
-						  data->endp->endp_addr,
a5bd9f6
+						  data->endp,
a5bd9f6
 						  sizeof (data->report),
a5bd9f6
 						  (char *) data->report);
a5bd9f6
   if (!data->transfer)
a5bd9f6
@@ -394,7 +394,7 @@ grub_usb_keyboard_getkey (struct grub_term_input *term)
a5bd9f6
                sizeof (termdata->report));
a5bd9f6
 
a5bd9f6
   termdata->transfer = grub_usb_bulk_read_background (termdata->usbdev,
a5bd9f6
-						      termdata->endp->endp_addr,
a5bd9f6
+						      termdata->endp,
a5bd9f6
 						      sizeof (termdata->report),
a5bd9f6
 						      (char *) termdata->report);
a5bd9f6
   if (!termdata->transfer)
a5bd9f6
diff --git a/include/grub/usb.h b/include/grub/usb.h
a5bd9f6
index 55f65f7..32f0ecd 100644
a5bd9f6
--- a/include/grub/usb.h
a5bd9f6
+++ b/include/grub/usb.h
a5bd9f6
@@ -63,9 +63,6 @@ grub_usb_err_t grub_usb_get_descriptor (grub_usb_device_t dev,
a5bd9f6
 					grub_uint8_t type, grub_uint8_t index,
a5bd9f6
 					grub_size_t size, char *data);
a5bd9f6
 
a5bd9f6
-struct grub_usb_desc_endp *
a5bd9f6
-grub_usb_get_endpdescriptor (grub_usb_device_t usbdev, int addr);
a5bd9f6
-
a5bd9f6
 grub_usb_err_t grub_usb_clear_halt (grub_usb_device_t dev, int endpoint);
a5bd9f6
 
a5bd9f6
 
a5bd9f6
@@ -87,10 +84,12 @@ grub_usb_err_t grub_usb_control_msg (grub_usb_device_t dev, grub_uint8_t reqtype
a5bd9f6
 
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_bulk_read (grub_usb_device_t dev,
a5bd9f6
-		    int endpoint, grub_size_t size, char *data);
a5bd9f6
+		    struct grub_usb_desc_endp *endpoint,
a5bd9f6
+		    grub_size_t size, char *data);
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_bulk_write (grub_usb_device_t dev,
a5bd9f6
-		     int endpoint, grub_size_t size, char *data);
a5bd9f6
+		     struct grub_usb_desc_endp *endpoint,
a5bd9f6
+		     grub_size_t size, char *data);
a5bd9f6
 
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_root_hub (grub_usb_controller_t controller);
a5bd9f6
@@ -297,11 +296,13 @@ void grub_usb_poll_devices (void);
a5bd9f6
 void grub_usb_device_attach (grub_usb_device_t dev);
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_bulk_read_extended (grub_usb_device_t dev,
a5bd9f6
-			     int endpoint, grub_size_t size, char *data,
a5bd9f6
+			     struct grub_usb_desc_endp *endpoint,
a5bd9f6
+			     grub_size_t size, char *data,
a5bd9f6
 			     int timeout, grub_size_t *actual);
a5bd9f6
 grub_usb_transfer_t
a5bd9f6
 grub_usb_bulk_read_background (grub_usb_device_t dev,
a5bd9f6
-			      int endpoint, grub_size_t size, void *data);
a5bd9f6
+			       struct grub_usb_desc_endp *endpoint,
a5bd9f6
+			       grub_size_t size, void *data);
a5bd9f6
 grub_usb_err_t
a5bd9f6
 grub_usb_check_transfer (grub_usb_transfer_t trans, grub_size_t *actual);
a5bd9f6
 void
a5bd9f6
-- 
31004e6
1.8.2.1
a5bd9f6