X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_sym_swap.h;h=6bb3788f6ff5c7f2e9eb0fa600c7562d28750f49;hp=cb0b41d85141415b0f227e1f96b977e984e0cc37;hb=6fe9fe338ec19b212b43bb2c25322dce3cdbb490;hpb=c4a5d877f7cbd0419439af4adf600dde225e9564 diff --git a/palacios/include/palacios/vmm_sym_swap.h b/palacios/include/palacios/vmm_sym_swap.h index cb0b41d..6bb3788 100644 --- a/palacios/include/palacios/vmm_sym_swap.h +++ b/palacios/include/palacios/vmm_sym_swap.h @@ -25,6 +25,7 @@ #include #include +#include struct v3_swap_ops { @@ -43,24 +44,31 @@ struct v3_swap_dev { struct v3_sym_swap_state { struct v3_swap_dev devs[256]; + + // shadow pointers + struct hashtable * shdw_ptr_ht; }; + static inline int is_swapped_pte32(pte32_t * pte) { return ((pte->present == 0) && (*(uint32_t *)pte != 0)); } - int v3_init_sym_swap(struct guest_info * info); -addr_t v3_get_swapped_pg_addr(struct guest_info * info, pte32_t * pte); - int v3_register_swap_disk(struct guest_info * info, int dev_index, struct v3_swap_ops * ops, void * private_data); -int v3_swap_out_notify(struct guest_info * info, int pg_index, int dev_index); +int v3_swap_in_notify(struct guest_info * info, int pg_index, int dev_index); + + +addr_t v3_get_swapped_pg_addr(struct guest_info * info, pte32_t * shadow_pte, pte32_t * guest_pte); + +int v3_swap_flush(struct guest_info * info); + #endif #endif