summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/drm/include/linux/compiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pci/drm/include/linux/compiler.h')
-rw-r--r--sys/dev/pci/drm/include/linux/compiler.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/include/linux/compiler.h b/sys/dev/pci/drm/include/linux/compiler.h
index c2f09e25afe..6e7c02ddb19 100644
--- a/sys/dev/pci/drm/include/linux/compiler.h
+++ b/sys/dev/pci/drm/include/linux/compiler.h
@@ -4,11 +4,14 @@
#define _LINUX_COMPILER_H
#include <linux/kconfig.h>
+#include <sys/atomic.h> /* for READ_ONCE() WRITE_ONCE() */
#define unlikely(x) __builtin_expect(!!(x), 0)
#define likely(x) __builtin_expect(!!(x), 1)
#define __force
+#define __acquires(x)
+#define __releases(x)
#define __always_unused __unused
#define __maybe_unused
#define __read_mostly
@@ -19,6 +22,7 @@
#define __deprecated
#define __always_inline inline
#define noinline __attribute__((noinline))
+#define fallthrough do {} while (0)
#ifndef __user
#define __user
@@ -30,4 +34,20 @@
#define uninitialized_var(x) x
+/* The Linux code doesn't meet our usual standards! */
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wenum-conversion"
+#pragma clang diagnostic ignored "-Winitializer-overrides"
+#pragma clang diagnostic ignored "-Wtautological-compare"
+#pragma clang diagnostic ignored "-Wunneeded-internal-declaration"
+#pragma clang diagnostic ignored "-Wunused-const-variable"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers"
+#pragma clang diagnostic ignored "-Wunused-function"
+#pragma clang diagnostic ignored "-Wunused-variable"
+#pragma clang diagnostic ignored "-Wparentheses-equality"
+#pragma clang diagnostic ignored "-Wmissing-braces"
+#else
+#pragma GCC diagnostic ignored "-Wformat-zero-length"
+#endif
+
#endif