libftdi-git Archives

Subject: A library to talk to FTDI chips branch, master, updated. v1.0-16-g74387f2

From: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
To: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
Date: Wed, 10 Apr 2013 10:47:20 +0200 (CEST)
The branch, master has been updated
       via  74387f27647e7123e233d31d36daedc6b485650a (commit)
      from  2f80efc24176c903d82cea1f084453fd3df9b992 (commit)


- Log -----------------------------------------------------------------
commit 74387f27647e7123e233d31d36daedc6b485650a
Author: Thomas Jarosch <thomas.jarosch@xxxxxxxxxxxxx>
Date:   Wed Apr 10 10:42:43 2013 +0200

    Unify style of the main source code
    
    With all the contributions flowing in,
    the code style varied here and there.
    
    Also add the script I use to format the source code.

-----------------------------------------------------------------------

Summary of changes:
 doc/astyle_reformat.sh |    5 +
 src/ftdi.c             |  191 +++++++++++++++++++++++++----------------------
 src/ftdi.h             |   39 ++++++----
 src/ftdi_i.h           |    4 +-
 src/ftdi_stream.c      |  179 +++++++++++++++++++++++----------------------
 5 files changed, 222 insertions(+), 196 deletions(-)
 create mode 100755 doc/astyle_reformat.sh

diff --git a/doc/astyle_reformat.sh b/doc/astyle_reformat.sh
new file mode 100755
index 0000000..1bb445a
--- /dev/null
+++ b/doc/astyle_reformat.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Astyle settings used to format our source code
+/usr/bin/astyle --indent=spaces=4 --indent-switches --brackets=break \
+                --convert-tabs --keep-one-line-statements 
--keep-one-line-blocks \
+                $*
diff --git a/src/ftdi.c b/src/ftdi.c
index e2c4009..3c86456 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -295,7 +295,7 @@ struct ftdi_version_info ftdi_get_library_version()
     Finds all ftdi devices with given VID:PID on the usb bus. Creates a new
     ftdi_device_list which needs to be deallocated by ftdi_list_free() after
     use.  With VID:PID 0:0, search for the default devices
-    (0x403:0x6001, 0x403:0x6010, 0x403:0x6011, 0x403:0x6014) 
+    (0x403:0x6001, 0x403:0x6010, 0x403:0x6011, 0x403:0x6014)
 
     \param ftdi pointer to ftdi_context
     \param devlist Pointer where to store list of found devices
