The branch, master has been updated
via b790d38e9fac3e2144293a84bfc6de72b01a6c6d (commit)
from a1e6050855a9dca5f0b700748a3aea094836c410 (commit)
- Log -----------------------------------------------------------------
commit b790d38e9fac3e2144293a84bfc6de72b01a6c6d
Author: Uwe Bonnes <bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 29 18:28:25 2011 +0200
Use a private header for the private EEPROM structures
I added the ftdi_i.h header to bindings/ftdi.i. Noe the bindings compile
again. Other things are untouched.
-----------------------------------------------------------------------
Summary of changes:
TODO | 1 -
bindings/ftdi.i | 5 ++
ftdipp/ftdi.cpp | 1 +
src/ftdi.c | 1 +
src/ftdi.h | 103 ----------------------------------------------
src/ftdi_i.h | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 130 insertions(+), 104 deletions(-)
create mode 100644 src/ftdi_i.h
diff --git a/TODO b/TODO
index cdc0409..adafdc2 100644
--- a/TODO
+++ b/TODO
@@ -4,7 +4,6 @@ Build related:
so libftdi 0.x and 1.x can co-exist
API extentions:
-- Make EEPROM structure opaque
- TO DECIDE: Make ftdi structure opaque?
Misc:
diff --git a/bindings/ftdi.i b/bindings/ftdi.i
index b1d550a..2903924 100644
--- a/bindings/ftdi.i
+++ b/bindings/ftdi.i
@@ -15,6 +15,11 @@
#include <ftdi.h>
%}
+%include ftdi_i.h
+%{
+#include <ftdi_i.h>
+%}
+
extern "C" {
%apply char *OUTPUT { unsigned char *buf };
diff --git a/ftdipp/ftdi.cpp b/ftdipp/ftdi.cpp
index 2754033..18dd81c 100644
--- a/ftdipp/ftdi.cpp
+++ b/ftdipp/ftdi.cpp
@@ -27,6 +27,7 @@ This exception does not invalidate any other reasons why a
work based
on this file might be covered by the GNU General Public License.
*/
#include "ftdi.hpp"
+#include "ftdi_i.h"
#include "ftdi.h"
namespace Ftdi
diff --git a/src/ftdi.c b/src/ftdi.c
index de5ded1..17d1d0f 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -34,6 +34,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include "ftdi_i.h"
#include "ftdi.h"
#include "ftdi_version_i.h"
diff --git a/src/ftdi.h b/src/ftdi.h
index 759e61b..03a7d52 100644
--- a/src/ftdi.h
+++ b/src/ftdi.h
@@ -19,9 +19,6 @@
#include <libusb.h>
-/* Even on 93xx66 at max 256 bytes are used (AN_121)*/
-#define FTDI_MAX_EEPROM_SIZE 256
-
/** FTDI chip type */
enum ftdi_chip_type { TYPE_AM=0, TYPE_BM=1, TYPE_2232C=2, TYPE_R=3,
TYPE_2232H=4, TYPE_4232H=5, TYPE_232H=6 };
/** Parity mode for ftdi_set_line_property() */
@@ -192,106 +189,6 @@ struct ftdi_transfer_control
};
/**
- \brief FTDI eeprom structure
-*/
-struct ftdi_eeprom
-{
- /** vendor id */
- int vendor_id;
- /** product id */
- int product_id;
-
- /** Was the eeprom structure initialized for the actual
- connected device? **/
- int initialized_for_connected_device;
-
- /** self powered */
- int self_powered;
- /** remote wakeup */
- int remote_wakeup;
-
- int is_not_pnp;
-
- /* Suspend on DBUS7 Low */
- int suspend_dbus7;
-
- /** input in isochronous transfer mode */
- int in_is_isochronous;
- /** output in isochronous transfer mode */
- int out_is_isochronous;
- /** suspend pull downs */
- int suspend_pull_downs;
-
- /** use serial */
- int use_serial;
- /** usb version */
- int usb_version;
- /** Use usb version on FT2232 devices*/
- int use_usb_version;
- /** maximum power */
- int max_power;
-
- /** manufacturer name */
- char *manufacturer;
- /** product name */
- char *product;
- /** serial number */
- char *serial;
-
- /* 2232D/H(/FT4432H?) specific */
- /* Hardware type, 0 = RS232 Uart, 1 = 245 FIFO, 2 = CPU FIFO,
- 4 = OPTO Isolate */
- int channel_a_type;
- int channel_b_type;
- /* Driver Type, 1 = VCP */
- int channel_a_driver;
- int channel_b_driver;
-
- /* Special function of FT232R/FT232H devices (and possibly others as well)
*/
- /** CBUS pin function. See CBUS_xxx defines. */
- int cbus_function[10];
- /** Select hight current drive on R devices. */
- int high_current;
- /** Select hight current drive on A channel (2232C */
- int high_current_a;
- /** Select hight current drive on B channel (2232C). */
- int high_current_b;
- /** Select inversion of data lines (bitmask). */
- int invert;
-
- /*2232H/4432H Group specific values */
- /* Group0 is AL on 2322H and A on 4232H
- Group1 is AH on 2232H and B on 4232H
- Group2 is BL on 2322H and C on 4232H
- Group3 is BH on 2232H and C on 4232H*/
- int group0_drive;
- int group0_schmitt;
- int group0_slew;
- int group1_drive;
- int group1_schmitt;
- int group1_slew;
- int group2_drive;
- int group2_schmitt;
- int group2_slew;
- int group3_drive;
- int group3_schmitt;
- int group3_slew;
-
- int powersave;
-
- int clock_polarity;
- int data_order;
- int flow_control;
-
- /** eeprom size in bytes. This doesn't get stored in the eeprom
- but is the only way to pass it to ftdi_eeprom_build. */
- int size;
- /* EEPROM Type 0x46 for 93xx46, 0x56 for 93xx56 and 0x66 for 93xx66*/
- int chip;
- unsigned char buf[FTDI_MAX_EEPROM_SIZE];
-};
-
-/**
\brief Main context structure for all libftdi functions.
Do not access directly if possible.
diff --git a/src/ftdi_i.h b/src/ftdi_i.h
new file mode 100644
index 0000000..1bbcf14
--- /dev/null
+++ b/src/ftdi_i.h
@@ -0,0 +1,123 @@
+/***************************************************************************
+ ftdi_i.h - description
+ -------------------
+ begin : Don Sep 9 2011
+ copyright : (C) 2003-2011 by Intra2net AG and the libftdi
developers
+ email : opensource@xxxxxxxxxxxxx
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Lesser General Public License *
+ * version 2.1 as published by the Free Software Foundation; *
+ * *
+ ***************************************************************************
+
+ Non public definitions here
+
+*/
+
+/* Even on 93xx66 at max 256 bytes are used (AN_121)*/
+#define FTDI_MAX_EEPROM_SIZE 256
+
+/**
+ \brief FTDI eeprom structure
+*/
+struct ftdi_eeprom
+{
+ /** vendor id */
+ int vendor_id;
+ /** product id */
+ int product_id;
+
+ /** Was the eeprom structure initialized for the actual
+ connected device? **/
+ int initialized_for_connected_device;
+
+ /** self powered */
+ int self_powered;
+ /** remote wakeup */
+ int remote_wakeup;
+
+ int is_not_pnp;
+
+ /* Suspend on DBUS7 Low */
+ int suspend_dbus7;
+
+ /** input in isochronous transfer mode */
+ int in_is_isochronous;
+ /** output in isochronous transfer mode */
+ int out_is_isochronous;
+ /** suspend pull downs */
+ int suspend_pull_downs;
+
+ /** use serial */
+ int use_serial;
+ /** usb version */
+ int usb_version;
+ /** Use usb version on FT2232 devices*/
+ int use_usb_version;
+ /** maximum power */
+ int max_power;
+
+ /** manufacturer name */
+ char *manufacturer;
+ /** product name */
+ char *product;
+ /** serial number */
+ char *serial;
+
+ /* 2232D/H(/FT4432H?) specific */
+ /* Hardware type, 0 = RS232 Uart, 1 = 245 FIFO, 2 = CPU FIFO,
+ 4 = OPTO Isolate */
+ int channel_a_type;
+ int channel_b_type;
+ /* Driver Type, 1 = VCP */
+ int channel_a_driver;
+ int channel_b_driver;
+
+ /* Special function of FT232R/FT232H devices (and possibly others as well)
*/
+ /** CBUS pin function. See CBUS_xxx defines. */
+ int cbus_function[9];
+ /** Select hight current drive on R devices. */
+ int high_current;
+ /** Select hight current drive on A channel (2232C */
+ int high_current_a;
+ /** Select hight current drive on B channel (2232C). */
+ int high_current_b;
+ /** Select inversion of data lines (bitmask). */
+ int invert;
+
+ /*2232H/4432H Group specific values */
+ /* Group0 is AL on 2322H and A on 4232H
+ Group1 is AH on 2232H and B on 4232H
+ Group2 is BL on 2322H and C on 4232H
+ Group3 is BH on 2232H and C on 4232H*/
+ int group0_drive;
+ int group0_schmitt;
+ int group0_slew;
+ int group1_drive;
+ int group1_schmitt;
+ int group1_slew;
+ int group2_drive;
+ int group2_schmitt;
+ int group2_slew;
+ int group3_drive;
+ int group3_schmitt;
+ int group3_slew;
+
+ int powersave;
+
+ int clock_polarity;
+ int data_order;
+ int flow_control;
+
+ /** eeprom size in bytes. This doesn't get stored in the eeprom
+ but is the only way to pass it to ftdi_eeprom_build. */
+ int size;
+ /* EEPROM Type 0x46 for 93xx46, 0x56 for 93xx56 and 0x66 for 93xx66*/
+ int chip;
+ unsigned char buf[FTDI_MAX_EEPROM_SIZE];
+};
+
hooks/post-receive
--
port libftdi to libusb-1.0
--
libftdi-git - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi-git+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx
|