diff options
Diffstat (limited to 'inc')
-rw-r--r-- | inc/cpu.h | 57 | ||||
-rw-r--r-- | inc/kvm.h | 9 | ||||
-rw-r--r-- | inc/linux.h | 6 | ||||
-rw-r--r-- | inc/load.h | 8 | ||||
-rw-r--r-- | inc/mem.h | 13 |
5 files changed, 84 insertions, 9 deletions
diff --git a/inc/cpu.h b/inc/cpu.h new file mode 100644 index 0000000..1a9a989 --- /dev/null +++ b/inc/cpu.h @@ -0,0 +1,57 @@ +#ifndef CPU_H +#define CPU_H + +#include <stdint.h> + +#define ERR 0 +#define OK 1 + +enum registers { + RAX, + RCX, + RDX, + RBX, + RSP, + RBP, + RSI, + RDI, + R8, + R9, + R10, + R11, + R12, + R13, + R14, + R15, + REGISTERS_COUNT, + AL = RAX, + CL = RCX, + DL = RDX, + BL = RBX, + SPL = RSP, + BPL = RBP, + SIL = RSI, + DIL = RDI, + R8B = R8, + R9B = R9, + R10B = R10, + R11B = R11, + R12B = R12, + R13B = R13, + R14B = R14, + R15B = R15, + AH = AL + 4, + CH = CL + 4, + DH = DL + 4, + BH = BL + 4, + SPH = SPL + 4, + BPH = BPL + 4, + SIH = SIL + 4, + DIH = DIL + 4 +}; + +void *cpu_get_reg(uint8_t reg); +void cpu_set_reg(uint8_t reg, uint64_t val); +void cpu_exec(const char *path); + +#endif diff --git a/inc/kvm.h b/inc/kvm.h deleted file mode 100644 index 92dbe98..0000000 --- a/inc/kvm.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef KVM_H -#define KVM_H - -int kvm_init(void); -int kvm_load(long addr, long data, int size); -void kvm_exec(void); -void kvm_destroy(void); - -#endif diff --git a/inc/linux.h b/inc/linux.h new file mode 100644 index 0000000..2d45f64 --- /dev/null +++ b/inc/linux.h @@ -0,0 +1,6 @@ +#ifndef LINUX_H +#define LINUX_H + +int linux_call(void); + +#endif diff --git a/inc/load.h b/inc/load.h new file mode 100644 index 0000000..4b215cc --- /dev/null +++ b/inc/load.h @@ -0,0 +1,8 @@ +#ifndef LOAD_H +#define LOAD_H + +#include <mem.h> + +vaddr load(const char *path); + +#endif diff --git a/inc/mem.h b/inc/mem.h new file mode 100644 index 0000000..e2d7a18 --- /dev/null +++ b/inc/mem.h @@ -0,0 +1,13 @@ +#ifndef MEM_H +#define MEM_H + +#include <stdio.h> +#include <stdint.h> + +typedef uint64_t vaddr; + +void *mem_alloc(size_t size, vaddr virt); +void *mem_phys(vaddr virt); +void mem_free_all(void); + +#endif |