ia64/xen-unstable

changeset 3227:e1ae39488963

bitkeeper revision 1.1159.183.38 (41ad91afnYP0-Tcqh7TNle__gGTTPw)

Merge scramble.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-2.0-testing.bk
into scramble.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-unstable.bk
author kaf24@scramble.cl.cam.ac.uk
date Wed Dec 01 09:41:03 2004 +0000 (2004-12-01)
parents cac49ad6b476 d2817f9531ad
children d3dae9b7f306
files linux-2.6.9-xen-sparse/arch/xen/i386/mm/ioremap.c linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/pgalloc.h linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/pgtable.h xen/include/public/xen.h
line diff
     1.1 --- a/linux-2.6.9-xen-sparse/arch/xen/i386/mm/ioremap.c	Tue Nov 30 18:22:57 2004 +0000
     1.2 +++ b/linux-2.6.9-xen-sparse/arch/xen/i386/mm/ioremap.c	Wed Dec 01 09:41:03 2004 +0000
     1.3 @@ -11,6 +11,7 @@
     1.4  #include <linux/vmalloc.h>
     1.5  #include <linux/init.h>
     1.6  #include <linux/slab.h>
     1.7 +#include <linux/module.h>
     1.8  #include <asm/io.h>
     1.9  #include <asm/fixmap.h>
    1.10  #include <asm/cacheflush.h>
    1.11 @@ -432,3 +433,5 @@ int direct_remap_area_pages(
    1.12  
    1.13  	return 0;
    1.14  }
    1.15 +
    1.16 +EXPORT_SYMBOL(direct_remap_area_pages);
     2.1 --- a/linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/pgalloc.h	Tue Nov 30 18:22:57 2004 +0000
     2.2 +++ b/linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/pgalloc.h	Wed Dec 01 09:41:03 2004 +0000
     2.3 @@ -53,15 +53,4 @@ extern void pte_free(struct page *pte);
     2.4  
     2.5  #define check_pgt_cache()	do { } while (0)
     2.6  
     2.7 -int direct_remap_area_pages(struct mm_struct *mm,
     2.8 -                            unsigned long address, 
     2.9 -                            unsigned long machine_addr,
    2.10 -                            unsigned long size, 
    2.11 -                            pgprot_t prot,
    2.12 -                            domid_t  domid);
    2.13 -int __direct_remap_area_pages(struct mm_struct *mm,
    2.14 -			      unsigned long address, 
    2.15 -			      unsigned long size, 
    2.16 -			      mmu_update_t *v);
    2.17 -
    2.18  #endif /* _I386_PGALLOC_H */
     3.1 --- a/linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/pgtable.h	Tue Nov 30 18:22:57 2004 +0000
     3.2 +++ b/linux-2.6.9-xen-sparse/include/asm-xen/asm-i386/pgtable.h	Wed Dec 01 09:41:03 2004 +0000
     3.3 @@ -460,14 +460,14 @@ void make_page_writable(void *va);
     3.4  void make_pages_readonly(void *va, unsigned int nr);
     3.5  void make_pages_writable(void *va, unsigned int nr);
     3.6  
     3.7 -static inline unsigned long arbitrary_virt_to_machine(void *va)
     3.8 -{
     3.9 -	pgd_t *pgd = pgd_offset_k((unsigned long)va);
    3.10 -	pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
    3.11 -	pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
    3.12 -	unsigned long pa = (*(unsigned long *)pte) & PAGE_MASK;
    3.13 -	return pa | ((unsigned long)va & (PAGE_SIZE-1));
    3.14 -}
    3.15 +#define arbitrary_virt_to_machine(__va)					\
    3.16 +({									\
    3.17 +	pgd_t *__pgd = pgd_offset_k((unsigned long)(__va));		\
    3.18 +	pmd_t *__pmd = pmd_offset(__pgd, (unsigned long)(__va));	\
    3.19 +	pte_t *__pte = pte_offset_kernel(__pmd, (unsigned long)(__va));	\
    3.20 +	unsigned long __pa = (*(unsigned long *)__pte) & PAGE_MASK;	\
    3.21 +	__pa | ((unsigned long)(__va) & (PAGE_SIZE-1));			\
    3.22 +})
    3.23  
    3.24  #endif /* !__ASSEMBLY__ */
    3.25  
    3.26 @@ -475,6 +475,17 @@ static inline unsigned long arbitrary_vi
    3.27  #define kern_addr_valid(addr)	(1)
    3.28  #endif /* !CONFIG_DISCONTIGMEM */
    3.29  
    3.30 +int direct_remap_area_pages(struct mm_struct *mm,
    3.31 +                            unsigned long address, 
    3.32 +                            unsigned long machine_addr,
    3.33 +                            unsigned long size, 
    3.34 +                            pgprot_t prot,
    3.35 +                            domid_t  domid);
    3.36 +int __direct_remap_area_pages(struct mm_struct *mm,
    3.37 +			      unsigned long address, 
    3.38 +			      unsigned long size, 
    3.39 +			      mmu_update_t *v);
    3.40 +
    3.41  #define io_remap_page_range(vma,from,phys,size,prot)                     \
    3.42          direct_remap_area_pages(vma->vm_mm,from,phys,size,prot,DOMID_IO)
    3.43  
     4.1 --- a/xen/include/public/xen.h	Tue Nov 30 18:22:57 2004 +0000
     4.2 +++ b/xen/include/public/xen.h	Wed Dec 01 09:41:03 2004 +0000
     4.3 @@ -9,8 +9,10 @@
     4.4  #ifndef __XEN_PUBLIC_XEN_H__
     4.5  #define __XEN_PUBLIC_XEN_H__
     4.6  
     4.7 +#ifndef PACKED
     4.8  /* GCC-specific way to pack structure definitions (no implicit padding). */
     4.9  #define PACKED __attribute__ ((packed))
    4.10 +#endif
    4.11  
    4.12  #if defined(__i386__)
    4.13  #include "arch-x86_32.h"