From f3f81007ff33dd6a856ea5f289187f10235635a0 Mon Sep 17 00:00:00 2001 From: Thomas Jarosch Date: Mon, 27 Jul 2009 22:25:03 +0200 Subject: [PATCH] Renamed new usb_close_intl() to ftdi_usb_close_internal(). Made function static and added doxygen documentation --- src/ftdi.c | 47 +++++++++++++++++++++++++++++------------------ 1 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/ftdi.c b/src/ftdi.c index 0f408a2..8b589eb 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -50,16 +50,25 @@ return code; \ } while(0); -/* internal usb_close wrapper -> sets usb dev handle to NULL */ -int usb_close_intl (struct ftdi_context *ftdi) +/** + Internal function to close usb device pointer. + Sets ftdi->usb_dev to NULL. + \internal + + \param ftdi pointer to ftdi_context + + \retval zero if all is fine, otherwise error code from usb_close() +*/ +static int ftdi_usb_close_internal (struct ftdi_context *ftdi) { int ret = 0; - if (ftdi->usb_dev != NULL) + if (ftdi->usb_dev) { ret = usb_close (ftdi->usb_dev); ftdi->usb_dev = NULL; } + return ret; } @@ -188,7 +197,7 @@ int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface interface) */ void ftdi_deinit(struct ftdi_context *ftdi) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); if (ftdi->async_usb_buffer != NULL) { @@ -346,7 +355,7 @@ int ftdi_usb_get_strings(struct ftdi_context * ftdi, struct usb_device * dev, { if (usb_get_string_simple(ftdi->usb_dev, dev->descriptor.iManufacturer, manufacturer, mnf_len) <= 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); ftdi_error_return(-7, usb_strerror()); } } @@ -355,7 +364,7 @@ int ftdi_usb_get_strings(struct ftdi_context * ftdi, struct usb_device * dev, { if (usb_get_string_simple(ftdi->usb_dev, dev->descriptor.iProduct, description, desc_len) <= 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); ftdi_error_return(-8, usb_strerror()); } } @@ -364,12 +373,12 @@ int ftdi_usb_get_strings(struct ftdi_context * ftdi, struct usb_device * dev, { if (usb_get_string_simple(ftdi->usb_dev, dev->descriptor.iSerialNumber, serial, serial_len) <= 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); ftdi_error_return(-9, usb_strerror()); } } - if (usb_close_intl (ftdi) != 0) + if (ftdi_usb_close_internal (ftdi) != 0) ftdi_error_return(-10, usb_strerror()); return 0; @@ -413,7 +422,7 @@ int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev) usb_set_configuration(ftdi->usb_dev, dev->config[0].bConfigurationValue) && errno != EBUSY) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); if (detach_errno == EPERM) { ftdi_error_return(-8, "inappropriate permissions on device!"); @@ -426,7 +435,7 @@ int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev) if (usb_claim_interface(ftdi->usb_dev, ftdi->interface) != 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); if (detach_errno == EPERM) { ftdi_error_return(-8, "inappropriate permissions on device!"); @@ -439,13 +448,13 @@ int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev) if (ftdi_usb_reset (ftdi) != 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); ftdi_error_return(-6, "ftdi_usb_reset failed"); } if (ftdi_set_baudrate (ftdi, 9600) != 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); ftdi_error_return(-7, "set baudrate failed"); } @@ -545,12 +554,12 @@ int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product, { if (usb_get_string_simple(ftdi->usb_dev, dev->descriptor.iProduct, string, sizeof(string)) <= 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); ftdi_error_return(-8, "unable to fetch product description"); } if (strncmp(string, description, sizeof(string)) != 0) { - if (usb_close_intl (ftdi) != 0) + if (ftdi_usb_close_internal (ftdi) != 0) ftdi_error_return(-10, "unable to close device"); continue; } @@ -559,18 +568,18 @@ int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product, { if (usb_get_string_simple(ftdi->usb_dev, dev->descriptor.iSerialNumber, string, sizeof(string)) <= 0) { - usb_close_intl (ftdi); + ftdi_usb_close_internal (ftdi); ftdi_error_return(-9, "unable to fetch serial number"); } if (strncmp(string, serial, sizeof(string)) != 0) { - if (usb_close_intl (ftdi) != 0) + if (ftdi_usb_close_internal (ftdi) != 0) ftdi_error_return(-10, "unable to close device"); continue; } } - if (usb_close_intl (ftdi) != 0) + if (ftdi_usb_close_internal (ftdi) != 0) ftdi_error_return(-10, "unable to close device"); return ftdi_usb_open_dev(ftdi, dev); @@ -668,6 +677,8 @@ int ftdi_usb_purge_buffers(struct ftdi_context *ftdi) return 0; } + + /** Closes the ftdi device. Call ftdi_deinit() if you're cleaning up. @@ -690,7 +701,7 @@ int ftdi_usb_close(struct ftdi_context *ftdi) if (usb_release_interface(ftdi->usb_dev, ftdi->interface) != 0) rtn = -1; - if (usb_close_intl (ftdi)!= 0) + if (ftdi_usb_close_internal (ftdi) != 0) rtn = -2; return rtn; -- 1.7.1