19b0c1abeSSascha Wildner /* $FreeBSD: head/lib/libusb/libusb_global_linux.h 253339 2013-07-14 10:22:00Z hselasky $ */ 29b0c1abeSSascha Wildner /*- 39b0c1abeSSascha Wildner * Copyright (c) 2013 Hans Petter Selasky. All rights reserved. 49b0c1abeSSascha Wildner * 59b0c1abeSSascha Wildner * Redistribution and use in source and binary forms, with or without 69b0c1abeSSascha Wildner * modification, are permitted provided that the following conditions 79b0c1abeSSascha Wildner * are met: 89b0c1abeSSascha Wildner * 1. Redistributions of source code must retain the above copyright 99b0c1abeSSascha Wildner * notice, this list of conditions and the following disclaimer. 109b0c1abeSSascha Wildner * 2. Redistributions in binary form must reproduce the above copyright 119b0c1abeSSascha Wildner * notice, this list of conditions and the following disclaimer in the 129b0c1abeSSascha Wildner * documentation and/or other materials provided with the distribution. 139b0c1abeSSascha Wildner * 149b0c1abeSSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 159b0c1abeSSascha Wildner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 169b0c1abeSSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 179b0c1abeSSascha Wildner * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 189b0c1abeSSascha Wildner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 199b0c1abeSSascha Wildner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 209b0c1abeSSascha Wildner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 219b0c1abeSSascha Wildner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 229b0c1abeSSascha Wildner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 239b0c1abeSSascha Wildner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 249b0c1abeSSascha Wildner * SUCH DAMAGE. 259b0c1abeSSascha Wildner */ 269b0c1abeSSascha Wildner 279b0c1abeSSascha Wildner #ifndef _LIBUSB_GLOBAL_LINUX_H_ 289b0c1abeSSascha Wildner #define _LIBUSB_GLOBAL_LINUX_H_ 299b0c1abeSSascha Wildner 309b0c1abeSSascha Wildner #define _XOPEN_SOURCE 319b0c1abeSSascha Wildner #define _BSD_SOURCE 329b0c1abeSSascha Wildner #ifdef __linux__ 339b0c1abeSSascha Wildner #define _POSIX_SOURCE 349b0c1abeSSascha Wildner #endif 359b0c1abeSSascha Wildner #define _POSIX_C_SOURCE 200809 369b0c1abeSSascha Wildner 379b0c1abeSSascha Wildner #include <ctype.h> 389b0c1abeSSascha Wildner #include <errno.h> 399b0c1abeSSascha Wildner #include <stdio.h> 409b0c1abeSSascha Wildner #include <stdlib.h> 419b0c1abeSSascha Wildner #include <stdint.h> 429b0c1abeSSascha Wildner #include <time.h> 439b0c1abeSSascha Wildner #include <unistd.h> 449b0c1abeSSascha Wildner #ifdef __linux__ 459b0c1abeSSascha Wildner #include <alloca.h> 469b0c1abeSSascha Wildner #endif 479b0c1abeSSascha Wildner #include <string.h> 489b0c1abeSSascha Wildner #include <fcntl.h> 499b0c1abeSSascha Wildner #include <limits.h> 509b0c1abeSSascha Wildner #include <setjmp.h> 519b0c1abeSSascha Wildner #include <pthread.h> 529b0c1abeSSascha Wildner #include <sys/queue.h> 539b0c1abeSSascha Wildner #include <sys/ioctl.h> 549b0c1abeSSascha Wildner #include <sys/poll.h> 559b0c1abeSSascha Wildner #include <sys/time.h> 569b0c1abeSSascha Wildner #include <bus/u4b/usb_endian.h> 57*dbda1d93SSascha Wildner #include <bus/u4b/usb_dragonfly.h> 589b0c1abeSSascha Wildner 599b0c1abeSSascha Wildner #include <compat/linux/linux_ioctl.h> 609b0c1abeSSascha Wildner 619b0c1abeSSascha Wildner #define IOUSB(a) FBSD_L##a 629b0c1abeSSascha Wildner 639b0c1abeSSascha Wildner #ifndef __aligned 649b0c1abeSSascha Wildner #define __aligned(x) __attribute__((__aligned__(x))) 659b0c1abeSSascha Wildner #endif 669b0c1abeSSascha Wildner 679b0c1abeSSascha Wildner #ifndef __packed 689b0c1abeSSascha Wildner #define __packed __attribute__((__packed__)) 699b0c1abeSSascha Wildner #endif 709b0c1abeSSascha Wildner 719b0c1abeSSascha Wildner #ifndef strlcpy 729b0c1abeSSascha Wildner #define strlcpy(d,s,len) do { \ 739b0c1abeSSascha Wildner strncpy(d,s,len); \ 749b0c1abeSSascha Wildner ((char *)d)[(len) - 1] = 0; \ 759b0c1abeSSascha Wildner } while (0) 769b0c1abeSSascha Wildner #endif 779b0c1abeSSascha Wildner 789b0c1abeSSascha Wildner #endif /* _LIBUSB_GLOBAL_LINUX_H_ */ 79