]> wimlib.net Git - wimlib/blobdiff - include/wimlib/compiler.h
Rename add_image_params => capture_params
[wimlib] / include / wimlib / compiler.h
index d32d092b964dfda938aa82cd4343edb085e9e103..221df6881e88676a9ba40a82693210d9216c2ccc 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * compiler.h
+ *
+ * The author dedicates this file to the public domain.
+ * You can do whatever you want with this file.
+ */
+
 #ifndef _WIMLIB_COMPILER_H
 #define _WIMLIB_COMPILER_H
 
@@ -8,6 +15,7 @@
 #              define WIMLIBAPI __attribute__((visibility("default")))
 #      endif
 #      define _always_inline_attribute inline __attribute__((always_inline))
+#      define _no_inline_attribute __attribute__((noinline))
 #      define _packed_attribute __attribute__((packed))
 #      define _format_attribute(type, format_str, args_start) \
                        /*__attribute__((format(type, format_str, args_start))) */
 #      define likely(x) __builtin_expect(!!(x), 1)
 #      define unlikely(x) __builtin_expect(!!(x), 0)
 #      define inline inline __attribute__((always_inline))
+#      define prefetch(x) __builtin_prefetch(x)
+#      define is_constant(x) __builtin_constant_p(x)
 #else
 #      define WIMLIBAPI
 #      define _always_inline_attribute inline
+#      define _no_inline_attribute
 #      define _format_attribute(type, format_str, args_start)
 #      define _cold_attribute
 #      define _packed_attribute
 #      define _aligned_attribute(size)
 #      define likely(x) (x)
 #      define unlikely(x) (x)
+#      define prefetch(x)
+#      define is_constant(x) (0)
 #endif /* __GNUC__ */
 
+#ifdef __CHECKER__
+#  define _bitwise_attr        __attribute__((bitwise))
+#  define _force_attr  __attribute__((force))
+#else
+#  define _bitwise_attr
+#  define _force_attr
+#endif
+
 #endif /* _WIMLIB_COMPILER_H */