xref: /kvm-unit-tests/lib/x86/vm.h (revision 55601383cca6221889c5641e4bf6cfdbb855b213)
1 #ifndef VM_H
2 #define VM_H
3 
4 #include "processor.h"
5 #include "asm/page.h"
6 #include "asm/io.h"
7 
8 void setup_vm();
9 
10 void *vmalloc(unsigned long size);
11 void vfree(void *mem);
12 void *vmap(unsigned long long phys, unsigned long size);
13 void *alloc_vpage(void);
14 void *alloc_vpages(ulong nr);
15 uint64_t virt_to_phys_cr3(void *mem);
16 
17 unsigned long *get_pte(unsigned long *cr3, void *virt);
18 unsigned long *install_pte(unsigned long *cr3,
19                            int pte_level,
20                            void *virt,
21                            unsigned long pte,
22                            unsigned long *pt_page);
23 
24 void *alloc_page();
25 void free_page(void *page);
26 
27 unsigned long *install_large_page(unsigned long *cr3,unsigned long phys,
28                                   void *virt);
29 unsigned long *install_page(unsigned long *cr3, unsigned long phys, void *virt);
30 
31 #endif
32