]> cvs.zerfleddert.de Git - usb-driver/blobdiff - usb-driver.c
fix some 64bit issues, probably...
[usb-driver] / usb-driver.c
index d38da3e4dfdc2bf8a5a4321beec0e7cff41b14c5..f5df8455653ed1ec77b2a21f3aa3ec0baaeddcf2 100644 (file)
 #include <signal.h>
 #include <pthread.h>
 #include <errno.h>
+#include <inttypes.h>
 #include "usb-driver.h"
 
 static int (*ioctl_func) (int, int, void *) = NULL;
-static int windrvrfd = 0;
-FILE *modulesfp;
+static int windrvrfd = -1;
+FILE *modulesfp = NULL;
 static int modules_read = 0;
 static struct usb_bus *busses = NULL;
 static struct usb_device *usbdevice;
 static usb_dev_handle *usb_devhandle = NULL;
-static unsigned long card_type;
+static uint32_t card_type;
 static int ints_enabled = 0;
 static pthread_mutex_t int_wait = PTHREAD_MUTEX_INITIALIZER;
 
@@ -660,7 +661,7 @@ int ioctl(int fd, int request, ...) {
        argp = va_arg (args, void *);
        va_end (args);
 
-       if (windrvrfd && (fd == windrvrfd))
+       if (fd == windrvrfd)
                ret = do_wdioctl(fd, request, argp);
        else
                ret = (*ioctl_func) (fd, request, argp);
@@ -710,9 +711,9 @@ int close(int fd) {
        if (!func)
                func = (int (*) (int)) dlsym(RTLD_NEXT, "close");
        
-       if (fd == windrvrfd) {
+       if (fd == windrvrfd && windrvrfd >= 0) {
                DPRINTF("close windrvrfd\n");
-               windrvrfd = 0;
+               windrvrfd = -1;
        }
 
        return (*func) (fd);
Impressum, Datenschutz