This patch series enables programs running under QEMU Linux user mode emulation to implement user-space USB drivers via the USBFS ioctl()s. Support is limited to control, bulk, and possibly interrupt transfers.
The series compiles for i386, ppc64, ppc64le, mips, mipsel, xtensa, and xtensaeb with an armv7l host and an x86_64 host. The i386-linux-user target is tested working with a USB scanner driver on an armv7l host. Additionally, a patched copy of strace was used to verify the conversion for reaping. Additionally, a MIPS binary of lsusb was run on armv7l host to check reaping and other functionality across endianness. Changes from v1: use check_include in configure move struct definitions to later patch where possible improve pointer cast to int compatibility remove unimplemented types for usb streams Changes from v2: calculate ioctl arg size at runtime organize urb metadata with struct hold lock_user memory from submit until reap supersedes patch series 'linux-user: usbfs improvements' Cortland Tölva (3): linux-user: Check for Linux USBFS in configure linux-user: Define ordinary usbfs ioctls. linux-user: Implement special usbfs ioctls. configure | 12 ++- linux-user/ioctls.h | 46 ++++++++++++ linux-user/syscall.c | 180 +++++++++++++++++++++++++++++++++++++++++++++ linux-user/syscall_defs.h | 28 +++++++ linux-user/syscall_types.h | 68 +++++++++++++++++ 5 files changed, 333 insertions(+), 1 deletion(-) -- 2.11.0