1 #ifndef __VMM_SHADOW_PAGING_H
2 #define __VMM_SHADOW_PAGING_H
5 #include <geekos/vmm_paging.h>
7 #include <geekos/vmm_util.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 reg_ex_t guest_cr3; // points to guest's current page table
17 // Should thi sbe here
20 // these two reflect the top-level page directory
21 // the shadow page table
22 paging_mode_t shadow_mode;
35 #include <geekos/vm_guest.h>
38 int init_shadow_page_state(struct shadow_page_state * state);
40 // This function will cause the shadow page table to be deleted
41 // and rewritten to reflect the guest page table and the shadow map
42 int wholesale_update_shadow_page_state(struct guest_info * guest_info);