ACPI AML decompiler w/ CFG recovery and structured pseudocode
1#ifndef TOBI_OP_H
2#define TOBI_OP_H
3
4#include <stdint.h>
5
6typedef enum tobi_op_kind {
7 TOBI_OP_SIMPLE,
8 TOBI_OP_PKG,
9 TOBI_OP_NAMED,
10 TOBI_OP_EXPR,
11 TOBI_OP_CONTROL,
12 TOBI_OP_EXT
13} tobi_op_kind;
14
15typedef struct tobi_op {
16 uint16_t code;
17 const char *name;
18 tobi_op_kind kind;
19 int has_pkg_len;
20} tobi_op;
21
22typedef struct tobi_op_desc {
23 uint16_t code;
24 const char *operands;
25} tobi_op_desc;
26
27typedef struct tobi_op_expr {
28 uint16_t code;
29 const char *ir_name;
30 unsigned arg_count;
31 unsigned target_count;
32 unsigned name_count;
33} tobi_op_expr;
34
35const tobi_op *tobi_op_find(uint8_t op);
36
37const tobi_op *tobi_op_find_ext(uint8_t ext);
38
39const tobi_op *tobi_op_find_code(uint16_t code);
40
41const char *tobi_op_operands(uint16_t code);
42
43const tobi_op_expr *tobi_op_expr_find(uint16_t code);
44
45const tobi_op_expr *tobi_op_expr_find_name(const char *name);
46
47#endif