ACPI AML decompiler w/ CFG recovery and structured pseudocode
1#ifndef TOBI_DG_H
2#define TOBI_DG_H
3
4#include <stddef.h>
5
6typedef enum tobi_diag_level {
7 TOBI_DIAG_WARN,
8 TOBI_DIAG_ERROR
9} tobi_diag_level;
10
11typedef struct tobi_diag {
12 tobi_diag_level level;
13 size_t off;
14 char *source;
15 size_t input_index;
16 int has_source;
17 char *msg;
18} tobi_diag;
19
20typedef struct tobi_diag_list {
21 tobi_diag *items;
22 size_t len;
23 size_t cap;
24} tobi_diag_list;
25
26void tobi_diag_init(tobi_diag_list *dl);
27
28void tobi_diag_free(tobi_diag_list *dl);
29
30void tobi_diag_add(tobi_diag_list *dl, tobi_diag_level level, size_t off, const char *fmt, ...);
31
32void tobi_diag_add_source(tobi_diag_list *dl, tobi_diag_level level, size_t off,
33 const char *source, size_t input_index, int has_source,
34 const char *fmt, ...);
35
36void tobi_diag_set_source(tobi_diag_list *dl, const char *source, size_t input_index);
37
38int tobi_diag_has_error(const tobi_diag_list *dl);
39
40const char *tobi_diag_level_name(tobi_diag_level level);
41
42#endif