X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=include%2Fasm-mips%2Fpage.h;h=d1bf8240e73b258ff411918683ae7045cdf5493c;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=47ca67f25e54e98193038f10b7869c16db7741b3;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index 47ca67f25..d1bf8240e 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h @@ -15,6 +15,8 @@ #include +#endif + /* * PAGE_SHIFT determines the page size */ @@ -31,8 +33,10 @@ #define PAGE_SHIFT 16 #endif #define PAGE_SIZE (1UL << PAGE_SHIFT) -#define PAGE_MASK (~(PAGE_SIZE-1)) +#define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) + +#ifdef __KERNEL__ #ifndef __ASSEMBLY__ extern void clear_page(void * page); @@ -72,15 +76,22 @@ static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, * These are used to make use of C type-checking.. */ #ifdef CONFIG_64BIT_PHYS_ADDR -typedef struct { unsigned long long pte; } pte_t; + #ifdef CONFIG_CPU_MIPS32 + typedef struct { unsigned long pte_low, pte_high; } pte_t; + #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) + #else + typedef struct { unsigned long long pte; } pte_t; + #define pte_val(x) ((x).pte) + #endif #else typedef struct { unsigned long pte; } pte_t; +#define pte_val(x) ((x).pte) #endif + typedef struct { unsigned long pmd; } pmd_t; typedef struct { unsigned long pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; -#define pte_val(x) ((x).pte) #define pmd_val(x) ((x).pmd) #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot)