ia64/xen-unstable

changeset 4518:5e994310f44f

bitkeeper revision 1.1293 (425cf706gdIucn9n9UpmnZgk5ZwITQ)

Merge arcadians.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-unstable.bk
into arcadians.cl.cam.ac.uk:/local/scratch-2/vh249/xen-unstable.bk
author vh249@arcadians.cl.cam.ac.uk
date Wed Apr 13 10:40:06 2005 +0000 (2005-04-13)
parents 9cd7410879ef edd3d921e879
children d56c3246d889 4d0ec0013844
files linux-2.4.29-xen-sparse/mkbuildtree tools/libxc/xc_linux_build.c xen/arch/x86/shadow.c xen/include/public/dom0_ops.h
line diff
     1.1 --- a/linux-2.4.29-xen-sparse/mkbuildtree	Tue Apr 12 12:07:22 2005 +0000
     1.2 +++ b/linux-2.4.29-xen-sparse/mkbuildtree	Wed Apr 13 10:40:06 2005 +0000
     1.3 @@ -212,6 +212,7 @@ ln -sf ../../${LINUX_26}/include/asm-xen
     1.4  ln -sf ../../${LINUX_26}/include/asm-xen/hypervisor.h
     1.5  ln -sf ../../${LINUX_26}/include/asm-xen/xen_proc.h
     1.6  ln -sf ../../${LINUX_26}/include/asm-xen/asm-i386/synch_bitops.h
     1.7 +ln -sf ../../${LINUX_26}/include/asm-xen/asm-i386/hypercall.h
     1.8  
     1.9  mkdir -p linux-public && cd linux-public
    1.10  ln -sf ../../../${LINUX_26}/include/asm-xen/linux-public/privcmd.h
     2.1 --- a/tools/libxc/xc_linux_build.c	Tue Apr 12 12:07:22 2005 +0000
     2.2 +++ b/tools/libxc/xc_linux_build.c	Wed Apr 13 10:40:06 2005 +0000
     2.3 @@ -210,11 +210,9 @@ static int setup_guest(int xc_handle,
     2.4          }
     2.5  
     2.6          *vl1e = (page_array[count] << PAGE_SHIFT) | L1_PROT;
     2.7 -#if !(1 || defined(GROSS_HACK_TO_TEST_SHADOW_MODE_CLIENTS))
     2.8          if ( (count >= ((vpt_start-dsi.v_start)>>PAGE_SHIFT)) && 
     2.9               (count <  ((vpt_end  -dsi.v_start)>>PAGE_SHIFT)) )
    2.10              *vl1e &= ~_PAGE_RW;
    2.11 -#endif
    2.12          vl1e++;
    2.13      }
    2.14      munmap(vl1tab, PAGE_SIZE);
    2.15 @@ -245,25 +243,12 @@ static int setup_guest(int xc_handle,
    2.16      }
    2.17      munmap(physmap, PAGE_SIZE);
    2.18      
    2.19 -#if 1 || defined(GROSS_HACK_TO_TEST_SHADOW_MODE_CLIENTS)
    2.20 -    {
    2.21 -        int ret;
    2.22 -        ret = xc_shadow_control(xc_handle, dom,
    2.23 -                                DOM0_SHADOW_CONTROL_OP_ENABLE_TEST,
    2.24 -                                NULL, 0, NULL);
    2.25 -        if ( !ret )
    2.26 -            ERROR("enabling shadow test mode failed\n");
    2.27 -    }
    2.28 -#endif
    2.29 -
    2.30      /*
    2.31       * Pin down l2tab addr as page dir page - causes hypervisor to provide
    2.32       * correct protection for the page
    2.33       */ 
    2.34 -#if !(1 || defined(GROSS_HACK_TO_TEST_SHADOW_MODE_CLIENTS))
    2.35      if ( pin_table(xc_handle, MMUEXT_PIN_L2_TABLE, l2tab>>PAGE_SHIFT, dom) )
    2.36          goto error_out;
    2.37 -#endif
    2.38  
    2.39      start_info = xc_map_foreign_range(
    2.40          xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE,
     3.1 --- a/xen/arch/x86/shadow.c	Tue Apr 12 12:07:22 2005 +0000
     3.2 +++ b/xen/arch/x86/shadow.c	Wed Apr 13 10:40:06 2005 +0000
     3.3 @@ -1228,6 +1228,11 @@ int shadow_mode_control(struct domain *d
     3.4          rc = __shadow_mode_enable(d, d->arch.shadow_mode|SHM_enable|SHM_log_dirty);
     3.5          break;
     3.6  
     3.7 +    case DOM0_SHADOW_CONTROL_OP_ENABLE_TRANSLATE:
     3.8 +        free_shadow_pages(d);
     3.9 +        rc = __shadow_mode_enable(d, d->arch.shadow_mode|SHM_enable|SHM_translate);
    3.10 +        break;
    3.11 +
    3.12      default:
    3.13          rc = shadow_mode_enabled(d) ? shadow_mode_table_op(d, sc) : -EINVAL;
    3.14          break;
     4.1 --- a/xen/include/public/dom0_ops.h	Tue Apr 12 12:07:22 2005 +0000
     4.2 +++ b/xen/include/public/dom0_ops.h	Wed Apr 13 10:40:06 2005 +0000
     4.3 @@ -242,6 +242,7 @@ typedef struct {
     4.4  #define DOM0_SHADOW_CONTROL_OP_OFF         0
     4.5  #define DOM0_SHADOW_CONTROL_OP_ENABLE_TEST 1
     4.6  #define DOM0_SHADOW_CONTROL_OP_ENABLE_LOGDIRTY 2
     4.7 +#define DOM0_SHADOW_CONTROL_OP_ENABLE_TRANSLATE 3
     4.8  
     4.9  #define DOM0_SHADOW_CONTROL_OP_FLUSH       10     /* table ops */
    4.10  #define DOM0_SHADOW_CONTROL_OP_CLEAN       11