Files
thesis-lisp/core/include/binary.h
T

36 lines
698 B
C

#pragma once
#include <stdint.h>
struct bin_header {
uint32_t magic;
uint32_t version;
uint32_t global_pool_size;
uint32_t unit_table_offset;
uint32_t unit_table_size;
uint32_t ref_table_offset;
uint32_t ref_table_size;
uint32_t export_table_offset;
uint32_t export_table_size;
uint32_t func_table_offset;
uint32_t func_table_size;
};
struct bin_unit_entry {
uint32_t name_len;
// TODO move all of this into strtable
char name[0];
};
struct bin_ref_entry {
uint32_t unit_index;
uint32_t name_len;
char name[0];
};
struct bin_func_entry {
uint32_t argc;
uint32_t local_count;
uint32_t len;
uint32_t data[0];
};