X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.h;h=ff72d05853c52ea1db6aaf95c97f913ea0a22f54;hp=d8b4001987e6f4100b2671fd7e39016b8bc78e37;hb=7cc9950ec21b5cdba8b80ed18dbf686e5024aee1;hpb=4c9e381219d807ff74556eb35cae1c90986242bc diff --git a/src/ftdi.h b/src/ftdi.h index d8b4001..ff72d05 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -113,6 +113,10 @@ enum ftdi_interface { #define SIO_RTS_CTS_HS (0x1 << 8) +/* marker for unused usb urb structures + (taken from libusb) */ +#define FTDI_URB_USERCONTEXT_COOKIE ((void *)0x1) + /** \brief Main context structure for all libftdi functions. @@ -160,6 +164,11 @@ struct ftdi_context { /// String representation of last error char *error_str; + + /// Buffer needed for async communication + char *async_usb_buffer; + /// Number of URB-structures we can buffer + unsigned int async_usb_buffer_size; }; /** @@ -248,10 +257,12 @@ extern "C" { 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_async(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_write_data_async(struct ftdi_context *ftdi, unsigned char *buf, int size); + void ftdi_async_complete(struct ftdi_context *ftdi, int wait_for_more); + int ftdi_enable_bitbang(struct ftdi_context *ftdi, unsigned char bitmask); int ftdi_disable_bitbang(struct ftdi_context *ftdi); int ftdi_set_bitmode(struct ftdi_context *ftdi, unsigned char bitmask, unsigned char mode);