diff options
author | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
---|---|---|
committer | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
commit | 871480933a1c28f8a9fed4c4d34d06c439a7a422 (patch) | |
tree | 8718f573808810c2a1e8cb8fb6ac469093ca2784 /ANDROID_3.4.5/arch/m68k/mm/sun3kmap.c | |
parent | 9d40ac5867b9aefe0722bc1f110b965ff294d30d (diff) | |
download | FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.gz FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.bz2 FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.zip |
Moved, renamed, and deleted files
The original directory structure was scattered and unorganized.
Changes are basically to make it look like kernel structure.
Diffstat (limited to 'ANDROID_3.4.5/arch/m68k/mm/sun3kmap.c')
-rw-r--r-- | ANDROID_3.4.5/arch/m68k/mm/sun3kmap.c | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/ANDROID_3.4.5/arch/m68k/mm/sun3kmap.c b/ANDROID_3.4.5/arch/m68k/mm/sun3kmap.c deleted file mode 100644 index 3dc41158..00000000 --- a/ANDROID_3.4.5/arch/m68k/mm/sun3kmap.c +++ /dev/null @@ -1,161 +0,0 @@ -/* - * linux/arch/m68k/mm/sun3kmap.c - * - * Copyright (C) 2002 Sam Creasey <sammy@sammy.net> - * - * 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. - */ - -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> -#include <linux/mm.h> -#include <linux/vmalloc.h> - -#include <asm/page.h> -#include <asm/pgtable.h> -#include <asm/io.h> -#include <asm/sun3mmu.h> - -#undef SUN3_KMAP_DEBUG - -#ifdef SUN3_KMAP_DEBUG -extern void print_pte_vaddr(unsigned long vaddr); -#endif - -extern void mmu_emu_map_pmeg (int context, int vaddr); - -static inline void do_page_mapin(unsigned long phys, unsigned long virt, - unsigned long type) -{ - unsigned long pte; - pte_t ptep; - - ptep = pfn_pte(phys >> PAGE_SHIFT, PAGE_KERNEL); - pte = pte_val(ptep); - pte |= type; - - sun3_put_pte(virt, pte); - -#ifdef SUN3_KMAP_DEBUG - print_pte_vaddr(virt); -#endif - -} - -static inline void do_pmeg_mapin(unsigned long phys, unsigned long virt, - unsigned long type, int pages) -{ - - if(sun3_get_segmap(virt & ~SUN3_PMEG_MASK) == SUN3_INVALID_PMEG) - mmu_emu_map_pmeg(sun3_get_context(), virt); - - while(pages) { - do_page_mapin(phys, virt, type); - phys += PAGE_SIZE; - virt += PAGE_SIZE; - pages--; - } -} - -void __iomem *sun3_ioremap(unsigned long phys, unsigned long size, - unsigned long type) -{ - struct vm_struct *area; - unsigned long offset, virt, ret; - int pages; - - if(!size) - return NULL; - - /* page align */ - offset = phys & (PAGE_SIZE-1); - phys &= ~(PAGE_SIZE-1); - - size += offset; - size = PAGE_ALIGN(size); - if((area = get_vm_area(size, VM_IOREMAP)) == NULL) - return NULL; - -#ifdef SUN3_KMAP_DEBUG - printk("ioremap: got virt %p size %lx(%lx)\n", - area->addr, size, area->size); -#endif - - pages = size / PAGE_SIZE; - virt = (unsigned long)area->addr; - ret = virt + offset; - - while(pages) { - int seg_pages; - - seg_pages = (SUN3_PMEG_SIZE - (virt & SUN3_PMEG_MASK)) / PAGE_SIZE; - if(seg_pages > pages) - seg_pages = pages; - - do_pmeg_mapin(phys, virt, type, seg_pages); - - pages -= seg_pages; - phys += seg_pages * PAGE_SIZE; - virt += seg_pages * PAGE_SIZE; - } - - return (void __iomem *)ret; - -} -EXPORT_SYMBOL(sun3_ioremap); - - -void __iomem *__ioremap(unsigned long phys, unsigned long size, int cache) -{ - - return sun3_ioremap(phys, size, SUN3_PAGE_TYPE_IO); - -} -EXPORT_SYMBOL(__ioremap); - -void iounmap(void __iomem *addr) -{ - vfree((void *)(PAGE_MASK & (unsigned long)addr)); -} -EXPORT_SYMBOL(iounmap); - -/* sun3_map_test(addr, val) -- Reads a byte from addr, storing to val, - * trapping the potential read fault. Returns 0 if the access faulted, - * 1 on success. - * - * This function is primarily used to check addresses on the VME bus. - * - * Mucking with the page fault handler seems a little hackish to me, but - * SunOS, NetBSD, and Mach all implemented this check in such a manner, - * so I figure we're allowed. - */ -int sun3_map_test(unsigned long addr, char *val) -{ - int ret = 0; - - __asm__ __volatile__ - (".globl _sun3_map_test_start\n" - "_sun3_map_test_start:\n" - "1: moveb (%2), (%0)\n" - " moveq #1, %1\n" - "2:\n" - ".section .fixup,\"ax\"\n" - ".even\n" - "3: moveq #0, %1\n" - " jmp 2b\n" - ".previous\n" - ".section __ex_table,\"a\"\n" - ".align 4\n" - ".long 1b,3b\n" - ".previous\n" - ".globl _sun3_map_test_end\n" - "_sun3_map_test_end:\n" - : "=a"(val), "=r"(ret) - : "a"(addr)); - - return ret; -} -EXPORT_SYMBOL(sun3_map_test); |