xref: /openbsd-src/sys/dev/pci/drm/include/linux/compiler.h (revision 9ad46d05155334137c89a158e15adf2eb8d25223)
17f4dd379Sjsg /* Public domain. */
27f4dd379Sjsg 
37f4dd379Sjsg #ifndef _LINUX_COMPILER_H
47f4dd379Sjsg #define _LINUX_COMPILER_H
57f4dd379Sjsg 
67f4dd379Sjsg #include <linux/kconfig.h>
7c349dbc7Sjsg #include <sys/atomic.h>		/* for READ_ONCE() WRITE_ONCE() */
87f4dd379Sjsg 
97f4dd379Sjsg #define unlikely(x)	__builtin_expect(!!(x), 0)
107f4dd379Sjsg #define likely(x)	__builtin_expect(!!(x), 1)
117f4dd379Sjsg 
127f4dd379Sjsg #define __force
13c349dbc7Sjsg #define __acquires(x)
14c349dbc7Sjsg #define __releases(x)
157f4dd379Sjsg #define __read_mostly
167f4dd379Sjsg #define __iomem
177f4dd379Sjsg #define __must_check
187f4dd379Sjsg #define __init
197f4dd379Sjsg #define __exit
207f4dd379Sjsg #define __deprecated
21114e2335Sjsg #define __always_unused	__attribute__((__unused__))
22114e2335Sjsg #define __maybe_unused	__attribute__((__unused__))
23397008dfSjsg #define __always_inline	inline __attribute__((__always_inline__))
24114e2335Sjsg #define noinline	__attribute__((__noinline__))
25e47b56beSjsg #define noinline_for_stack	 __attribute__((__noinline__))
26c349dbc7Sjsg #define fallthrough	do {} while (0)
27*9ad46d05Sjsg #define __counted_by(x)
287f4dd379Sjsg 
29f005ef32Sjsg #define __PASTE(x,y) __CONCAT(x,y)
30f005ef32Sjsg 
317f4dd379Sjsg #ifndef __user
327f4dd379Sjsg #define __user
337f4dd379Sjsg #endif
347f4dd379Sjsg 
35733a71f2Sjsg #define barrier()	__asm volatile("" : : : "memory")
367f4dd379Sjsg 
37ad8b1aafSjsg #define __printf(x, y)	__attribute__((__format__(__kprintf__,x,y)))
387f4dd379Sjsg 
39c349dbc7Sjsg /* The Linux code doesn't meet our usual standards! */
40c349dbc7Sjsg #ifdef __clang__
41c349dbc7Sjsg #pragma clang diagnostic ignored "-Winitializer-overrides"
42c349dbc7Sjsg #pragma clang diagnostic ignored "-Wunused-function"
43c349dbc7Sjsg #pragma clang diagnostic ignored "-Wunused-variable"
445ca02815Sjsg #pragma clang diagnostic ignored "-Wgnu-variable-sized-type-not-at-end"
45c349dbc7Sjsg #else
46c349dbc7Sjsg #pragma GCC diagnostic ignored "-Wformat-zero-length"
47c349dbc7Sjsg #endif
48c349dbc7Sjsg 
497f4dd379Sjsg #endif
50