vc3/link/header.h
2025-04-17 13:27:20 +02:00

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);