1 #ifndef __VMM_SHADOW_PAGING_H
2 #define __VMM_SHADOW_PAGING_H
7 #include <palacios/vmm_util.h>
8 #include <palacios/vmm_paging.h>
10 struct shadow_page_state {
12 // these two reflect the top-level page directory
13 // of the guest page table
14 paging_mode_t guest_mode;
15 ullong_t guest_cr3; // points to guest's current page table
17 // Should this be here??
20 // these two reflect the top-level page directory
21 // of the shadow page table
22 paging_mode_t shadow_mode;
36 int init_shadow_page_state(struct guest_info * info);
38 addr_t create_new_shadow_pt32();
40 int handle_shadow_pagefault(struct guest_info * info, addr_t fault_addr, pf_error_t error_code);
41 int handle_shadow_invlpg(struct guest_info * info);
46 int v3_replace_shdw_page(struct guest_info * info, addr_t location, void * new_page, void* old_page);
47 int v3_replace_shdw_page32(struct guest_info * info, addr_t location, pte32_t * new_page, pte32_t * old_page);