X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=ftdi%2Fftdi.h;h=ea78d3c23c22a97d392529eaa92dd744bf9542cb;hp=b07c35771b828c969f7efba62eed7e3524346c73;hb=bfcee05be17aa91f9a73efa8207eafc99f0b03c9;hpb=b8aa7b35f8b9374c1c4957bab331cb984c313561 diff --git a/ftdi/ftdi.h b/ftdi/ftdi.h index b07c357..ea78d3c 100644 --- a/ftdi/ftdi.h +++ b/ftdi/ftdi.h @@ -3,7 +3,7 @@ ------------------- begin : Fri Apr 4 2003 copyright : (C) 2003 by Intra2net AG - email : info@intra2net.com + email : opensource@intra2net.com ***************************************************************************/ /*************************************************************************** @@ -17,7 +17,7 @@ #ifndef __libftdi_h__ #define __libftdi_h__ -struct usb_dev_handle; +#include struct ftdi_context { // USB specific @@ -27,7 +27,12 @@ struct ftdi_context { // FTDI specific int baudrate; unsigned char bitbang_enabled; - + unsigned char *readbuffer; + unsigned int readbuffer_offset; + unsigned int readbuffer_remaining; + unsigned int readbuffer_chunksize; + unsigned int writebuffer_chunksize; + // misc char *error_str; }; @@ -59,14 +64,22 @@ extern "C" { #endif int ftdi_init(struct ftdi_context *ftdi); + void ftdi_deinit(struct ftdi_context *ftdi); void ftdi_set_usbdev (struct ftdi_context *ftdi, usb_dev_handle *usbdev); int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product); int ftdi_usb_close(struct ftdi_context *ftdi); int ftdi_usb_reset(struct ftdi_context *ftdi); + int ftdi_usb_purge_buffers(struct ftdi_context *ftdi); int ftdi_set_baudrate(struct ftdi_context *ftdi, int baudrate); - int ftdi_write_data(struct ftdi_context *ftdi, char *buf, int size); - int ftdi_read_data(struct ftdi_context *ftdi, char *buf, int size); + + int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size); + int ftdi_read_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize); + int ftdi_read_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize); + + int ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size); + int ftdi_write_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize); + int ftdi_write_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize); int ftdi_enable_bitbang(struct ftdi_context *ftdi, unsigned char bitmask); int ftdi_disable_bitbang(struct ftdi_context *ftdi); @@ -81,8 +94,8 @@ extern "C" { // "eeprom" needs to be valid 128 byte eeprom (generated by the eeprom generator) // the checksum of the eeprom is valided - int ftdi_read_eeprom(struct ftdi_context *ftdi, char *eeprom); - int ftdi_write_eeprom(struct ftdi_context *ftdi, char *eeprom); + int ftdi_read_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom); + int ftdi_write_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom); int ftdi_erase_eeprom(struct ftdi_context *ftdi); #ifdef __cplusplus