diff options
-rw-r--r-- | sys/dev/usb/usb.c | 10 | ||||
-rw-r--r-- | sys/dev/usb/usb_mem.c | 10 |
2 files changed, 17 insertions, 3 deletions
diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c index b7a6d0a..1b30328 100644 --- a/sys/dev/usb/usb.c +++ b/sys/dev/usb/usb.c @@ -56,7 +56,9 @@ __FBSDID("$FreeBSD$"); #include <sys/kernel.h> #include <sys/lock.h> #include <sys/malloc.h> +#if __FreeBSD_version >= 500000 #include <sys/mutex.h> +#endif #if defined(__NetBSD__) || defined(__OpenBSD__) #include <sys/device.h> #elif defined(__FreeBSD__) @@ -378,7 +380,7 @@ usb_event_thread(void *arg) { struct usb_softc *sc = arg; -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) && __FreeBSD_version >= 500000 mtx_lock(&Giant); #endif @@ -428,7 +430,7 @@ usb_task_thread(void *arg) struct usb_task *task; int s; -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) && __FreeBSD_version >= 500000 mtx_lock(&Giant); #endif @@ -547,7 +549,11 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, usb_proc_ptr p) case FIOASYNC: if (*(int *)data) +#if _FreeBSD_version >= 500000 usb_async_proc = p->td_proc; +#else + usb_async_proc = p; +#endif else usb_async_proc = 0; return (0); diff --git a/sys/dev/usb/usb_mem.c b/sys/dev/usb/usb_mem.c index ae824e1..73b309d 100644 --- a/sys/dev/usb/usb_mem.c +++ b/sys/dev/usb/usb_mem.c @@ -166,10 +166,18 @@ usb_block_allocmem(bus_dma_tag_t tag, size_t size, size_t align, if (p == NULL) return (USBD_NOMEM); +#if __FreeBSD_version >= 500000 if (bus_dma_tag_create(tag, align, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, size, sizeof(p->segs) / sizeof(p->segs[0]), size, - BUS_DMA_ALLOCNOW, NULL, NULL, &p->tag) == ENOMEM) { + BUS_DMA_ALLOCNOW, NULL, NULL, &p->tag) == ENOMEM) +#else + if (bus_dma_tag_create(tag, align, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + size, sizeof(p->segs) / sizeof(p->segs[0]), size, + BUS_DMA_ALLOCNOW, &p->tag) == ENOMEM) +#endif + { goto free; } |