Applied libusb-1.0 patch set from Thomas Tsou <ttsou@vt.edu>:
authorJohnathan Corgan <jcorgan@corganenterprises.com>
Tue, 18 Aug 2009 03:46:30 +0000 (23:46 -0400)
committerttsou <ttsou@vt.edu>
Tue, 15 Sep 2009 22:06:27 +0000 (18:06 -0400)
commitb5aa407ec2b1bdebc1c950a9428789fe50327776
treeecbc04220951ee75640cdcc17048d81525f54d0c
parent895f2e04a9d962cfe56d416691600b5c619ea180
Applied libusb-1.0 patch set from Thomas Tsou <ttsou@vt.edu>:

This patch set updates the usrp to support libusb-1.0. Asynchronous I/O
through libusb is added with fusb_libusb1.*, which is heavily based on
fusb_linux.*. In short, URB's and ioctl calls are replaced with
libusb_transfer structs and native calls. Transfer reaping is handled by
libusb and associated callbacks. I get 32Mb/s on all of my machines using
test_usrp_standard_rx or tx. Due to the API rewrite in 1.0 from 0.12, there
are alot of changes, many are simply name changes.

Known Issues:

Transmit and receive both work, but not at same time
(e.g. usrp_benchmark_usb.py). libusb does not create any internal threads,
so for a single session fusb_libusb1 works in the same manner as
fusb_linux with the callback called at controlled times. With multiple
libusb sessions the callback may occur at any time and threading issues
come into play causing behavior to become undefined. The use of separate
libusb_contexts _might_ solve this issue; I have not had the time to look
into it.
17 files changed:
config/usrp_fusb_tech.m4
config/usrp_libusb.m4
usrp/host/apps/test_usrp_standard_rx.cc
usrp/host/apps/test_usrp_standard_tx.cc
usrp/host/apps/usrp_cal_dc_offset.cc
usrp/host/apps/usrper.cc
usrp/host/include/usrp/usrp_basic.h
usrp/host/include/usrp/usrp_prims.h
usrp/host/lib/Makefile.am
usrp/host/lib/fusb.cc
usrp/host/lib/fusb.h
usrp/host/lib/fusb_libusb1.cc [new file with mode: 0644]
usrp/host/lib/fusb_libusb1.h [new file with mode: 0644]
usrp/host/lib/fusb_sysconfig_libusb1.cc [new file with mode: 0644]
usrp/host/lib/usrp_basic.cc
usrp/host/lib/usrp_prims.cc
usrp/host/swig/usrp_prims.i