1
0

fix handling of XILINX_USB_DEV environment variable

This commit is contained in:
Michael Gernoth 2008-04-12 17:40:32 +02:00
parent 9bfaca620d
commit 8949e420b6

34
xpcu.c
View File

@ -300,15 +300,13 @@ static void xpcu_init(void) {
usb_find_devices(); usb_find_devices();
busses = usb_get_busses(); busses = usb_get_busses();
pthread_mutex_init(&dummy_interrupt, NULL);
} }
int xpcu_find(struct event *e) { int xpcu_find(struct event *e) {
struct xpcu_event_s *xpcu_event = NULL; struct xpcu_event_s *xpcu_event = NULL;
struct xpcu_s *xpcu = NULL; struct xpcu_s *xpcu = NULL;
char* devpos; char* usbdev;
struct usb_bus *bus; struct usb_bus *bus;
int busnum = -1, devnum = -1; int busnum = -1, devnum = -1;
int i; int i;
@ -317,20 +315,15 @@ int xpcu_find(struct event *e) {
xpcu_init(); xpcu_init();
xpcu_event = malloc(sizeof(struct xpcu_event_s)); usbdev = getenv("XILINX_USB_DEV");
if (!xpcu_event) if (usbdev != NULL) {
return -ENOMEM;
bzero(xpcu_event, sizeof(struct xpcu_event_s));
xpcu_event->xpcu = NULL;
xpcu_event->count = 0;
xpcu_event->interrupt_count = 0;
pthread_mutex_init(&xpcu_event->interrupt, NULL);
devpos = getenv("XILINX_USB_DEV");
if (devpos != NULL) {
int j; int j;
char *devstr = NULL, *remainder; char *devstr = NULL, *remainder;
char *devpos;
devpos = strdup(usbdev);
if (!devpos)
return -ENOMEM;
DPRINTF("XILINX_USB_DEV=%s\n", devpos); DPRINTF("XILINX_USB_DEV=%s\n", devpos);
@ -356,8 +349,19 @@ int xpcu_find(struct event *e) {
} }
} }
} }
free(devpos);
} }
xpcu_event = malloc(sizeof(struct xpcu_event_s));
if (!xpcu_event)
return -ENOMEM;
bzero(xpcu_event, sizeof(struct xpcu_event_s));
xpcu_event->xpcu = NULL;
xpcu_event->count = 0;
xpcu_event->interrupt_count = 0;
pthread_mutex_init(&xpcu_event->interrupt, NULL);
for (i = 0; i < e->dwNumMatchTables; i++) { for (i = 0; i < e->dwNumMatchTables; i++) {
DPRINTF("match: dev: %04x:%04x, class: %x, subclass: %x, intclass: %x, intsubclass: %x, intproto: %x\n", DPRINTF("match: dev: %04x:%04x, class: %x, subclass: %x, intclass: %x, intsubclass: %x, intproto: %x\n",