#pragma once #include #include typedef struct { uint16_t offset; char* ident; } HeaderGlobalSym; typedef struct { uint16_t id; char* ident; } HeaderExternSym; typedef struct { uint16_t id; uint16_t offset; } HeaderExternRef; typedef struct { uint16_t header_size; uint16_t global_syms_size; HeaderGlobalSym* global_syms; uint16_t extern_syms_size; HeaderExternSym* extern_syms; uint16_t extern_refs_size; HeaderExternRef* extern_refs; uint16_t program_size; } Header; void header_destroy(Header* header); int header_read_from(Header* header, FILE* fp, const char* filename); void header_print(const Header* header);