17d36db35SAvi Kivity #ifndef VM_H 27d36db35SAvi Kivity #define VM_H 37d36db35SAvi Kivity 47d36db35SAvi Kivity #include "processor.h" 53e394a58SAlexander Gordeev #include "asm/page.h" 655601383SAlexander Gordeev #include "asm/io.h" 77d36db35SAvi Kivity 87d36db35SAvi Kivity void setup_vm(); 97d36db35SAvi Kivity 107d36db35SAvi Kivity void *vmalloc(unsigned long size); 117d36db35SAvi Kivity void vfree(void *mem); 127d36db35SAvi Kivity void *vmap(unsigned long long phys, unsigned long size); 13a4b87a16SGleb Natapov void *alloc_vpage(void); 14524ae896SAvi Kivity void *alloc_vpages(ulong nr); 15334cd2bfSGleb Natapov uint64_t virt_to_phys_cr3(void *mem); 167d36db35SAvi Kivity 1704262816SPaolo Bonzini unsigned long *get_pte(unsigned long *cr3, void *virt); 1804262816SPaolo Bonzini unsigned long *install_pte(unsigned long *cr3, 197d36db35SAvi Kivity int pte_level, 207d36db35SAvi Kivity void *virt, 217d36db35SAvi Kivity unsigned long pte, 227d36db35SAvi Kivity unsigned long *pt_page); 237d36db35SAvi Kivity 247d36db35SAvi Kivity void *alloc_page(); 25*8e32da1bSPeter Feiner void *alloc_pages(unsigned long order); 261597d09dSAndrey Smetanin void free_page(void *page); 277d36db35SAvi Kivity 2804262816SPaolo Bonzini unsigned long *install_large_page(unsigned long *cr3,unsigned long phys, 297d36db35SAvi Kivity void *virt); 3004262816SPaolo Bonzini unsigned long *install_page(unsigned long *cr3, unsigned long phys, void *virt); 317d36db35SAvi Kivity 327d36db35SAvi Kivity #endif 33