agssim: catch potential OOB access in change_reg_usage
[rofl0r-agsutils.git] / Assembler.h
blob5f4a1c2a69d5ef536083573b426c56718b16239d
1 #ifndef ASSEMBLER_H
2 #define ASSEMBLER_H
4 #include "ByteArray.h"
5 #include "List.h"
6 #include <stdio.h>
7 #include <stddef.h>
8 #include "hbmap.h"
10 typedef struct AgsAssembler {
11 struct ByteArray obj_b, *obj;
12 struct ByteArray data_b, *data;
13 struct ByteArray code_b, *code;
14 List *export_list, export_list_b;
15 List *fixup_list, fixup_list_b;
16 List *string_list, string_list_b;
17 List *label_ref_list, label_ref_list_b;
18 List *function_ref_list, function_ref_list_b;
19 List *variable_list, variable_list_b;
20 List *import_list, import_list_b;
21 hbmap(char*, unsigned, 128) label_map_b;
22 hbmap(char*, unsigned, 128) *label_map;
24 FILE* in;
25 } AS;
27 void AS_open_stream(AS* a, FILE* f);
28 int AS_open(AS* a, char* fn);
29 void AS_close(AS* a);
30 int AS_assemble(AS* a, char* out);
32 #pragma RcB2 DEP "Assembler.c"
34 #endif