WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] Rename some of the pagetable access macros:

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Rename some of the pagetable access macros:
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Wed, 01 Jun 2005 09:06:47 +0000
Delivery-date: Wed, 01 Jun 2005 10:02:17 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1624, 2005/06/01 10:06:47+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx

        Rename some of the pagetable access macros:
         l?e_create_* -> l?e_from_*
         *_phys       -> *_paddr
         *_value      -> *_intpte
        
        l?e_add_flags, l?e_remove_flags, l?e_has_changed now take ptes by value
        rather than by reference.
        
        The pagetable hypercalls are fixed to use l?e_from_intpte() rather than
        abusing l?e_from_paddr(), which munged the NX bit incorrectly on x86/64.
        Thanks to Scott Parish for spotting this one.
        
        Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>



 arch/x86/audit.c                     |    4 
 arch/x86/dom0_ops.c                  |    2 
 arch/x86/domain.c                    |   16 +--
 arch/x86/domain_build.c              |   42 +++++-----
 arch/x86/mm.c                        |   89 +++++++++++----------
 arch/x86/shadow.c                    |  142 +++++++++++++++++------------------
 arch/x86/traps.c                     |    2 
 arch/x86/vmx.c                       |   10 +-
 arch/x86/vmx_io.c                    |    6 -
 arch/x86/vmx_vmcs.c                  |    4 
 arch/x86/x86_32/domain_page.c        |    4 
 arch/x86/x86_32/mm.c                 |   14 +--
 arch/x86/x86_32/traps.c              |    6 -
 arch/x86/x86_64/mm.c                 |   37 ++++-----
 common/grant_table.c                 |    4 
 include/asm-x86/page.h               |  101 +++++++++++++-----------
 include/asm-x86/shadow.h             |   69 ++++++++---------
 include/asm-x86/x86_32/page-2level.h |    4 
 include/asm-x86/x86_32/page-3level.h |    4 
 include/asm-x86/x86_64/page.h        |    6 -
 20 files changed, 287 insertions(+), 279 deletions(-)


diff -Nru a/xen/arch/x86/audit.c b/xen/arch/x86/audit.c
--- a/xen/arch/x86/audit.c      2005-06-01 06:03:03 -04:00
+++ b/xen/arch/x86/audit.c      2005-06-01 06:03:03 -04:00
@@ -408,9 +408,9 @@
 
         for_each_exec_domain(d, ed)
         {
-            if ( pagetable_get_phys(ed->arch.guest_table) )
+            if ( pagetable_get_paddr(ed->arch.guest_table) )
                 adjust(&frame_table[pagetable_get_pfn(ed->arch.guest_table)], 
1);
-            if ( pagetable_get_phys(ed->arch.shadow_table) )
+            if ( pagetable_get_paddr(ed->arch.shadow_table) )
                 adjust(&frame_table[pagetable_get_pfn(ed->arch.shadow_table)], 
0);
             if ( ed->arch.monitor_shadow_ref )
                 adjust(&frame_table[ed->arch.monitor_shadow_ref], 0);
diff -Nru a/xen/arch/x86/dom0_ops.c b/xen/arch/x86/dom0_ops.c
--- a/xen/arch/x86/dom0_ops.c   2005-06-01 06:03:03 -04:00
+++ b/xen/arch/x86/dom0_ops.c   2005-06-01 06:03:03 -04:00
@@ -405,7 +405,7 @@
         c->flags |= VGCF_VMX_GUEST;
 #endif
 
-    c->pt_base = pagetable_get_phys(ed->arch.guest_table);
+    c->pt_base = pagetable_get_paddr(ed->arch.guest_table);
 
     c->vm_assist = ed->domain->vm_assist;
 }
diff -Nru a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
--- a/xen/arch/x86/domain.c     2005-06-01 06:03:03 -04:00
+++ b/xen/arch/x86/domain.c     2005-06-01 06:03:03 -04:00
@@ -250,7 +250,7 @@
                            PAGE_SHIFT] = INVALID_M2P_ENTRY;
     ed->arch.perdomain_ptes = d->arch.mm_perdomain_pt;
     ed->arch.perdomain_ptes[FIRST_RESERVED_GDT_PAGE] =
