x86: move defs around to allow paravirt.h to just include page_types.h
Signed-off-by: Jeremy Fitzhardinge <jeremy@goop.org>
This commit is contained in:
		
					parent
					
						
							
								1dfc07aad5
							
						
					
				
			
			
				commit
				
					
						e42778de31
					
				
			
		
					 4 changed files with 77 additions and 79 deletions
				
			
		| 
						 | 
					@ -31,84 +31,6 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
 | 
				
			||||||
	alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
 | 
						alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
 | 
				
			||||||
#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
 | 
					#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline pgd_t native_make_pgd(pgdval_t val)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return (pgd_t) { val };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pgdval_t native_pgd_val(pgd_t pgd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return pgd.pgd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pgdval_t pgd_flags(pgd_t pgd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return native_pgd_val(pgd) & PTE_FLAGS_MASK;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#if PAGETABLE_LEVELS >= 3
 | 
					 | 
				
			||||||
#if PAGETABLE_LEVELS == 4
 | 
					 | 
				
			||||||
static inline pud_t native_make_pud(pmdval_t val)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return (pud_t) { val };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pudval_t native_pud_val(pud_t pud)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return pud.pud;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#else	/* PAGETABLE_LEVELS == 3 */
 | 
					 | 
				
			||||||
static inline pudval_t native_pud_val(pud_t pud)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return native_pgd_val(pud.pgd);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif	/* PAGETABLE_LEVELS == 4 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pudval_t pud_flags(pud_t pud)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return native_pud_val(pud) & PTE_FLAGS_MASK;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pmd_t native_make_pmd(pmdval_t val)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return (pmd_t) { val };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pmdval_t native_pmd_val(pmd_t pmd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return pmd.pmd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#else  /* PAGETABLE_LEVELS == 2 */
 | 
					 | 
				
			||||||
static inline pmdval_t native_pmd_val(pmd_t pmd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return native_pgd_val(pmd.pud.pgd);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif	/* PAGETABLE_LEVELS >= 3 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pmdval_t pmd_flags(pmd_t pmd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return native_pmd_val(pmd) & PTE_FLAGS_MASK;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pte_t native_make_pte(pteval_t val)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return (pte_t) { .pte = val };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pteval_t native_pte_val(pte_t pte)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return pte.pte;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline pteval_t pte_flags(pte_t pte)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return native_pte_val(pte) & PTE_FLAGS_MASK;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define pgprot_val(x)	((x).pgprot)
 | 
					 | 
				
			||||||
#define __pgprot(x)	((pgprot_t) { (x) } )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef CONFIG_PARAVIRT
 | 
					#ifdef CONFIG_PARAVIRT
 | 
				
			||||||
#include <asm/paravirt.h>
 | 
					#include <asm/paravirt.h>
 | 
				
			||||||
#else  /* !CONFIG_PARAVIRT */
 | 
					#else  /* !CONFIG_PARAVIRT */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,6 +43,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __ASSEMBLY__
 | 
					#ifndef __ASSEMBLY__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <linux/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_X86_PAE
 | 
					#ifdef CONFIG_X86_PAE
 | 
				
			||||||
typedef u64	pteval_t;
 | 
					typedef u64	pteval_t;
 | 
				
			||||||
typedef u64	pmdval_t;
 | 
					typedef u64	pmdval_t;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,18 +51,92 @@
 | 
				
			||||||
typedef struct { pgdval_t pgd; } pgd_t;
 | 
					typedef struct { pgdval_t pgd; } pgd_t;
 | 
				
			||||||
typedef struct { pgprotval_t pgprot; } pgprot_t;
 | 
					typedef struct { pgprotval_t pgprot; } pgprot_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pgd_t native_make_pgd(pgdval_t val)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return (pgd_t) { val };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pgdval_t native_pgd_val(pgd_t pgd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return pgd.pgd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pgdval_t pgd_flags(pgd_t pgd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return native_pgd_val(pgd) & PTE_FLAGS_MASK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if PAGETABLE_LEVELS > 3
 | 
					#if PAGETABLE_LEVELS > 3
 | 
				
			||||||
typedef struct { pudval_t pud; } pud_t;
 | 
					typedef struct { pudval_t pud; } pud_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pud_t native_make_pud(pmdval_t val)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return (pud_t) { val };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pudval_t native_pud_val(pud_t pud)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return pud.pud;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
#include <asm-generic/pgtable-nopud.h>
 | 
					#include <asm-generic/pgtable-nopud.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pudval_t native_pud_val(pud_t pud)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return native_pgd_val(pud.pgd);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if PAGETABLE_LEVELS > 2
 | 
					#if PAGETABLE_LEVELS > 2
 | 
				
			||||||
typedef struct { pmdval_t pmd; } pmd_t;
 | 
					typedef struct { pmdval_t pmd; } pmd_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pudval_t pud_flags(pud_t pud)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return native_pud_val(pud) & PTE_FLAGS_MASK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pmd_t native_make_pmd(pmdval_t val)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return (pmd_t) { val };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pmdval_t native_pmd_val(pmd_t pmd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return pmd.pmd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
#include <asm-generic/pgtable-nopmd.h>
 | 
					#include <asm-generic/pgtable-nopmd.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pmdval_t native_pmd_val(pmd_t pmd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return native_pgd_val(pmd.pud.pgd);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pmdval_t pmd_flags(pmd_t pmd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return native_pmd_val(pmd) & PTE_FLAGS_MASK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pte_t native_make_pte(pteval_t val)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return (pte_t) { .pte = val };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pteval_t native_pte_val(pte_t pte)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return pte.pte;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline pteval_t pte_flags(pte_t pte)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return native_pte_val(pte) & PTE_FLAGS_MASK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define pgprot_val(x)	((x).pgprot)
 | 
				
			||||||
 | 
					#define __pgprot(x)	((pgprot_t) { (x) } )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct page *pgtable_t;
 | 
					typedef struct page *pgtable_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern int page_is_ram(unsigned long pagenr);
 | 
					extern int page_is_ram(unsigned long pagenr);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
 * para-virtualization: those hooks are defined here. */
 | 
					 * para-virtualization: those hooks are defined here. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_PARAVIRT
 | 
					#ifdef CONFIG_PARAVIRT
 | 
				
			||||||
#include <asm/page.h>
 | 
					#include <asm/page_types.h>
 | 
				
			||||||
#include <asm/asm.h>
 | 
					#include <asm/asm.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Bitmask of what can be clobbered: usually at least eax. */
 | 
					/* Bitmask of what can be clobbered: usually at least eax. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue