xref: /freebsd/usr.bin/sdiotool/linux_compat.h (revision 1d386b48)
1029c02a3SIlya Bakulin /*-
24d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
36e778a7eSPedro F. Giffuni  *
4029c02a3SIlya Bakulin  * Copyright (c) 2016-2017 Ilya Bakulin
5029c02a3SIlya Bakulin  * All rights reserved.
6029c02a3SIlya Bakulin  *
7029c02a3SIlya Bakulin  * Redistribution and use in source and binary forms, with or without
8029c02a3SIlya Bakulin  * modification, are permitted provided that the following conditions
9029c02a3SIlya Bakulin  * are met:
10029c02a3SIlya Bakulin  * 1. Redistributions of source code must retain the above copyright
11029c02a3SIlya Bakulin  *    notice, this list of conditions and the following disclaimer.
12029c02a3SIlya Bakulin  * 2. Redistributions in binary form must reproduce the above copyright
13029c02a3SIlya Bakulin  *    notice, this list of conditions and the following disclaimer in the
14029c02a3SIlya Bakulin  *    documentation and/or other materials provided with the distribution.
15029c02a3SIlya Bakulin  *
16029c02a3SIlya Bakulin  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17029c02a3SIlya Bakulin  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18029c02a3SIlya Bakulin  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19029c02a3SIlya Bakulin  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20029c02a3SIlya Bakulin  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21029c02a3SIlya Bakulin  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22029c02a3SIlya Bakulin  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23029c02a3SIlya Bakulin  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24029c02a3SIlya Bakulin  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25029c02a3SIlya Bakulin  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26029c02a3SIlya Bakulin  * SUCH DAMAGE.
27029c02a3SIlya Bakulin  */
28029c02a3SIlya Bakulin 
29029c02a3SIlya Bakulin #include <sys/cdefs.h>
30029c02a3SIlya Bakulin #ifndef _LINUX_COMPAT_H_
31029c02a3SIlya Bakulin #define _LINUX_COMPAT_H_
32029c02a3SIlya Bakulin 
33029c02a3SIlya Bakulin /* Linux compatibility shims */
34029c02a3SIlya Bakulin #define uint unsigned int
35029c02a3SIlya Bakulin #define u32 uint32_t
36029c02a3SIlya Bakulin #define u8 uint8_t
37029c02a3SIlya Bakulin #define u16 uint16_t
38029c02a3SIlya Bakulin #define s32 int32_t
39029c02a3SIlya Bakulin #define bool int8_t
40029c02a3SIlya Bakulin #define true 1
41029c02a3SIlya Bakulin #define false 0
42029c02a3SIlya Bakulin 
43029c02a3SIlya Bakulin #define usleep_range(a, b) usleep(a)
44029c02a3SIlya Bakulin #define ENOMEDIUM -1
45029c02a3SIlya Bakulin #define EINVAL -2
46029c02a3SIlya Bakulin 
47029c02a3SIlya Bakulin #define WARN_ON(cond) ({                                        \
48029c02a3SIlya Bakulin       bool __ret = (cond);                                      \
49029c02a3SIlya Bakulin       if (__ret) {                                              \
50029c02a3SIlya Bakulin 	      printf("WARNING %s failed at %s:%d\n",		\
51029c02a3SIlya Bakulin 		     #cond, __FILE__, __LINE__);	        \
52029c02a3SIlya Bakulin       }                                                         \
53029c02a3SIlya Bakulin       (__ret);                                                  \
54029c02a3SIlya Bakulin })
55029c02a3SIlya Bakulin 
56029c02a3SIlya Bakulin #endif
57