-        l1e_create_page(virt_to_page(gdt_table), PAGE_HYPERVISOR);
+        l1e_from_page(virt_to_page(gdt_table), PAGE_HYPERVISOR);
 
     ed->arch.guest_vtable  = __linear_l2_table;
     ed->arch.shadow_vtable = __shadow_linear_l2_table;
@@ -262,12 +262,12 @@
     d->arch.mm_perdomain_l2 = (l2_pgentry_t *)alloc_xenheap_page();
     memset(d->arch.mm_perdomain_l2, 0, PAGE_SIZE);
     d->arch.mm_perdomain_l2[l2_table_offset(PERDOMAIN_VIRT_START)] = 
-        l2e_create_page(virt_to_page(d->arch.mm_perdomain_pt),
+        l2e_from_page(virt_to_page(d->arch.mm_perdomain_pt),
                         __PAGE_HYPERVISOR);
     d->arch.mm_perdomain_l3 = (l3_pgentry_t *)alloc_xenheap_page();
     memset(d->arch.mm_perdomain_l3, 0, PAGE_SIZE);
     d->arch.mm_perdomain_l3[l3_table_offset(PERDOMAIN_VIRT_START)] = 
-        l3e_create_page(virt_to_page(d->arch.mm_perdomain_l2),
+        l3e_from_page(virt_to_page(d->arch.mm_perdomain_l2),
                             __PAGE_HYPERVISOR);
 #endif
     
@@ -288,7 +288,7 @@
     ed->arch.perdomain_ptes =
         d->arch.mm_perdomain_pt + (ed->vcpu_id << PDPT_VCPU_SHIFT);
     ed->arch.perdomain_ptes[FIRST_RESERVED_GDT_PAGE] =
-        l1e_create_page(virt_to_page(gdt_table), PAGE_HYPERVISOR);
+        l1e_from_page(virt_to_page(gdt_table), PAGE_HYPERVISOR);
 }
 
 #ifdef CONFIG_VMX
@@ -460,7 +460,7 @@
         //      trust the VMX domain builder.  Xen should validate this
         //      page table, and/or build the table itself, or ???
         //
-        if ( !pagetable_get_phys(d->arch.phys_table) )
+        if ( !pagetable_get_paddr(d->arch.phys_table) )
             d->arch.phys_table = ed->arch.guest_table;
 
         if ( (error = vmx_final_setup_guest(ed, c)) )
@@ -660,7 +660,7 @@
     struct exec_domain    *ed = current;
 
     if ( unlikely(copy_from_user(&stu, (void *)regs->rsp, sizeof(stu))) ||
-         unlikely(pagetable_get_phys(ed->arch.guest_table_user) == 0) )
+         unlikely(pagetable_get_paddr(ed->arch.guest_table_user) == 0) )
         return -EFAULT;
 
     toggle_guest_mode(ed);
