1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * arch/sh/mm/nommu.c 4 * 5 * Various helper routines and stubs for MMUless SH. 6 * 7 * Copyright (C) 2002 - 2009 Paul Mundt 8 */ 9 #include <linux/kernel.h> 10 #include <linux/init.h> 11 #include <linux/string.h> 12 #include <linux/mm.h> 13 #include <asm/pgtable.h> 14 #include <asm/tlbflush.h> 15 #include <asm/page.h> 16 #include <linux/uaccess.h> 17 18 /* 19 * Nothing too terribly exciting here .. 20 */ 21 void copy_page(void *to, void *from) 22 { 23 memcpy(to, from, PAGE_SIZE); 24 } 25 26 __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n) 27 { 28 memcpy(to, from, n); 29 return 0; 30 } 31 32 __kernel_size_t __clear_user(void *to, __kernel_size_t n) 33 { 34 memset(to, 0, n); 35 return 0; 36 } 37 38 void local_flush_tlb_all(void) 39 { 40 BUG(); 41 } 42 43 void local_flush_tlb_mm(struct mm_struct *mm) 44 { 45 BUG(); 46 } 47 48 void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 49 unsigned long end) 50 { 51 BUG(); 52 } 53 54 void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) 55 { 56 BUG(); 57 } 58 59 void local_flush_tlb_one(unsigned long asid, unsigned long page) 60 { 61 BUG(); 62 } 63 64 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 65 { 66 BUG(); 67 } 68 69 void __flush_tlb_global(void) 70 { 71 } 72 73 void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte) 74 { 75 } 76 77 void __init kmap_coherent_init(void) 78 { 79 } 80 81 void *kmap_coherent(struct page *page, unsigned long addr) 82 { 83 BUG(); 84 return NULL; 85 } 86 87 void kunmap_coherent(void *kvaddr) 88 { 89 BUG(); 90 } 91 92 void __init page_table_range_init(unsigned long start, unsigned long end, 93 pgd_t *pgd_base) 94 { 95 } 96 97 void __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot) 98 { 99 } 100 101 void pgtable_cache_init(void) 102 { 103 } 104