This patch series aims to let programs running under QEMU Linux user mode emulation implement user-space USB drivers via the USBFS ioctl()s. First I check for the necessary header files, then I define some types, and last I implement the submit, discard, and reap functions, which involve USB request buffers which live beyond a single ioctl() call.
Each patch in this 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. Not tested on 64-bit hosts. 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 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 | 171 +++++++++++++++++++++++++++++++++++++++++++++ linux-user/syscall_defs.h | 30 ++++++++ linux-user/syscall_types.h | 68 ++++++++++++++++++ 5 files changed, 326 insertions(+), 1 deletion(-) -- 2.11.0