ACPI AML decompiler w/ CFG recovery and structured pseudocode
1#include "cf.h"
2#include "da.h"
3#include "dc.h"
4#include "js.h"
5#include "p.h"
6
7#include <stdint.h>
8#include <stdlib.h>
9
10int LLVMFuzzerTestOneInput(const uint8_t *data, size_t len) {
11 tobi_parse_result r;
12 (void)tobi_parse(data, len, 0, &r);
13 if (r.root) {
14 (void)tobi_cf_recover(r.root, &r.diag);
15 char *dc = tobi_dc_emit(r.root, &r.diag);
16 char *js = tobi_js_emit(&r);
17 char *da = tobi_da_emit(data, len, &r.meta);
18 free(da);
19 free(js);
20 free(dc);
21 }
22 tobi_parse_result_free(&r);
23
24 (void)tobi_parse(data, len, 1, &r);
25 tobi_parse_result_free(&r);
26 return 0;
27}