Note that for the code 0 which means success resp. completed we have an
overlap in the codes. This is not a problem since normally one would not
call libusb_error_name on success / normal completion.

Signed-off-by: Hans de Goede <hdego...@redhat.com>
---
 libusb/core.c   | 26 +++++++++++++++++++++-----
 libusb/libusb.h |  3 +++
 2 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/libusb/core.c b/libusb/core.c
index 3964e3d..097870f 100644
--- a/libusb/core.c
+++ b/libusb/core.c
@@ -1881,17 +1881,17 @@ void usbi_log(struct libusb_context *ctx, enum 
libusb_log_level level,
 
 /** \ingroup misc
  * Returns a constant NULL-terminated string with the ASCII name of a libusb
- * error code. The caller must not free() the returned string.
+ * error or transfer status code. The caller must not free() the returned
+ * string.
  *
- * \param error_code The \ref libusb_error code to return the name of.
+ * \param error_code The \ref libusb_error or libusb_transfer_status code to
+ * return the name of.
  * \returns The error name, or the string **UNKNOWN** if the value of
- * error_code is not a known error code.
+ * error_code is not a known error / status code.
  */
 DEFAULT_VISIBILITY const char * LIBUSB_CALL libusb_error_name(int error_code)
 {
        switch (error_code) {
-       case LIBUSB_SUCCESS:
-               return "LIBUSB_SUCCESS";
        case LIBUSB_ERROR_IO:
                return "LIBUSB_ERROR_IO";
        case LIBUSB_ERROR_INVALID_PARAM:
@@ -1918,6 +1918,22 @@ DEFAULT_VISIBILITY const char * LIBUSB_CALL 
libusb_error_name(int error_code)
                return "LIBUSB_ERROR_NOT_SUPPORTED";
        case LIBUSB_ERROR_OTHER:
                return "LIBUSB_ERROR_OTHER";
+
+       case LIBUSB_TRANSFER_ERROR:
+               return "LIBUSB_TRANSFER_ERROR";
+       case LIBUSB_TRANSFER_TIMED_OUT:
+               return "LIBUSB_TRANSFER_TIMED_OUT";
+       case LIBUSB_TRANSFER_CANCELLED:
+               return "LIBUSB_TRANSFER_CANCELLED";
+       case LIBUSB_TRANSFER_STALL:
+               return "LIBUSB_TRANSFER_STALL";
+       case LIBUSB_TRANSFER_NO_DEVICE:
+               return "LIBUSB_TRANSFER_NO_DEVICE";
+       case LIBUSB_TRANSFER_OVERFLOW:
+               return "LIBUSB_TRANSFER_OVERFLOW";
+
+       case 0:
+               return "LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED";
        default:
                return "**UNKNOWN**";
        }
diff --git a/libusb/libusb.h b/libusb/libusb.h
index ae00c53..b166126 100644
--- a/libusb/libusb.h
+++ b/libusb/libusb.h
@@ -820,6 +820,9 @@ enum libusb_transfer_status {
 
        /** Device sent more data than requested */
        LIBUSB_TRANSFER_OVERFLOW,
+
+       /* NB! Remember to update libusb_error_name()
+          when adding new status codes here. */
 };
 
 /** \ingroup asyncio
-- 
1.7.11.4


------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to