Date: Wed, 24 Jul 2013 20:09:33 +0000 From: Damjan Jovanovic <damjan.jov@gmail.com> To: freebsd-usb@freebsd.org Subject: COMPAT_32BIT libusb ABI problem Message-ID: <CAJm2B-mfidBre0tCwJg=6OirBtdgvxCTrGGVX-3kqQ8vYf1kFw@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi The ioctl: #define USB_FS_INIT _IOW ('U', 195, struct usb_fs_init) when used by a COMPAT_32BIT libusb on amd64, fails (causing libusb_open() to fail) due to: freebsd32_ioctl(0x6,0x800c55c3,0xffffc710,0x0,0x0,0x0) ERR#25 'Inappropriate ioctl for device' but when hacked a bit: freebsd32_ioctl(0x6,0x801055c3,0xffffc710,0x0,0x0,0x0) = 0 (0x0) because sizeof(struct usb_fs_init) is 12 bytes on i386, and 16 bytes on amd64. But the failure of even libusb_open() - a fundamental libusb function - must mean that the COMPAT_32BIT libusb never worked. Can we please take this opportunity to kill it and do a real 32 bit compatibility layer in the kernel that will work from 32 bit chroots and statically linked 32 bit binaries? I'll help. Regards Damjan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJm2B-mfidBre0tCwJg=6OirBtdgvxCTrGGVX-3kqQ8vYf1kFw>