aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport/libusb1_zero_copy.cpp
Commit message (Collapse)AuthorAgeFilesLines
* BUG #183: Addressed comments from code review.Michael West2013-11-191-14/+15
|
* BUG #183: Fixed typoMoritz Fischer2013-11-111-1/+1
| | | | Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* BUG #183: B200 High CPU Usage: Created a single thread to handle libusb ↵Michael West2013-11-081-53/+45
| | | | events and expanded packet size to 16k
* usb: squashed thread related changesJosh Blum2013-07-191-125/+194
|
* usb: useful error messages on failed submitJosh Blum2013-07-161-2/+13
|
* usb: check for and use libusb_handle_events_timeout_completedJosh Blum2013-03-111-2/+8
|
* usb: use int for completed to match libusb example codeJosh Blum2013-03-111-8/+9
|
* usb: added recv buffer flushing to libusb zero copyJosh Blum2012-08-041-1/+18
|
* uhd: squashed transport workJosh Blum2012-04-231-26/+21
|
* dsp rework: work on usb wrapper for smaller packets, large lutsJosh Blum2012-02-021-7/+10
|
* usb: added interface args to usb abstractionsJosh Blum2011-09-191-7/+11
|
* usb: reimplement ~libusb_zero_copy_impl to avoid segfaults and indefinite ↵Josh Blum2011-09-021-13/+13
| | | | timeouts
* usb: removed handler thread, do work in get buffer callsJosh Blum2011-09-021-85/+75
|
* uhd: added tasks to simplify thread spawning use casesJosh Blum2011-07-131-21/+13
|
* uhd: replaced boolean for thread loop w/ ↵Josh Blum2011-06-161-4/+1
| | | | boost::this_thread::interruption_requested
* b100: added b100 host (squashed)Josh Blum2011-06-141-11/+22
|
* uhd: replace managed buffer shared pointer w/ intrusive pointer to reduce ↵Josh Blum2011-05-141-10/+2
| | | | overhead
* uhd: replaced many conditional prints with UHD_LOG usageJosh Blum2011-05-041-2/+2
|
* 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