summaryrefslogtreecommitdiff
path: root/emulator/hart.h
blob: 8e04d19ca4bda5afef810bedcd38e1f4d2318548 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once

#include <stdint.h>
#include <stdbool.h>

struct Hart
{
    uint32_t pc;
    uint32_t regs[32];
    
    char*    mem;
    uint32_t mem_size;
    
    bool     halted;
};
typedef struct Hart Hart;

void execute(Hart* hart, uint32_t instruction);
void execute_from(Hart* hart, uint32_t start_address);