X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_shadow_paging.c;h=54347e351b5b3cc48a391c701115288a7a2818ce;hb=1c46db5ec8d086d76f7120a638199564947694d3;hp=e9a8cffcda2a30cfccb0887a747ff03fefb56a06;hpb=4f7c3b759e3889870c5b5e7d09b3ffcc168e5632;p=palacios.git diff --git a/palacios/src/palacios/vmm_shadow_paging.c b/palacios/src/palacios/vmm_shadow_paging.c index e9a8cff..54347e3 100644 --- a/palacios/src/palacios/vmm_shadow_paging.c +++ b/palacios/src/palacios/vmm_shadow_paging.c @@ -1,5 +1,22 @@ -/* Northwestern University */ -/* (c) 2008, Jack Lange */ +/* + * This file is part of the Palacios Virtual Machine Monitor developed + * by the V3VEE Project with funding from the United States National + * Science Foundation and the Department of Energy. + * + * The V3VEE Project is a joint project between Northwestern University + * and the University of New Mexico. You can find out more at + * http://www.v3vee.org + * + * Copyright (c) 2008, Jack Lange + * Copyright (c) 2008, The V3VEE Project + * All rights reserved. + * + * Author: Jack Lange + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "V3VEE_LICENSE". + */ + #include @@ -184,7 +201,7 @@ int v3_replace_shdw_page32(struct guest_info * info, addr_t location, pte32_t * pde32_t * shadow_pde = (pde32_t *)&(shadow_pd[PDE32_INDEX(location)]); if (shadow_pde->large_page == 0) { - pte32_t * shadow_pt = (pte32_t *)PDE32_T_ADDR((*shadow_pde)); + pte32_t * shadow_pt = (pte32_t *)(addr_t)PDE32_T_ADDR((*shadow_pde)); pte32_t * shadow_pte = (pte32_t *)&(shadow_pt[PTE32_INDEX(location)]); //if (shadow_pte->present == 1) { @@ -419,7 +436,7 @@ static int handle_shadow_pagefault32(struct guest_info * info, addr_t fault_addr guest_pde->accessed = 1; - shadow_pde->pt_base_addr = PD32_BASE_ADDR(shadow_pt); + shadow_pde->pt_base_addr = PD32_BASE_ADDR((addr_t)shadow_pt); if (guest_pde->large_page == 0) { shadow_pde->writable = guest_pde->writable; @@ -433,7 +450,7 @@ static int handle_shadow_pagefault32(struct guest_info * info, addr_t fault_addr // // PTE fault // - pte32_t * shadow_pt = (pte32_t *)PDE32_T_ADDR((*shadow_pde)); + pte32_t * shadow_pt = (pte32_t *)(addr_t)PDE32_T_ADDR((*shadow_pde)); if (guest_pde->large_page == 0) { pte32_t * guest_pt = NULL; @@ -657,7 +674,7 @@ int handle_shadow_invlpg(struct guest_info * info) { if (info->cpu_mode == PROTECTED) { - char instr[15]; + uchar_t instr[15]; int ret; int index = 0; @@ -714,7 +731,7 @@ int handle_shadow_invlpg(struct guest_info * info) { } else { if (shadow_pde->present == 1) { - pte32_t * shadow_pt = (pte32_t *)PDE32_T_ADDR((*shadow_pde)); + pte32_t * shadow_pt = (pte32_t *)(addr_t)PDE32_T_ADDR((*shadow_pde)); pte32_t * shadow_pte = (pte32_t *)&shadow_pt[PTE32_INDEX(first_operand)]; #ifdef DEBUG_SHADOW_PAGING