xref: /aosp_15_r20/external/mesa3d/src/intel/tools/error2hangdump_lib.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2024 Intel Corporation
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #pragma once
7 
8 #include <stdarg.h>
9 #include <stdint.h>
10 #include <stdio.h>
11 #include <stdlib.h>
12 
13 static inline void
_fail(const char * prefix,const char * format,...)14 _fail(const char *prefix, const char *format, ...)
15 {
16    va_list args;
17 
18    va_start(args, format);
19    if (prefix)
20       fprintf(stderr, "%s: ", prefix);
21    vfprintf(stderr, format, args);
22    va_end(args);
23 
24    abort();
25 }
26 
27 #define _fail_if(cond, prefix, ...) do { \
28    if (cond) \
29       _fail(prefix, __VA_ARGS__); \
30 } while (0)
31 
32 #define fail_if(cond, ...) _fail_if(cond, NULL, __VA_ARGS__)
33 
34 #define fail(...) fail_if(true, __VA_ARGS__)
35 
36 void write_header(FILE *f);
37 void write_buffer(FILE *f, uint64_t offset, const void *data, uint64_t size, const char *name);
38 void write_hw_image_buffer(FILE *f, const void *data, uint64_t size);
39 void write_exec(FILE *f, uint64_t offset);
40