diff options
Diffstat (limited to 'arch/mips/mips1/pagetables.c')
-rw-r--r-- | arch/mips/mips1/pagetables.c | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/arch/mips/mips1/pagetables.c b/arch/mips/mips1/pagetables.c deleted file mode 100644 index 22419d1c9..000000000 --- a/arch/mips/mips1/pagetables.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 32 bit MIPS specific page handling. - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file "COPYING" in the main directory of this archive - * for more details. - * - * Copyright (C) 1996 Ralf Baechle - */ -#include <linux/mm.h> -#include <asm/cache.h> -#include <asm/mipsconfig.h> -#include <asm/page.h> -#include <asm/pgtable.h> - -void (*pgd_init)(unsigned long page); - -/* - * Initialize new page directory with pointers to invalid ptes - */ -void mips1_pgd_init(unsigned long page) -{ - unsigned long dummy1, dummy2; - - /* - * The plain and boring version for the R3000. No cache flushing - * stuff is needed since the R3000 has physical caches. - */ - __asm__ __volatile__( - ".set\tnoreorder\n" - "1:\tsw\t%2,(%0)\n\t" - "sw\t%2,4(%0)\n\t" - "sw\t%2,8(%0)\n\t" - "sw\t%2,12(%0)\n\t" - "sw\t%2,16(%0)\n\t" - "sw\t%2,20(%0)\n\t" - "sw\t%2,24(%0)\n\t" - "sw\t%2,28(%0)\n\t" - "subu\t%1,1\n\t" - "bnez\t%1,1b\n\t" - "addiu\t%0,32\n\t" - ".set\treorder" - :"=r" (dummy1), - "=r" (dummy2) - :"r" (((unsigned long) invalid_pte_table /* - PAGE_OFFSET */ ) | - _PAGE_TABLE), - "0" (page), - "1" (PAGE_SIZE/(sizeof(pmd_t)*8))); -} - -void (*clear_page)(unsigned long page) - -/* - * To do: cache magic ... - */ -void mips1_clear_page(unsigned long page) -{ - __asm__ __volatile__( - ".set\tnoreorder\n\t" - ".set\tnoat\n\t" - "addiu\t$1,%0,%2\n" - "1:\tsw\t$0,(%0)\n\t" - "sw\t$0,4(%0)\n\t" - "sw\t$0,8(%0)\n\t" - "sw\t$0,12(%0)\n\t" - "addiu\t%0,32\n\t" - "sw\t$0,-16(%0)\n\t" - "sw\t$0,-12(%0)\n\t" - "sw\t$0,-8(%0)\n\t" - "bne\t$1,%0,1b\n\t" - "sw\t$0,-4(%0)\n\t" - ".set\tat\n\t" - ".set\treorder" - :"=r" (page) - :"0" (page), - "I" (PAGE_SIZE) - :"$1","memory"); -} - -void (*copy_page)(unsigned long to, unsigned long from); - -void mips1_copy_page(unsigned long to, unsigned long from) -{ - memcpy((void *) to, - (void *) (from + (PT_OFFSET - PAGE_OFFSET)), PAGE_SIZE); -} |