35 lines
699 B
C
35 lines
699 B
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdio.h>
|
|
|
|
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);
|