X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver/blobdiff_plain/be59993b74cc9ed78400da8e26523f6b3662051b..bbc3baea9be197558fd77397ce34f22faea76ea1:/usb-driver.c diff --git a/usb-driver.c b/usb-driver.c index 5d1528e..6320b9f 100644 --- a/usb-driver.c +++ b/usb-driver.c @@ -39,6 +39,8 @@ #include #include #include +#include +#include #include "usb-driver.h" #include "config.h" @@ -828,8 +830,12 @@ int close(int fd) { if (usbinterface >= 0) usb_release_interface(usb_devhandle, usbinterface); - if (usb_devhandle) + if (usb_devhandle) { +#ifndef NO_USB_RESET + usb_reset(usb_devhandle); +#endif usb_close(usb_devhandle); + } usb_devhandle = NULL; usbinterface = -1; @@ -937,3 +943,21 @@ int access(const char *pathname, int mode) { return (*func)(pathname, mode); } } + +#if __WORDSIZE == 32 +int uname (struct utsname *__name) { + static int (*func) (struct utsname*); + int ret; + + if (!func) + func = (int (*) (struct utsname*)) dlsym(RTLD_NEXT, "uname"); + + ret = (*func)(__name); + + if (ret == 0 && (!strcmp(__name->machine, "x86_64"))) { + strcpy(__name->machine, "i686"); + } + + return ret; +} +#endif