xref: /dflybsd-src/lib/libusb/libusb_global_linux.h (revision dbda1d93eade83d49f3bb0a2bde465cc199b8c27)
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