page_kernel = pgprot_val(SRMMU_PAGE_KERNEL);
pg_iobits = SRMMU_VALID | SRMMU_WRITE | SRMMU_REF;
- BTFIXUPSET_SIMM13(pte_file_max_bits, SRMMU_PTE_FILE_MAX_BITS);
-
/* Functions */
#ifndef CONFIG_SMP
BTFIXUPSET_CALL(___xchg32, ___xchg32_sun4md, BTFIXUPCALL_SWAPG1G2);
static unsigned long sun4c_pte_to_pgoff(pte_t pte)
{
- return pte_val(pte) & ((1UL << SUN4C_PTE_FILE_MAX_BITS) - 1);
+ return pte_val(pte) & ((1UL << PTE_FILE_MAX_BITS) - 1);
}
pg_iobits = _SUN4C_PAGE_PRESENT | _SUN4C_READABLE | _SUN4C_WRITEABLE |
_SUN4C_PAGE_IO | _SUN4C_PAGE_NOCACHE;
- BTFIXUPSET_SIMM13(pte_file_max_bits, SUN4C_PTE_FILE_MAX_BITS);
-
/* Functions */
BTFIXUPSET_CALL(___xchg32, ___xchg32_sun4c, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(do_check_pgt_cache, sun4c_check_pgt_cache, BTFIXUPCALL_NORM);
return pte_val(pte) & BTFIXUP_HALF(pte_filei);
}
+/*
+ */
BTFIXUPDEF_HALF(pte_wrprotecti)
BTFIXUPDEF_HALF(pte_mkcleani)
BTFIXUPDEF_HALF(pte_mkoldi)
/* file-offset-in-pte helpers */
BTFIXUPDEF_CALL(unsigned long, pte_to_pgoff, pte_t pte);
BTFIXUPDEF_CALL(pte_t, pgoff_to_pte, unsigned long pgoff);
-BTFIXUPDEF_SIMM13(pte_file_max_bits);
#define pte_to_pgoff(pte) BTFIXUP_CALL(pte_to_pgoff)(pte)
#define pgoff_to_pte(off) BTFIXUP_CALL(pgoff_to_pte)(off)
-#define PTE_FILE_MAX_BITS BTFIXUP_SIMM13(pte_file_max_bits)
+
+/*
+ * This is made a constant because mm/fremap.c required a constant.
+ * Note that layout of these bits is different between sun4c.c and srmmu.c.
+ */
+#define PTE_FILE_MAX_BITS 24
/*
*/
#define SRMMU_FILE 0x40 /* Implemented in software */
-#define SRMMU_PTE_FILE_MAX_BITS 24
-#define SRMMU_PTE_FILE_SHIFT 8
+#define SRMMU_PTE_FILE_SHIFT 8 /* == 32-PTE_FILE_MAX_BITS */
#define SRMMU_CHG_MASK (0xffffff00 | SRMMU_REF | SRMMU_DIRTY)
#define SUN4C_PAGE_KERNEL __pgprot(_SUN4C_READABLE|_SUN4C_WRITEABLE|\
_SUN4C_PAGE_DIRTY|_SUN4C_PAGE_PRIV)
-/*
- * We have a couple of free bits left, but it's probably not a big
- * deal, considering sizes of RAM and swap on sun4c.
- */
-#define SUN4C_PTE_FILE_MAX_BITS 20
-
#ifndef __ASSEMBLY__
extern __inline__ unsigned long sun4c_get_synchronous_error(void)