Files

12 lines
809 B
C

#ifndef GLYPH_VM_H
#define GLYPH_VM_H
#include "../common/glyph_types.h"
#include "../common/glyph_decode.h"
#include "../substrate/substrate_engine.h"
typedef struct { uint32_t pc; uint32_t *code; uint32_t code_len; Handle handles[MAX_HANDLES]; uint32_t handle_count; MemoryRegion regions[MAX_REGIONS]; uint32_t region_count; Message mailbox[MAX_MAILBOX]; uint32_t mailbox_head; uint32_t mailbox_tail; ExtSlot *ext_ops; uint32_t ext_ops_count; int32_t regs[256]; uint32_t call_stack[MAX_CALL_DEPTH]; uint32_t call_depth; int32_t cmp_flag; uint8_t current_mode; bool trace_enabled; bool running; uint64_t tick; } VM;
void vm_init(VM *vm, uint32_t *code, uint32_t code_len, ExtSlot *ext_ops, uint32_t ext_ops_count);
void vm_run(VM *vm);
int vm_step(VM *vm);
int vm_load_gobj(VM *vm, const char *path);
#endif