vk/util: Add anv_abortf(), anv_abortfv()
authorChad Versace <chad.versace@intel.com>
Tue, 9 Jun 2015 21:54:53 +0000 (14:54 -0700)
committerChad Versace <chad.versace@intel.com>
Tue, 9 Jun 2015 23:38:50 +0000 (16:38 -0700)
Convenience functions to print an error message then abort.

src/vulkan/private.h
src/vulkan/util.c

index 26296c931fd4c78a62d32a88425d75f4a1770c7a..36279fac2cbdf96e510bf104baff3f36abd6d37d 100644 (file)
@@ -98,6 +98,9 @@ void __anv_finishme(const char *file, int line, const char *format, ...)
 #define anv_finishme(format, ...) \
    __anv_finishme(__FILE__, __LINE__, format, ##__VA_ARGS__);
 
+void anv_abortf(const char *format, ...) anv_noreturn anv_printflike(1, 2);
+void anv_abortfv(const char *format, va_list va) anv_noreturn;
+
 #define stub_return(v) \
    do { \
       anv_finishme("stub %s", __func__); \
index 928f191847fee435c5ada363ae12ad18807058ad..13af882cffd69797bea1fb48dd3d1dd15da836b3 100644 (file)
@@ -43,6 +43,25 @@ __anv_finishme(const char *file, int line, const char *format, ...)
    fprintf(stderr, "%s:%d: FINISHME: %s\n", file, line, buffer);
 }
 
+void anv_noreturn anv_printflike(1, 2)
+anv_abortf(const char *format, ...)
+{
+   va_list va;
+
+   va_start(va, format);
+   anv_abortfv(format, va);
+   va_end(va);
+}
+
+void anv_noreturn
+anv_abortfv(const char *format, va_list va)
+{
+   fprintf(stderr, "vk: error: ");
+   vfprintf(stderr, format, va);
+   fprintf(stderr, "\n");
+   abort();
+}
+
 int
 anv_vector_init(struct anv_vector *vector, uint32_t element_size, uint32_t size)
 {