@@ -978,7 +978,7 @@
     /* Drop the in-use references to page-table bases. */
     for_each_exec_domain ( d, ed )
     {
-        if ( pagetable_get_phys(ed->arch.guest_table) != 0 )
+        if ( pagetable_get_paddr(ed->arch.guest_table) != 0 )
         {
             if ( shadow_mode_refcounts(d) )
                 
put_page(&frame_table[pagetable_get_pfn(ed->arch.guest_table)]);
@@ -988,7 +988,7 @@
             ed->arch.guest_table = mk_pagetable(0);
         }
 
-        if ( pagetable_get_phys(ed->arch.guest_table_user) != 0 )
+        if ( pagetable_get_paddr(ed->arch.guest_table_user) != 0 )
         {
             if ( shadow_mode_refcounts(d) )
                 
put_page(&frame_table[pagetable_get_pfn(ed->arch.guest_table_user)]);
diff -Nru a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c
--- a/xen/arch/x86/domain_build.c       2005-06-01 06:03:03 -04:00
+++ b/xen/arch/x86/domain_build.c       2005-06-01 06:03:03 -04:00
@@ -263,15 +263,15 @@
     l2start = l2tab = (l2_pgentry_t *)mpt_alloc; mpt_alloc += 4*PAGE_SIZE;
     memcpy(l2tab, idle_pg_table_l2, 4*PAGE_SIZE);
     for (i = 0; i < 4; i++) {
-        l3tab[i] = l3e_create_phys((u32)l2tab + i*PAGE_SIZE, L3_PROT);
+        l3tab[i] = l3e_from_paddr((u32)l2tab + i*PAGE_SIZE, L3_PROT);
         l2tab[(LINEAR_PT_VIRT_START >> L2_PAGETABLE_SHIFT)+i] =
-            l2e_create_phys((u32)l2tab + i*PAGE_SIZE, __PAGE_HYPERVISOR);
+            l2e_from_paddr((u32)l2tab + i*PAGE_SIZE, __PAGE_HYPERVISOR);
     }
     unsigned long v;
     for (v = PERDOMAIN_VIRT_START; v < PERDOMAIN_VIRT_END;
          v += (1 << L2_PAGETABLE_SHIFT)) {
         l2tab[v >> L2_PAGETABLE_SHIFT] =
-            l2e_create_phys(__pa(d->arch.mm_perdomain_pt) + 
(v-PERDOMAIN_VIRT_START),
+            l2e_from_paddr(__pa(d->arch.mm_perdomain_pt) + 
(v-PERDOMAIN_VIRT_START),
                             __PAGE_HYPERVISOR);
     }
     ed->arch.guest_table = mk_pagetable((unsigned long)l3start);
@@ -279,9 +279,9 @@
     l2start = l2tab = (l2_pgentry_t *)mpt_alloc; mpt_alloc += PAGE_SIZE;
     memcpy(l2tab, &idle_pg_table[0], PAGE_SIZE);
     l2tab[LINEAR_PT_VIRT_START >> L2_PAGETABLE_SHIFT] =
-        l2e_create_phys((unsigned long)l2start, __PAGE_HYPERVISOR);
+        l2e_from_paddr((unsigned long)l2start, __PAGE_HYPERVISOR);
     l2tab[PERDOMAIN_VIRT_START >> L2_PAGETABLE_SHIFT] =
-        l2e_create_phys(__pa(d->arch.mm_perdomain_pt), __PAGE_HYPERVISOR);
+        l2e_from_paddr(__pa(d->arch.mm_perdomain_pt), __PAGE_HYPERVISOR);
     ed->arch.guest_table = mk_pagetable((unsigned long)l2start);
 #endif
 
@@ -293,13 +293,13 @@
         {
             l1start = l1tab = (l1_pgentry_t *)mpt_alloc; 
             mpt_alloc += PAGE_SIZE;
-            *l2tab = l2e_create_phys((unsigned long)l1start, L2_PROT);
+            *l2tab = l2e_from_paddr((unsigned long)l1start, L2_PROT);
             l2tab++;
             clear_page(l1tab);
             if ( count == 0 )
                 l1tab += l1_table_offset(dsi.v_start);
         }
-        *l1tab = l1e_create_pfn(mfn, L1_PROT);
+        *l1tab = l1e_from_pfn(mfn, L1_PROT);
         l1tab++;
         
         page = &frame_table[mfn];
@@ -311,13 +311,13 @@
 
     /* Pages that are part of page tables must be read only. */
     l2tab = l2start + l2_linear_offset(vpt_start);
-    l1start = l1tab = (l1_pgentry_t *)(u32)l2e_get_phys(*l2tab);
+    l1start = l1tab = (l1_pgentry_t *)(u32)l2e_get_paddr(*l2tab);
     l1tab += l1_table_offset(vpt_start);
     for ( count = 0; count < nr_pt_pages; count++ ) 
     {
         page = &frame_table[l1e_get_pfn(*l1tab)];
         if ( !opt_dom0_shadow )
-            l1e_remove_flags(l1tab, _PAGE_RW);
+            l1e_remove_flags(*l1tab, _PAGE_RW);
         else
             if ( !get_page_type(page, PGT_writable_page) )
                 BUG();
@@ -384,7 +384,7 @@
         }
 #endif
         if ( !((unsigned long)++l1tab & (PAGE_SIZE - 1)) )
-            l1start = l1tab = (l1_pgentry_t *)(u32)l2e_get_phys(*++l2tab);
+            l1start = l1tab = (l1_pgentry_t *)(u32)l2e_get_paddr(*++l2tab);
     }
 
 #elif defined(__x86_64__)
@@ -402,9 +402,9 @@
     l4start = l4tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
     memcpy(l4tab, &idle_pg_table[0], PAGE_SIZE);
     l4tab[l4_table_offset(LINEAR_PT_VIRT_START)] =
-        l4e_create_phys(__pa(l4start), __PAGE_HYPERVISOR);
+        l4e_from_paddr(__pa(l4start), __PAGE_HYPERVISOR);
     l4tab[l4_table_offset(PERDOMAIN_VIRT_START)] =
-        l4e_create_phys(__pa(d->arch.mm_perdomain_l3), __PAGE_HYPERVISOR);
+        l4e_from_paddr(__pa(d->arch.mm_perdomain_l3), __PAGE_HYPERVISOR);
     ed->arch.guest_table = mk_pagetable(__pa(l4start));
 
     l4tab += l4_table_offset(dsi.v_start);
@@ -433,16 +433,16 @@
                     clear_page(l3tab);
                     if ( count == 0 )
                         l3tab += l3_table_offset(dsi.v_start);
-                    *l4tab = l4e_create_phys(__pa(l3start), L4_PROT);
+                    *l4tab = l4e_from_paddr(__pa(l3start), L4_PROT);
                     l4tab++;
                 }
-                *l3tab = l3e_create_phys(__pa(l2start), L3_PROT);
+                *l3tab = l3e_from_paddr(__pa(l2start), L3_PROT);
                 l3tab++;
             }