@@ -328,11 +328,11 @@ int ftdi_usb_find_all(struct ftdi_context *ftdi, struct 
ftdi_device_list **devli
         if (libusb_get_device_descriptor(dev, &desc) < 0)
             ftdi_error_return_free_device_list(-6, 
"libusb_get_device_descriptor() failed", devs);
 
-        if (((vendor != 0 && product != 0) && 
-             desc.idVendor == vendor && desc.idProduct == product) ||
-            ((vendor == 0 && product == 0) && 
-             (desc.idVendor == 0x403) && (desc.idProduct == 0x6001 || 
desc.idProduct == 0x6010
-                                          || desc.idProduct == 0x6011 || 
desc.idProduct == 0x6014)))
+        if (((vendor != 0 && product != 0) &&
+                desc.idVendor == vendor && desc.idProduct == product) ||
+                ((vendor == 0 && product == 0) &&
+                 (desc.idVendor == 0x403) && (desc.idProduct == 0x6001 || 
desc.idProduct == 0x6010
+                                              || desc.idProduct == 0x6011 || 
desc.idProduct == 0x6014)))
         {
             *curdev = (struct ftdi_device_list*)malloc(sizeof(struct 
ftdi_device_list));
             if (!*curdev)
@@ -999,7 +999,7 @@ int ftdi_usb_close(struct ftdi_context *ftdi)
     return rtn;
 }
 
-/*  ftdi_to_clkbits_AM For the AM device, convert a requested baudrate 
+/*  ftdi_to_clkbits_AM For the AM device, convert a requested baudrate
                     to encoded divisor and the achievable baudrate
     Function is only used internally
     \internal
@@ -1111,7 +1111,7 @@ static int ftdi_to_clkbits_AM(int baudrate, unsigned long 
*encoded_divisor)
    H Type have all features above with
    {index[8],value[15:14]} is the encoded subdivisor
 
-   FT232R, FT2232 and FT232BM have no option for 12 MHz and with 
+   FT232R, FT2232 and FT232BM have no option for 12 MHz and with
    {index[0],value[15:14]} is the encoded subdivisor
 
    AM Type chips have only four fractional subdivisors at value[15:14]
@@ -1155,7 +1155,7 @@ static int ftdi_to_clkbits(int baudrate, unsigned int 
clk, int clk_div, unsigned
         *encoded_divisor = (best_divisor >> 3) | (frac_code[best_divisor & 
0x7] << 14);
     }
     return best_baud;
-} 
+}
 /**
     ftdi_convert_baudrate returns nearest supported baud rate to that 
requested.
     Function is only used internally
@@ -1180,7 +1180,7 @@ static int ftdi_convert_baudrate(int baudrate, struct 
ftdi_context *ftdi,
         if(baudrate*10 > H_CLK /0x3fff)
         {
             /* On H Devices, use 12 000 000 Baudrate when possible
-               We have a 14 bit divisor, a 1 bit divisor switch (10 or 16) 
+               We have a 14 bit divisor, a 1 bit divisor switch (10 or 16)
                three fractional bits and a 120 MHz clock
                Assume AN_120 "Sub-integer divisors between 0 and 2 are not 
allowed" holds for
                DIV/10 CLK too, so /1, /1.5 and /2 can be handled the same*/
@@ -1218,7 +1218,7 @@ static int ftdi_convert_baudrate(int baudrate, struct 
ftdi_context *ftdi,
  * Do not use, it's only for the unit test framework
  **/
 int convert_baudrate_UT_export(int baudrate, struct ftdi_context *ftdi,
-                                 unsigned short *value, unsigned short *index)
+                               unsigned short *value, unsigned short *index)
 {
     return ftdi_convert_baudrate(baudrate, ftdi, value, index);
 }
@@ -2351,16 +2351,16 @@ int ftdi_eeprom_initdefaults(struct ftdi_context *ftdi, 
char * manufacturer,
         const char* default_product;
         switch(ftdi->type)
         {
-        case TYPE_AM:    default_product = "AM"; break;
-        case TYPE_BM:    default_product = "BM"; break;
-        case TYPE_2232C: default_product = "Dual RS232"; break;
-        case TYPE_R:     default_product = "FT232R USB UART"; break;
-        case TYPE_2232H: default_product = "Dual RS232-HS"; break;
-        case TYPE_4232H: default_product = "FT4232H"; break;
-        case TYPE_232H:  default_product = "Single-RS232-HS"; break;
-        case TYPE_230X:  default_product = "FT230X Basic UART"; break;
-        default:
-        ftdi_error_return(-3, "Unknown chip type");
+            case TYPE_AM:    default_product = "AM"; break;
+            case TYPE_BM:    default_product = "BM"; break;
+            case TYPE_2232C: default_product = "Dual RS232"; break;
+            case TYPE_R:     default_product = "FT232R USB UART"; break;
+            case TYPE_2232H: default_product = "Dual RS232-HS"; break;
+            case TYPE_4232H: default_product = "FT4232H"; break;
+            case TYPE_232H:  default_product = "Single-RS232-HS"; break;
+            case TYPE_230X:  default_product = "FT230X Basic UART"; break;
+            default:
+                ftdi_error_return(-3, "Unknown chip type");
         }
         eeprom->product = malloc(strlen(default_product) +1);
         if (eeprom->product)
@@ -2439,7 +2439,7 @@ int ftdi_eeprom_initdefaults(struct ftdi_context *ftdi, 
char * manufacturer,
 }
 
 int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, char * manufacturer,
-                             char * product, char * serial)
+                            char * product, char * serial)
 {
     struct ftdi_eeprom *eeprom;
 
@@ -2454,7 +2454,8 @@ int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, 
char * manufacturer,
     if (ftdi->usb_dev == NULL)
         ftdi_error_return(-3, "No connected device or device not yet opened");
 
-    if (manufacturer) {
+    if (manufacturer)
+    {
         if (eeprom->manufacturer)
             free (eeprom->manufacturer);
         eeprom->manufacturer = malloc(strlen(manufacturer)+1);
@@ -2462,7 +2463,8 @@ int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, 
char * manufacturer,
             strcpy(eeprom->manufacturer, manufacturer);
     }
 
-    if(product) {
+    if(product)
+    {
         if (eeprom->product)
             free (eeprom->product);
         eeprom->product = malloc(strlen(product)+1);
@@ -2470,11 +2472,13 @@ int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, 
char * manufacturer,
             strcpy(eeprom->product, product);
     }
 
-    if (serial) {
+    if (serial)
+    {
         if (eeprom->serial)
             free (eeprom->serial);
         eeprom->serial = malloc(strlen(serial)+1);
-        if (eeprom->serial) {
+        if (eeprom->serial)
+        {
             strcpy(eeprom->serial, serial);
             eeprom->use_serial = 1;
         }
@@ -2487,7 +2491,7 @@ int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, 
char * manufacturer,
 void set_ft232h_cbus(struct ftdi_eeprom *eeprom, unsigned char * output)
 {
     int i;
-    for(i=0; i<5;i++)
+    for(i=0; i<5; i++)
     {
         int mode_low, mode_high;
         if (eeprom->cbus_function[2*i]> CBUSH_CLK7_5)
@@ -2509,35 +2513,35 @@ static unsigned char type2bit(unsigned char type, enum 
ftdi_chip_type chip)
 {
     switch (chip)
     {
-    case TYPE_2232H:
-    case TYPE_2232C:
-    {
-        switch (type)
+        case TYPE_2232H:
+        case TYPE_2232C:
         {
-        case CHANNEL_IS_UART: return 0;
-        case CHANNEL_IS_FIFO: return 0x01;
-        case CHANNEL_IS_OPTO: return 0x02;
-        case CHANNEL_IS_CPU : return 0x04;
-        default: return 0;
+            switch (type)
+            {
+                case CHANNEL_IS_UART: return 0;
+                case CHANNEL_IS_FIFO: return 0x01;
+                case CHANNEL_IS_OPTO: return 0x02;
+                case CHANNEL_IS_CPU : return 0x04;
+                default: return 0;
+            }
         }
-    }
-    case TYPE_232H:
-    {
-        switch (type)
+        case TYPE_232H:
         {
-        case CHANNEL_IS_UART   : return 0;
-        case CHANNEL_IS_FIFO   : return 0x01;
-        case CHANNEL_IS_OPTO   : return 0x02;
-        case CHANNEL_IS_CPU    : return 0x04;
-        case CHANNEL_IS_FT1284 : return 0x08;
-        default: return 0;
+            switch (type)
+            {
+                case CHANNEL_IS_UART   : return 0;
+                case CHANNEL_IS_FIFO   : return 0x01;
+                case CHANNEL_IS_OPTO   : return 0x02;
+                case CHANNEL_IS_CPU    : return 0x04;
+                case CHANNEL_IS_FT1284 : return 0x08;
+                default: return 0;
+            }
         }
-    }
-    case TYPE_230X: /* FT230X is only UART */
-    default: return 0;
+        case TYPE_230X: /* FT230X is only UART */
+        default: return 0;
     }
     return 0;
-}    
+}
 
 /**
     Build binary buffer from ftdi_eeprom structure.
@@ -2573,7 +2577,8 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
     if (eeprom->chip == -1)
         ftdi_error_return(-6,"No connected EEPROM or EEPROM type unknown");
 
-    if (eeprom->size == -1) {
+    if (eeprom->size == -1)
+    {
         if ((eeprom->chip == 0x56) || (eeprom->chip == 0x66))
             eeprom->size = 0x100;
         else
@@ -2618,12 +2623,15 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
         ftdi_error_return(-1,"eeprom size exceeded");
 
     // empty eeprom
-    if (ftdi->type == TYPE_230X) {
+    if (ftdi->type == TYPE_230X)
+    {
         /* FT230X have a reserved section in the middle of the MTP,
            which cannot be written to, but must be included in the checksum */
         memset(ftdi->eeprom->buf, 0, 0x80);
         memset((ftdi->eeprom->buf + 0xa0), 0, (FTDI_MAX_EEPROM_SIZE - 0xa0));
-    } else {
+    }
+    else
+    {
         memset(ftdi->eeprom->buf, 0, FTDI_MAX_EEPROM_SIZE);
     }
 
@@ -3047,7 +3055,8 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
             output[0x00] = 0x80; /* Actually, leave the default value */
             output[0x0a] = 0x08; /* Enable USB Serial Number */
             output[0x0c] = (0x01) | (0x3 << 4); /* DBUS drive 4mA, CBUS drive 
16mA */
-            for (j = 0; j <= 6; j++) {
+            for (j = 0; j <= 6; j++)
+            {
                 output[0x1a + j] = eeprom->cbus_function[j];
             }
             break;
@@ -3058,7 +3067,8 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
 
     for (i = 0; i < eeprom->size/2-1; i++)
     {
-        if ((ftdi->type == TYPE_230X) && (i == 0x12)) {
+        if ((ftdi->type == TYPE_230X) && (i == 0x12))
+        {
             /* FT230X has a user section in the MTP which is not part of the 
checksum */
             i = 0x40;
         }
@@ -3075,7 +3085,7 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
     eeprom->initialized_for_connected_device = 1;
     return user_area_size;
 }
-/* Decode the encoded EEPROM field for the FTDI Mode into a value for the 
abstracted 
+/* Decode the encoded EEPROM field for the FTDI Mode into a value for the 
abstracted
  * EEPROM structure
  *
  * FTD2XX doesn't allow to set multiple bits in the interface mode bitfield, 
and so do we
@@ -3084,14 +3094,14 @@ static unsigned char bit2type(unsigned char bits)
 {
     switch (bits)
     {
-    case   0: return CHANNEL_IS_UART;
-    case   1: return CHANNEL_IS_FIFO;
-    case   2: return CHANNEL_IS_OPTO;
-    case   4: return CHANNEL_IS_CPU;
-    case   8: return CHANNEL_IS_FT1284;
-    default:
-        fprintf(stderr," Unexpected value %d for Hardware Interface type\n",
-                bits);
+        case   0: return CHANNEL_IS_UART;
+        case   1: return CHANNEL_IS_FIFO;
+        case   2: return CHANNEL_IS_OPTO;
+        case   4: return CHANNEL_IS_CPU;
+        case   8: return CHANNEL_IS_FT1284;
+        default:
+            fprintf(stderr," Unexpected value %d for Hardware Interface 
type\n",
+                    bits);
     }
     return 0;
 }
@@ -3176,7 +3186,7 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
         {
             // Decode manufacturer
             i = buf[0x0E] & (eeprom_size -1); // offset
-            for (j=0;j<manufacturer_size-1;j++)
+            for (j=0; j<manufacturer_size-1; j++)
             {
                 eeprom->manufacturer[j] = buf[2*j+i+2];
             }
@@ -3197,7 +3207,7 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
         {
             // Decode product name
             i = buf[0x10] & (eeprom_size -1); // offset
-            for (j=0;j<product_size-1;j++)
+            for (j=0; j<product_size-1; j++)
             {
                 eeprom->product[j] = buf[2*j+i+2];
             }
@@ -3218,7 +3228,7 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
         {
             // Decode serial
             i = buf[0x12] & (eeprom_size -1); // offset
-            for (j=0;j<serial_size-1;j++)
+            for (j=0; j<serial_size-1; j++)
             {
                 eeprom->serial[j] = buf[2*j+i+2];
             }
@@ -3232,7 +3242,8 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
 
     for (i = 0; i < eeprom_size/2-1; i++)
     {
-        if ((ftdi->type == TYPE_230X) && (i == 0x12)) {
+        if ((ftdi->type == TYPE_230X) && (i == 0x12))
+        {
             /* FT230X has a user section in the MTP which is not part of the 
checksum */
             i = 0x40;
         }
@@ -3353,7 +3364,8 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
     }
     else if (ftdi->type == TYPE_230X)
     {
-        for(i=0; i<4; i++) {
+        for(i=0; i<4; i++)
+        {
             eeprom->cbus_function[i] =  buf[0x1a + i] & 0xFF;
         }
         eeprom->group0_drive   =  buf[0x0c]       & 0x03;
@@ -3395,7 +3407,7 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
         {
             if(ftdi->type >= TYPE_232H)
                 fprintf(stdout,"Enter low power state on ACBUS7\n");
-        } 
+        }
         if (eeprom->remote_wakeup)
             fprintf(stdout, "Enable Remote Wake Up\n");
         fprintf(stdout, "PNP: %d\n",(eeprom->is_not_pnp)?0:1);
@@ -3410,7 +3422,7 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
                     (eeprom->clock_polarity)?"HIGH":"LOW",
                     (eeprom->data_order)?"LSB":"MSB",
                     (eeprom->flow_control)?"":"No ");
-        }        
+        }
         if ((ftdi->type >= TYPE_2232C) && (ftdi->type != TYPE_R) && 
(ftdi->type != TYPE_232H))
             fprintf(stdout,"Channel B has Mode %s%s%s\n",
                     channel_mode[eeprom->channel_b_type],
@@ -3447,9 +3459,9 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
         {
             int i;
             char *cbush_mux[] = {"TRISTATE","RXLED","TXLED", "TXRXLED","PWREN",
-                                "SLEEP","DRIVE_0","DRIVE_1","IOMODE","TXDEN",
-                                "CLK30","CLK15","CLK7_5"
-                               };
+                                 "SLEEP","DRIVE_0","DRIVE_1","IOMODE","TXDEN",
+                                 "CLK30","CLK15","CLK7_5"
+                                };
             fprintf(stdout,"ACBUS has %d mA drive%s%s\n",
                     (eeprom->group0_drive+1) *4,
                     (eeprom->group0_schmitt)?" Schmitt Input":"",
@@ -3469,11 +3481,11 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
         {
             int i;
             char *cbush_mux[] = {"TRISTATE","RXLED","TXLED", "TXRXLED","PWREN",
-                                "SLEEP","DRIVE_0","DRIVE_1","IOMODE","TXDEN",
-                                
"CLK24","CLK12","CLK6","BAT_DETECT","BAT_DETECT#",
-                                "I2C_TXE#", "I2C_RXF#", "VBUS_SENSE", "BB_WR#",
-                                "BBRD#", "TIME_STAMP", "AWAKE#",
-                               };
+                                 "SLEEP","DRIVE_0","DRIVE_1","IOMODE","TXDEN",
+                                 
"CLK24","CLK12","CLK6","BAT_DETECT","BAT_DETECT#",
+                                 "I2C_TXE#", "I2C_RXF#", "VBUS_SENSE", 
"BB_WR#",
+                                 "BBRD#", "TIME_STAMP", "AWAKE#",
+                                };
             fprintf(stdout,"IOBUS has %d mA drive%s%s\n",
                     (eeprom->group0_drive+1) *4,
                     (eeprom->group0_schmitt)?" Schmitt Input":"",
@@ -3691,19 +3703,19 @@ int ftdi_get_eeprom_value(struct ftdi_context *ftdi, 
enum ftdi_eeprom_value valu
         case GROUP3_SLEW:
             *value = ftdi->eeprom->group3_slew;
             break;
-         case POWER_SAVE:
+        case POWER_SAVE:
             *value = ftdi->eeprom->powersave;
             break;
-          case CLOCK_POLARITY:
+        case CLOCK_POLARITY:
             *value = ftdi->eeprom->clock_polarity;
             break;
-         case DATA_ORDER:
+        case DATA_ORDER:
             *value = ftdi->eeprom->data_order;
             break;
-         case FLOW_CONTROL:
+        case FLOW_CONTROL:
             *value = ftdi->eeprom->flow_control;
             break;
-       case CHIP_TYPE:
+        case CHIP_TYPE:
             *value = ftdi->eeprom->chip;
             break;
         case CHIP_SIZE:
@@ -3884,16 +3896,16 @@ int ftdi_set_eeprom_value(struct ftdi_context *ftdi, 
enum ftdi_eeprom_value valu
         case CHIP_TYPE:
             ftdi->eeprom->chip = value;
             break;
-         case POWER_SAVE:
+        case POWER_SAVE:
             ftdi->eeprom->powersave = value;
             break;
-         case CLOCK_POLARITY:
+        case CLOCK_POLARITY:
             ftdi->eeprom->clock_polarity = value;
             break;
-         case DATA_ORDER:
+        case DATA_ORDER:
             ftdi->eeprom->data_order = value;
             break;
-         case FLOW_CONTROL:
+        case FLOW_CONTROL:
             ftdi->eeprom->flow_control = value;
             break;
         case CHIP_SIZE:
@@ -4164,7 +4176,8 @@ int ftdi_write_eeprom(struct ftdi_context *ftdi)
     for (i = 0; i < ftdi->eeprom->size/2; i++)
     {
         /* Do not try to write to reserved area */
-        if ((ftdi->type == TYPE_230X) && (i == 0x40)) {
+        if ((ftdi->type == TYPE_230X) && (i == 0x40))
+        {
             i = 0x50;
         }
         usb_val = eeprom[i*2];
diff --git a/src/ftdi.h b/src/ftdi.h
index 8f03679..15067c7 100644
--- a/src/ftdi.h
+++ b/src/ftdi.h
@@ -21,7 +21,8 @@
 #include <sys/time.h>
 
 /** FTDI chip type */
-enum ftdi_chip_type {
+enum ftdi_chip_type
+{
     TYPE_AM=0,
     TYPE_BM=1,
     TYPE_2232C=2,
@@ -48,7 +49,7 @@ enum ftdi_mpsse_mode
     BITMODE_MPSSE  = 0x02,    /**< MPSSE mode, available on 2232x chips */
     BITMODE_SYNCBB = 0x04,    /**< synchronous bitbang mode, available on 
2232x and R-type chips  */
     BITMODE_MCU    = 0x08,    /**< MCU Host Bus Emulation mode, available on 
2232x chips */
-                              /* CPU-style fifo mode gets set via EEPROM */
+    /* CPU-style fifo mode gets set via EEPROM */
     BITMODE_OPTO   = 0x10,    /**< Fast Opto-Isolated Serial Interface Mode, 
available on 2232x chips  */
     BITMODE_CBUS   = 0x20,    /**< Bitbang on CBUS pins of R-type chips, 
configure in EEPROM before */
     BITMODE_SYNCFF = 0x40,    /**< Single Channel Synchronous FIFO mode, 
available on 2232H chips */
@@ -180,12 +181,12 @@ enum ftdi_module_detach_mode
 #define FTDI_URB_USERCONTEXT_COOKIE ((void *)0x1)
 
 #ifdef __GNUC__
-    #define DEPRECATED(func) func __attribute__ ((deprecated))
+#define DEPRECATED(func) func __attribute__ ((deprecated))
 #elif defined(_MSC_VER)
-    #define DEPRECATED(func) __declspec(deprecated) func
+#define DEPRECATED(func) __declspec(deprecated) func
 #else
-    #pragma message("WARNING: You need to implement DEPRECATED for this 
compiler")
-    #define DEPRECATED(func) func
+#pragma message("WARNING: You need to implement DEPRECATED for this compiler")
+#define DEPRECATED(func) func
 #endif
 
 struct ftdi_transfer_control
@@ -337,17 +338,21 @@ struct ftdi_device_list
 #define POWER_SAVE_DISABLE_H 0x80
 
 #define USE_SERIAL_NUM 0x08
-enum ftdi_cbus_func {/* FIXME: Recheck value, especially the last */
+enum ftdi_cbus_func  /* FIXME: Recheck value, especially the last */
+{
     CBUS_TXDEN = 0, CBUS_PWREN = 1, CBUS_RXLED = 2, CBUS_TXLED = 3, 
CBUS_TXRXLED = 4,
     CBUS_SLEEP = 5, CBUS_CLK48 = 6, CBUS_CLK24 = 7, CBUS_CLK12 = 8, CBUS_CLK6 
=  9,
-    CBUS_IOMODE = 0xa, CBUS_BB_WR = 0xb, CBUS_BB_RD = 0xc, CBUS_BB   = 0xd};
+    CBUS_IOMODE = 0xa, CBUS_BB_WR = 0xb, CBUS_BB_RD = 0xc, CBUS_BB   = 0xd
+};
 
-enum ftdi_cbush_func {/* FIXME: Recheck value, especially the last */
+enum ftdi_cbush_func  /* FIXME: Recheck value, especially the last */
+{
     CBUSH_TRISTATE = 0, CBUSH_RXLED = 1, CBUSH_TXLED = 2, CBUSH_TXRXLED = 3, 
CBUSH_PWREN = 4,
     CBUSH_SLEEP = 5, CBUSH_DRIVE_0 = 6, CBUSG_DRIVE1 = 7, CBUSH_IOMODE = 8, 
CBUSH_TXDEN =  9,
     CBUSH_CLK30 = 10, CBUSH_CLK15 = 11, CBUSH_CLK7_5 = 12, CBUSH_BAT_DETECT = 
13,
     CBUSH_BAT_DETECT_NEG = 14, CBUSH_I2C_TXE = 15, CBUSH_I2C_RXF = 16, 
CBUSH_VBUS_SENSE = 17,
-    CBUSH_BB_WR = 18, CBUSH_BB_RD = 19, CBUSH_TIME_STAMP = 20, CBUSH_AWAKE = 
21,};
+    CBUSH_BB_WR = 18, CBUSH_BB_RD = 19, CBUSH_TIME_STAMP = 20, CBUSH_AWAKE = 
21,
+};
 
 /** Invert TXD# */
 #define INVERT_TXD 0x01
@@ -399,8 +404,8 @@ enum ftdi_cbush_func {/* FIXME: Recheck value, especially 
the last */
 */
 struct size_and_time
 {
-        uint64_t totalBytes;
-        struct timeval time;
+    uint64_t totalBytes;
+    struct timeval time;
 };
 
 typedef struct
@@ -458,13 +463,13 @@ extern "C"
                              char * description, int desc_len,
                              char * serial, int serial_len);
     int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, char * manufacturer,
-                             char * product, char * serial);
+                                char * product, char * serial);
 
     int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product);
     int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product,
                            const char* description, const char* serial);
     int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int vendor, int 
product,
-                           const char* description, const char* serial, 
unsigned int index);
+                                 const char* description, const char* serial, 
unsigned int index);
     int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct libusb_device 
*dev);
     int ftdi_usb_open_string(struct ftdi_context *ftdi, const char* 
description);
 
@@ -515,9 +520,9 @@ extern "C"
     int ftdi_set_error_char(struct ftdi_context *ftdi, unsigned char errorch, 
unsigned char enable);
 
     /* init eeprom for the given FTDI type */
-    int ftdi_eeprom_initdefaults(struct ftdi_context *ftdi, 
-                                  char * manufacturer, char *product, 
-                                  char * serial);
+    int ftdi_eeprom_initdefaults(struct ftdi_context *ftdi,
+                                 char * manufacturer, char *product,
+                                 char * serial);
     int ftdi_eeprom_build(struct ftdi_context *ftdi);
     int ftdi_eeprom_decode(struct ftdi_context *ftdi, int verbose);
 
diff --git a/src/ftdi_i.h b/src/ftdi_i.h
index b973680..f8868d9 100644
--- a/src/ftdi_i.h
+++ b/src/ftdi_i.h
@@ -61,7 +61,7 @@ struct ftdi_eeprom
     int usb_version;
     /** Use usb version on FT2232 devices*/
     int use_usb_version;
-     /** maximum power */
+    /** maximum power */
     int max_power;
 
     /** manufacturer name */
@@ -72,7 +72,7 @@ struct ftdi_eeprom
     char *serial;
 
     /* 2232D/H specific */
-    /* Hardware type, 0 = RS232 Uart, 1 = 245 FIFO, 2 = CPU FIFO, 
+    /* Hardware type, 0 = RS232 Uart, 1 = 245 FIFO, 2 = CPU FIFO,
        4 = OPTO Isolate */
     int channel_a_type;
     int channel_b_type;
diff --git a/src/ftdi_stream.c b/src/ftdi_stream.c
index cf3acf5..2180672 100644
--- a/src/ftdi_stream.c
+++ b/src/ftdi_stream.c
@@ -4,7 +4,7 @@
     copyright            : (C) 2009 Micah Dowty 2010 Uwe Bonnes
     email                : opensource@xxxxxxxxxxxxx
  ***************************************************************************/
- 
+
 /***************************************************************************
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -13,7 +13,7 @@
  *                                                                         *
  ***************************************************************************/
 
-/* Adapted from 
+/* Adapted from
  * fastftdi.c - A minimal FTDI FT232H interface for which supports bit-bang
  *              mode, but focuses on very high-performance support for
  *              synchronous FIFO mode. Requires libusb-1.0
@@ -56,59 +56,59 @@ typedef struct
 } FTDIStreamState;
 
 /* Handle callbacks
- * 
+ *
  * With Exit request, free memory and release the transfer
  *
- * state->result is only set when some error happens 
+ * state->result is only set when some error happens
  */
 static void
 ftdi_readstream_cb(struct libusb_transfer *transfer)
 {
-   FTDIStreamState *state = transfer->user_data;
-   int packet_size = state->packetsize;
-
-   state->activity++;
-   if (transfer->status == LIBUSB_TRANSFER_COMPLETED)
-   {
-       int i;
-       uint8_t *ptr = transfer->buffer;
-       int length = transfer->actual_length;
-       int numPackets = (length + packet_size - 1) / packet_size;
-       int res = 0;
-
-       for (i = 0; i < numPackets; i++)
-       {
-           int payloadLen;
-           int packetLen = length;
-           
-           if (packetLen > packet_size)
-               packetLen = packet_size;
-           
-           payloadLen = packetLen - 2;
-           state->progress.current.totalBytes += payloadLen;
-           
-           res = state->callback(ptr + 2, payloadLen,
-                                 NULL, state->userdata);
-
-           ptr += packetLen;
-           length -= packetLen;
-       }
-       if (res)
-       {
-           free(transfer->buffer);
-           libusb_free_transfer(transfer);           
-       }
-       else
-       {
-           transfer->status = -1;
-           state->result = libusb_submit_transfer(transfer);
-       }
-   }
-   else
-   {
-       fprintf(stderr, "unknown status %d\n",transfer->status); 
-       state->result = LIBUSB_ERROR_IO;
-   }
+    FTDIStreamState *state = transfer->user_data;
+    int packet_size = state->packetsize;
+
+    state->activity++;
+    if (transfer->status == LIBUSB_TRANSFER_COMPLETED)
+    {
+        int i;
+        uint8_t *ptr = transfer->buffer;
+        int length = transfer->actual_length;
+        int numPackets = (length + packet_size - 1) / packet_size;
+        int res = 0;
+
+        for (i = 0; i < numPackets; i++)
+        {
+            int payloadLen;
+            int packetLen = length;
+
+            if (packetLen > packet_size)
+                packetLen = packet_size;
+
+            payloadLen = packetLen - 2;
+            state->progress.current.totalBytes += payloadLen;
+
+            res = state->callback(ptr + 2, payloadLen,
+                                  NULL, state->userdata);
+
+            ptr += packetLen;
+            length -= packetLen;
+        }
+        if (res)
+        {
+            free(transfer->buffer);
+            libusb_free_transfer(transfer);
+        }
+        else
+        {
+            transfer->status = -1;
+            state->result = libusb_submit_transfer(transfer);
+        }
+    }
+    else
+    {
+        fprintf(stderr, "unknown status %d\n",transfer->status);
+        state->result = LIBUSB_ERROR_IO;
+    }
 }
 
 /**
@@ -120,12 +120,12 @@ ftdi_readstream_cb(struct libusb_transfer *transfer)
 static double
 TimevalDiff(const struct timeval *a, const struct timeval *b)
 {
-   return (a->tv_sec - b->tv_sec) + 1e-6 * (a->tv_usec - b->tv_usec);
+    return (a->tv_sec - b->tv_sec) + 1e-6 * (a->tv_usec - b->tv_usec);
 }
 
 /**
     Streaming reading of data from the device
-    
+
     Use asynchronous transfers in libusb-1.0 for high-performance
     streaming of data from a device interface back to the PC. This
     function continuously transfers data until either an error occurs
@@ -145,8 +145,8 @@ TimevalDiff(const struct timeval *a, const struct timeval 
*b)
 
 int
 ftdi_readstream(struct ftdi_context *ftdi,
-                      FTDIStreamCallback *callback, void *userdata,
-                      int packetsPerTransfer, int numTransfers)
+                FTDIStreamCallback *callback, void *userdata,
+                int packetsPerTransfer, int numTransfers)
 {
     struct libusb_transfer **transfers;
     FTDIStreamState state = { callback, userdata, ftdi->max_packet_size, 1 };
@@ -160,14 +160,14 @@ ftdi_readstream(struct ftdi_context *ftdi,
         fprintf(stderr,"Device doesn't support synchronous FIFO mode\n");
         return 1;
     }
-    
+
     /* We don't know in what state we are, switch to reset*/
     if (ftdi_set_bitmode(ftdi,  0xff, BITMODE_RESET) < 0)
     {
         fprintf(stderr,"Can't reset mode\n");
         return 1;
     }
-    
+
     /* Purge anything remaining in the buffers*/
     if (ftdi_usb_purge_buffers(ftdi) < 0)
     {
@@ -178,34 +178,37 @@ ftdi_readstream(struct ftdi_context *ftdi,
     /*
      * Set up all transfers
      */
-    
+
     transfers = calloc(numTransfers, sizeof *transfers);
-    if (!transfers) {
+    if (!transfers)
+    {
         err = LIBUSB_ERROR_NO_MEM;
         goto cleanup;
     }
-    
+
     for (xferIndex = 0; xferIndex < numTransfers; xferIndex++)
     {
         struct libusb_transfer *transfer;
-        
+
         transfer = libusb_alloc_transfer(0);
         transfers[xferIndex] = transfer;
-        if (!transfer) {
+        if (!transfer)
+        {
             err = LIBUSB_ERROR_NO_MEM;
             goto cleanup;
         }
-        
+
         libusb_fill_bulk_transfer(transfer, ftdi->usb_dev, ftdi->out_ep,
-                                  malloc(bufferSize), bufferSize, 
-                                 ftdi_readstream_cb,
+                                  malloc(bufferSize), bufferSize,
+                                  ftdi_readstream_cb,
                                   &state, 0);
-        
-        if (!transfer->buffer) {
+
+        if (!transfer->buffer)
+        {
             err = LIBUSB_ERROR_NO_MEM;
             goto cleanup;
         }
-        
+
         transfer->status = -1;
         err = libusb_submit_transfer(transfer);
         if (err)
@@ -213,8 +216,8 @@ ftdi_readstream(struct ftdi_context *ftdi,
     }
 
     /* Start the transfers only when everything has been set up.
-     * Otherwise the transfers start stuttering and the PC not 
-     * fetching data for several to several ten milliseconds 
+     * Otherwise the transfers start stuttering and the PC not
+     * fetching data for several to several ten milliseconds
      * and we skip blocks
      */
     if (ftdi_set_bitmode(ftdi,  0xff, BITMODE_SYNCFF) < 0)
@@ -227,20 +230,20 @@ ftdi_readstream(struct ftdi_context *ftdi,
     /*
      * Run the transfers, and periodically assess progress.
      */
-    
+
     gettimeofday(&state.progress.first.time, NULL);
-    
+
     do
     {
         FTDIProgressInfo  *progress = &state.progress;
         const double progressInterval = 1.0;
         struct timeval timeout = { 0, ftdi->usb_read_timeout };
         struct timeval now;
-        
+
         int err = libusb_handle_events_timeout(ftdi->usb_ctx, &timeout);
         if (err ==  LIBUSB_ERROR_INTERRUPTED)
             /* restart interrupted events */
-            err = libusb_handle_events_timeout(ftdi->usb_ctx, &timeout);  
+            err = libusb_handle_events_timeout(ftdi->usb_ctx, &timeout);
         if (!state.result)
         {
             state.result = err;
@@ -249,7 +252,7 @@ ftdi_readstream(struct ftdi_context *ftdi,
             state.result = 1;
         else
             state.activity = 0;
-        
+
         // If enough time has elapsed, update the progress
         gettimeofday(&now, NULL);
         if (TimevalDiff(&now, &progress->current.time) >= progressInterval)
@@ -257,37 +260,37 @@ ftdi_readstream(struct ftdi_context *ftdi,
             progress->current.time = now;
             progress->totalTime = TimevalDiff(&progress->current.time,
                                               &progress->first.time);
-            
+
             if (progress->prev.totalBytes)
             {
                 // We have enough information to calculate rates
-                
+
                 double currentTime;
-                
+
                 currentTime = TimevalDiff(&progress->current.time,
                                           &progress->prev.time);
-                
-                progress->totalRate = 
-                   progress->current.totalBytes /progress->totalTime;
-                progress->currentRate = 
-                   (progress->current.totalBytes -
-                    progress->prev.totalBytes) / currentTime;
+
+                progress->totalRate =
+                    progress->current.totalBytes /progress->totalTime;
+                progress->currentRate =
+                    (progress->current.totalBytes -
+                     progress->prev.totalBytes) / currentTime;
             }
-            
+
             state.callback(NULL, 0, progress, state.userdata);
             progress->prev = progress->current;
-            
+
         }
     } while (!state.result);
-    
+
     /*
      * Cancel any outstanding transfers, and free memory.
      */
-    
- cleanup:
+
+cleanup:
     fprintf(stderr, "cleanup\n");
     if (transfers)
-       free(transfers);
+        free(transfers);
     if (err)
         return err;
     else


hooks/post-receive
-- 
A library to talk to FTDI chips

--
libftdi-git - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi-git+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread
  • A library to talk to FTDI chips branch, master, updated. v1.0-16-g74387f2, libftdi-git <=