Move headers under the hf directory.

This helps distinguish local headers from the more official headers.

Change-Id: I535c1b44081b9d60ba63666cd1ad514aaaf2c68d
diff --git a/inc/hf/vm.h b/inc/hf/vm.h
new file mode 100644
index 0000000..ce88adc
--- /dev/null
+++ b/inc/hf/vm.h
@@ -0,0 +1,33 @@
+#ifndef _VM_H
+#define _VM_H
+
+#include "hf/cpu.h"
+#include "hf/mm.h"
+
+enum rpc_state {
+	rpc_state_idle,
+	rpc_state_pending,
+	rpc_state_inflight,
+};
+
+struct rpc {
+	enum rpc_state state;
+	int16_t recv_bytes;
+	void *recv;
+	const void *send;
+	struct vcpu *recv_waiter;
+};
+
+struct vm {
+	struct spinlock lock;
+	uint32_t vcpu_count;
+	struct vcpu vcpus[MAX_CPUS];
+	struct mm_ptable ptable;
+	struct rpc rpc;
+};
+
+bool vm_init(struct vm *vm, uint32_t id, uint32_t vcpu_count);
+void vm_start_vcpu(struct vm *vm, size_t index, ipaddr_t entry, size_t arg);
+void vm_set_current(struct vm *vm);
+
+#endif /* _VM_H */