aboutsummaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/cpu.h57
-rw-r--r--inc/kvm.h9
-rw-r--r--inc/linux.h6
-rw-r--r--inc/load.h8
-rw-r--r--inc/mem.h13
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