-            *l2tab = l2e_create_phys(__pa(l1start), L2_PROT);
+            *l2tab = l2e_from_paddr(__pa(l1start), L2_PROT);
             l2tab++;
         }
-        *l1tab = l1e_create_pfn(mfn, L1_PROT);
+        *l1tab = l1e_from_pfn(mfn, L1_PROT);
         l1tab++;
 
         page = &frame_table[mfn];
@@ -463,7 +463,7 @@
     l1tab += l1_table_offset(vpt_start);
     for ( count = 0; count < nr_pt_pages; count++ ) 
     {
-        l1e_remove_flags(l1tab, _PAGE_RW);
+        l1e_remove_flags(*l1tab, _PAGE_RW);
         page = &frame_table[l1e_get_pfn(*l1tab)];
 
         /* Read-only mapping + PGC_allocated + page-table page. */
@@ -633,10 +633,10 @@
             // map this domain's p2m table into current page table,
             // so that we can easily access it.
             //
-            ASSERT( root_get_value(idle_pg_table[1]) == 0 );
-            ASSERT( pagetable_get_phys(d->arch.phys_table) );
-            idle_pg_table[1] = root_create_phys(
-                pagetable_get_phys(d->arch.phys_table), __PAGE_HYPERVISOR);
+            ASSERT( root_get_intpte(idle_pg_table[1]) == 0 );
+            ASSERT( pagetable_get_paddr(d->arch.phys_table) );
+            idle_pg_table[1] = root_from_paddr(
+                pagetable_get_paddr(d->arch.phys_table), __PAGE_HYPERVISOR);
             translate_l2pgtable(d, (l1_pgentry_t *)(1u << L2_PAGETABLE_SHIFT),
                                 pagetable_get_pfn(ed->arch.guest_table));
             idle_pg_table[1] = root_empty();
diff -Nru a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c 2005-06-01 06:03:03 -04:00
+++ b/xen/arch/x86/mm.c 2005-06-01 06:03:03 -04:00
@@ -234,7 +234,7 @@
 
 void write_ptbase(struct exec_domain *ed)
 {
-    write_cr3(pagetable_get_phys(ed->arch.monitor_table));
+    write_cr3(pagetable_get_paddr(ed->arch.monitor_table));
 }
 
 void invalidate_shadow_ldt(struct exec_domain *d)
@@ -333,7 +333,7 @@
     if ( unlikely(!res) )
         return 0;
 
-    nl1e = l1e_create_pfn(gmfn, l1e_get_flags(l1e) | _PAGE_RW);
+    nl1e = l1e_from_pfn(gmfn, l1e_get_flags(l1e) | _PAGE_RW);
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Rename some of the pagetable access macros:, BitKeeper Bot <=