util: don't include p_defines.h and u_pointer.h from gallium
[mesa.git] / src / util / macros.h
index 86585f609da503565a94042a00d19f17086a6aa9..fcace4e351d61527990a0d28952268b1ed50f4e1 100644 (file)
@@ -27,6 +27,7 @@
 #include <assert.h>
 
 #include "c99_compat.h"
+#include "c11_compat.h"
 
 /* Compute the size of an array */
 #ifndef ARRAY_SIZE
@@ -71,7 +72,7 @@
  * Unreachable macro. Useful for suppressing "control reaches end of non-void
  * function" warnings.
  */
-#ifdef HAVE___BUILTIN_UNREACHABLE
+#if defined(HAVE___BUILTIN_UNREACHABLE) || __has_builtin(__builtin_unreachable)
 #define unreachable(str)    \
 do {                        \
    assert(!str);            \
@@ -331,4 +332,18 @@ do {                       \
 #define BITFIELD64_RANGE(b, count) \
    (BITFIELD64_MASK((b) + (count)) & ~BITFIELD64_MASK(b))
 
+/* TODO: In future we should try to move this to u_debug.h once header
+ * dependencies are reorganised to allow this.
+ */
+enum pipe_debug_type
+{
+   PIPE_DEBUG_TYPE_OUT_OF_MEMORY = 1,
+   PIPE_DEBUG_TYPE_ERROR,
+   PIPE_DEBUG_TYPE_SHADER_INFO,
+   PIPE_DEBUG_TYPE_PERF_INFO,
+   PIPE_DEBUG_TYPE_INFO,
+   PIPE_DEBUG_TYPE_FALLBACK,
+   PIPE_DEBUG_TYPE_CONFORMANCE,
+};
+
 #endif /* UTIL_MACROS_H */