1 /* 2 * Export MIPS-specific functions needed for loadable modules. 3 * 4 * This file is subject to the terms and conditions of the GNU General Public 5 * License. See the file "COPYING" in the main directory of this archive 6 * for more details. 7 * 8 * Copyright (C) 1996, 97, 98, 99, 2000, 01, 03, 04, 05, 12 by Ralf Baechle 9 * Copyright (C) 1999, 2000, 01 Silicon Graphics, Inc. 10 */ 11 #include <linux/interrupt.h> 12 #include <linux/export.h> 13 #include <asm/checksum.h> 14 #include <linux/mm.h> 15 #include <asm/uaccess.h> 16 #include <asm/ftrace.h> 17 #include <asm/fpu.h> 18 #include <asm/msa.h> 19 20 extern void *__bzero_kernel(void *__s, size_t __count); 21 extern void *__bzero(void *__s, size_t __count); 22 extern long __strncpy_from_kernel_nocheck_asm(char *__to, 23 const char *__from, long __len); 24 extern long __strncpy_from_kernel_asm(char *__to, const char *__from, 25 long __len); 26 extern long __strncpy_from_user_nocheck_asm(char *__to, 27 const char *__from, long __len); 28 extern long __strncpy_from_user_asm(char *__to, const char *__from, 29 long __len); 30 extern long __strlen_kernel_asm(const char *s); 31 extern long __strlen_user_asm(const char *s); 32 extern long __strnlen_kernel_nocheck_asm(const char *s); 33 extern long __strnlen_kernel_asm(const char *s); 34 extern long __strnlen_user_nocheck_asm(const char *s); 35 extern long __strnlen_user_asm(const char *s); 36 37 /* 38 * Core architecture code 39 */ 40 EXPORT_SYMBOL_GPL(_save_fp); 41 #ifdef CONFIG_CPU_HAS_MSA 42 EXPORT_SYMBOL_GPL(_save_msa); 43 #endif 44 45 /* 46 * String functions 47 */ 48 EXPORT_SYMBOL(memset); 49 EXPORT_SYMBOL(memcpy); 50 EXPORT_SYMBOL(memmove); 51 52 /* 53 * Functions that operate on entire pages. Mostly used by memory management. 54 */ 55 EXPORT_SYMBOL(clear_page); 56 EXPORT_SYMBOL(copy_page); 57 58 /* 59 * Userspace access stuff. 60 */ 61 EXPORT_SYMBOL(__copy_user); 62 EXPORT_SYMBOL(__copy_user_inatomic); 63 #ifdef CONFIG_EVA 64 EXPORT_SYMBOL(__copy_from_user_eva); 65 EXPORT_SYMBOL(__copy_in_user_eva); 66 EXPORT_SYMBOL(__copy_to_user_eva); 67 EXPORT_SYMBOL(__copy_user_inatomic_eva); 68 EXPORT_SYMBOL(__bzero_kernel); 69 #endif 70 EXPORT_SYMBOL(__bzero); 71 EXPORT_SYMBOL(__strncpy_from_kernel_nocheck_asm); 72 EXPORT_SYMBOL(__strncpy_from_kernel_asm); 73 EXPORT_SYMBOL(__strncpy_from_user_nocheck_asm); 74 EXPORT_SYMBOL(__strncpy_from_user_asm); 75 EXPORT_SYMBOL(__strlen_kernel_asm); 76 EXPORT_SYMBOL(__strlen_user_asm); 77 EXPORT_SYMBOL(__strnlen_kernel_nocheck_asm); 78 EXPORT_SYMBOL(__strnlen_kernel_asm); 79 EXPORT_SYMBOL(__strnlen_user_nocheck_asm); 80 EXPORT_SYMBOL(__strnlen_user_asm); 81 82 #ifndef CONFIG_CPU_MIPSR6 83 EXPORT_SYMBOL(csum_partial); 84 EXPORT_SYMBOL(csum_partial_copy_nocheck); 85 EXPORT_SYMBOL(__csum_partial_copy_kernel); 86 EXPORT_SYMBOL(__csum_partial_copy_to_user); 87 EXPORT_SYMBOL(__csum_partial_copy_from_user); 88 #endif 89 90 EXPORT_SYMBOL(invalid_pte_table); 91 #ifdef CONFIG_FUNCTION_TRACER 92 /* _mcount is defined in arch/mips/kernel/mcount.S */ 93 EXPORT_SYMBOL(_mcount); 94 #endif 95