aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport/libusb1_zero_copy.cpp
Commit message (Collapse)AuthorAgeFilesLines
* uhd: move thread loop condition flag to before barrier (prevents race condition)Josh Blum2011-04-221-1/+1
|
* usb: mark libusb callbacks with LIBUSB_CALL to ensure correct calling conventionJosh Blum2011-04-051-2/+12
|
* uhd: implemented boost barriers on all code that creates threadsJosh Blum2011-03-311-2/+6
| | | | | | | | | The barrier ensures that the thread must spawn before the caller exits. Some of the code already used a mutex to accomplish this, however cygwin chokes when a mutex is locked twice by the same thread. Mutex implementations were replaced with the barrier implementation. Also the barrier implementation is far cleaner.
* usb: fix callback cast in libusb zero copy under msvcJosh Blum2011-03-211-1/+1
|
* Merge branch 'usb-cancel' into nextJosh Blum2011-03-171-6/+14
|\ | | | | | | | | Conflicts: host/lib/transport/libusb1_zero_copy.cpp
| * USB zero copy impl: proper cleanup for canceled transfers -- wait for cancel ↵Nick Foster2011-03-161-6/+14
| | | | | | | | before freeing
* | usrp1: safe destruction for usrp1 deviceJosh Blum2011-03-101-6/+7
| |
* | uhd: renamed the assert header to assert hasJosh Blum2011-02-241-1/+1
|/ | | | | | | | only the assert has implementation is in this header uhd assert throw moved to the exception header updated code base includes to match
* uhd: tweaks for windows msvc compiler warnings and errorsJosh Blum2011-02-161-2/+2
|
* uhd: reusable buffers for libusb zero copy implementationJosh Blum2011-02-151-323/+169
| | | | tweaks on udp implementation to simplify
* uhd: tweaks to bounded bufferJosh Blum2011-02-101-2/+2
| | | | | | | Added push with haste. Call with haste first in the wait methods to avoid time compare/wait when not needed. Added new calls to the libusb and udp zero copy impls tests pass
* uhd: replace asio buffer in make safe w/ memory and length, makes things simplerJosh Blum2011-02-071-2/+2
|
* uhd: removed instances of shared_from_this() in transportsJosh Blum2011-02-051-4/+3
| | | | | | Its known to be slow and using sptrs of large objects. This should be a slight performance improvement for libusb and usrp_e100_mmap implementation.
* uhd: change bounded_buffer implementation and code using itJosh Blum2011-02-051-8/+7
| | | | | | | The bounded buffer now uses the detail idiom to hide implementation to inline better. The whole sptr/make idiom was removed from bounded buffer to just construct directly. The code using bounded buffer was changed for the new api: replaces access operators and calls to the factory function.
* usb: restored disable_interruption on get_lut_with_wait (gets called externally)Josh Blum2011-01-211-0/+1
|
* usb: use thread interruption in usb zero copy on deconstructionJosh Blum2011-01-171-8/+9
|
* uhd: update copyright datesJosh Blum2011-01-051-1/+1
|
* uhd: created buffer pool to allocate aligned memory, and implemented in ↵Josh Blum2011-01-031-5/+5
| | | | transports
* usb: moved event handler thread into the zero copy interfaceJosh Blum2010-10-051-0/+28
|
* uhd: replaced frame params for the zero copy interfaces with a device addressJosh Blum2010-10-051-37/+30
| | | | | | | | | | the device address gives a key, value pair of infinite optional capabilities added a cast option to the device address to cast string to type T added call to the zero_copy_if to get send and recv frame sizes changed the usrp2 impl to calculate recv/send spp from the data transport
* uhd: bounded buffer pop sets back element to empty to decrement referencesJosh Blum2010-10-041-4/+0
|
* uhd: added include for enable_shared_from_this when usedJosh Blum2010-10-041-1/+1
|
* uhd: changed buffer allocations to be in a single chunk, udp: pass frame ↵Josh Blum2010-10-031-13/+14
| | | | sizes into the impl constructor
* uhd: implemented udp zero copy asio with async callsJosh Blum2010-10-031-3/+3
|
* uhd: reworked the zero copy interfaceJosh Blum2010-10-021-116/+33
| | | | | | | | | | | | | | | | - recv buffers have a release call - safe make function for recv buffers (buff + release callback) - send buffer commits now have a void return - safe make function for send buffers (buff + commit callback) The reason for the void return from commit is that ssize_t num_bytes was never returning anything of use. That is for all of the zero copy implementations so far, commit cannot really error (being asynchronous). libusb zero copy impl was reworked to support the new interface. USRP1 io_impl with the psuedo managed buffer was replaced with safe_make. Also, usrp1 io_impl was simplified greatly due to commit returning void now. UDP zero copy asio was disabled (in this commit, until its reworked). Phony send and recv interfaces were removed completely.
* uhd: implemented a double timeout (in seconds) for send and recv chainsJosh Blum2010-10-011-23/+19
| | | | | | | | converted all size_t timeout_ms to double timeout bounded and alignment buffer now take double timeout added timeout to device::send and zero_copy_if::get_send_buff
* uhd: implemented recv timeout for zero copy interfaceJosh Blum2010-09-301-22/+20
|
* usrp: transfer resize options and documentationJosh Blum2010-09-291-65/+75
|
* uhd: fix warning by adding brackets for while(cond){};Josh Blum2010-09-271-1/+1
|
* usb: disable thread interruption on wait callsJosh Blum2010-09-261-4/+4
|
* usb: zero copy work, multiple endpoints with single context, async ioJosh Blum2010-09-261-356/+118
| | | | | | | | | Heavy work on the zero copy interface and endpoint wrappers to properly use the async io. The global libusb session starts a thread to run the event handler, the async callbacks push completed transfers onto a thread-safe bounded buffer. The managed buffer creation routines use the bounded buffer to efficiently pop off completed transfers. works on linux, throws a weird exception on cleanup
* usb: work on libusb code to use a single context across all callsJosh Blum2010-09-251-54/+29
| | | | | | | | libusb allocation stuff had been moved inside of smart pointer classes to handle automatic cleanup the public device handle implementation now holds an actual libusb device inside of it needs testing - all platforms
* usrp1: fixes to remove warnings and errors for usrp1 + libusb windowsJosh Blum2010-09-231-2/+1
|
* usrp1: Additional comments on libusb transport implemenationThomas Tsou2010-08-281-3/+5
|
* usrp1: Remove unused funtions libusb transportThomas Tsou2010-08-271-6/+0
|
* usrp1: Additional comments to libusb transport implementationThomas Tsou2010-08-271-79/+104
|
* usrp1: Handle degenerate managed send buffer casesThomas Tsou2010-08-271-4/+19
| | | | | | | | Handle degenerate usage of send buffer commits. If the buffer is destroyed without ever being submitted, submit a zero byte transfer to return control to the underlying structure. If a committed buffer is re-committed, then report an error message and return 0 bytes back.
* usrp1: Disable default debug output for libusb implementationsThomas Tsou2010-08-271-1/+1
|
* usrp1: Modifiy USB transport implementations to use new interfaceThomas Tsou2010-08-261-138/+15
| | | | Common libusb1 code is consolidated in the libusb base file.
* usrp1: Add libusb-1.0 implementations of USB interfacesThomas Tsou2010-08-131-0/+854