xref: /openbsd-src/sys/dev/pci/drm/include/linux/compiler.h (revision c020cf82e0cc147236f01a8dca7052034cf9d30d)
1 /* Public domain. */
2 
3 #ifndef _LINUX_COMPILER_H
4 #define _LINUX_COMPILER_H
5 
6 #include <linux/kconfig.h>
7 #include <sys/atomic.h>		/* for READ_ONCE() WRITE_ONCE() */
8 
9 #define unlikely(x)	__builtin_expect(!!(x), 0)
10 #define likely(x)	__builtin_expect(!!(x), 1)
11 
12 #define __force
13 #define __acquires(x)
14 #define __releases(x)
15 #define __always_unused __unused
16 #define __maybe_unused
17 #define __read_mostly
18 #define __iomem
19 #define __must_check
20 #define __init
21 #define __exit
22 #define __deprecated
23 #define __always_inline inline
24 #define noinline __attribute__((noinline))
25 #define fallthrough	do {} while (0)
26 
27 #ifndef __user
28 #define __user
29 #endif
30 
31 #define barrier()	__asm __volatile("" : : : "memory")
32 
33 #define __printf(x, y)
34 
35 #define uninitialized_var(x) x
36 
37 /* The Linux code doesn't meet our usual standards! */
38 #ifdef __clang__
39 #pragma clang diagnostic ignored "-Wenum-conversion"
40 #pragma clang diagnostic ignored "-Winitializer-overrides"
41 #pragma clang diagnostic ignored "-Wtautological-compare"
42 #pragma clang diagnostic ignored "-Wunneeded-internal-declaration"
43 #pragma clang diagnostic ignored "-Wunused-const-variable"
44 #pragma clang diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers"
45 #pragma clang diagnostic ignored "-Wunused-function"
46 #pragma clang diagnostic ignored "-Wunused-variable"
47 #pragma clang diagnostic ignored "-Wparentheses-equality"
48 #pragma clang diagnostic ignored "-Wmissing-braces"
49 #else
50 #pragma GCC diagnostic ignored "-Wformat-zero-length"
51 #endif
52 
53 #endif
54