2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 2013 Hans Petter Selasky. All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 #ifndef _LIBUSB_GLOBAL_LINUX_H_
29 #define _LIBUSB_GLOBAL_LINUX_H_
36 #define _POSIX_C_SOURCE 200809
54 #include <sys/queue.h>
55 #include <sys/ioctl.h>
58 #include <dev/usb/usb_endian.h>
59 #include <dev/usb/usb_freebsd.h>
61 #include <compat/linux/linux_ioctl.h>
63 #define IOUSB(a) FBSD_L##a
66 #define __aligned(x) __attribute__((__aligned__(x)))
70 #define __packed __attribute__((__packed__))
74 #define strlcpy(d,s,len) do { \
76 ((char *)d)[(len) - 1] = 0; \
80 #ifndef TAILQ_FOREACH_SAFE
81 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
82 for ((var) = TAILQ_FIRST((head)); \
83 (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
87 #endif /* _LIBUSB_GLOBAL_LINUX_H_ */