xref: /kvm-unit-tests/lib/x86/vm.h (revision 8e32da1b82b2cff6e484920588530168dbaf2b64)
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 *alloc_pages(unsigned long order);
26 void free_page(void *page);
27 
28 unsigned long *install_large_page(unsigned long *cr3,unsigned long phys,
29                                   void *virt);
30 unsigned long *install_page(unsigned long *cr3, unsigned long phys, void *virt);
31 
32 #endif
33