User library changes to take a guest_thread instead of a vmctl.
[akaros.git] / user / vmm / include / vmm / vmm.h
1 /* Copyright (c) 2015 Google Inc.
2  * Ron Minnich <rminnich@google.com>
3  * See LICENSE for details.
4  *
5  * VMM.h */
6
7 #pragma once
8
9 #include <ros/vmm.h>
10 #include <vmm/sched.h>
11
12 char *regname(uint8_t reg);
13 int decode(struct guest_thread *vm_thread, uint64_t *gpa, uint8_t *destreg,
14            uint64_t **regp, int *store, int *size, int *advance);
15 int io(struct guest_thread *vm_thread);
16 void showstatus(FILE *f, struct guest_thread *vm_thread);
17 int msrio(struct guest_thread *vm_thread, uint32_t opcode);
18 int do_ioapic(struct guest_thread *vm_thread, uint64_t gpa,
19               int destreg, uint64_t *regp, int store);
20
21
22
23 /* Intel VM Trap Injection Fields */
24 #define VM_TRAP_VALID               (1 << 31)
25 #define VM_TRAP_ERROR_CODE          (1 << 11)
26 #define VM_TRAP_HARDWARE            (3 << 8)
27 /* End Intel VM Trap Injection Fields */