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
20extern void *__bzero(void *__s, size_t __count);
21extern long __strncpy_from_kernel_nocheck_asm(char *__to,
22					      const char *__from, long __len);
23extern long __strncpy_from_kernel_asm(char *__to, const char *__from,
24				      long __len);
25extern long __strncpy_from_user_nocheck_asm(char *__to,
26					    const char *__from, long __len);
27extern long __strncpy_from_user_asm(char *__to, const char *__from,
28				    long __len);
29extern long __strlen_kernel_asm(const char *s);
30extern long __strlen_user_asm(const char *s);
31extern long __strnlen_kernel_nocheck_asm(const char *s);
32extern long __strnlen_kernel_asm(const char *s);
33extern long __strnlen_user_nocheck_asm(const char *s);
34extern long __strnlen_user_asm(const char *s);
35
36/*
37 * Core architecture code
38 */
39EXPORT_SYMBOL_GPL(_save_fp);
40#ifdef CONFIG_CPU_HAS_MSA
41EXPORT_SYMBOL_GPL(_save_msa);
42#endif
43
44/*
45 * String functions
46 */
47EXPORT_SYMBOL(memset);
48EXPORT_SYMBOL(memcpy);
49EXPORT_SYMBOL(memmove);
50
51/*
52 * Functions that operate on entire pages.  Mostly used by memory management.
53 */
54EXPORT_SYMBOL(clear_page);
55EXPORT_SYMBOL(copy_page);
56
57/*
58 * Userspace access stuff.
59 */
60EXPORT_SYMBOL(__copy_user);
61EXPORT_SYMBOL(__copy_user_inatomic);
62#ifdef CONFIG_EVA
63EXPORT_SYMBOL(__copy_from_user_eva);
64EXPORT_SYMBOL(__copy_in_user_eva);
65EXPORT_SYMBOL(__copy_to_user_eva);
66EXPORT_SYMBOL(__copy_user_inatomic_eva);
67#endif
68EXPORT_SYMBOL(__bzero);
69EXPORT_SYMBOL(__strncpy_from_kernel_nocheck_asm);
70EXPORT_SYMBOL(__strncpy_from_kernel_asm);
71EXPORT_SYMBOL(__strncpy_from_user_nocheck_asm);
72EXPORT_SYMBOL(__strncpy_from_user_asm);
73EXPORT_SYMBOL(__strlen_kernel_asm);
74EXPORT_SYMBOL(__strlen_user_asm);
75EXPORT_SYMBOL(__strnlen_kernel_nocheck_asm);
76EXPORT_SYMBOL(__strnlen_kernel_asm);
77EXPORT_SYMBOL(__strnlen_user_nocheck_asm);
78EXPORT_SYMBOL(__strnlen_user_asm);
79
80#ifndef CONFIG_CPU_MIPSR6
81EXPORT_SYMBOL(csum_partial);
82EXPORT_SYMBOL(csum_partial_copy_nocheck);
83EXPORT_SYMBOL(__csum_partial_copy_kernel);
84EXPORT_SYMBOL(__csum_partial_copy_to_user);
85EXPORT_SYMBOL(__csum_partial_copy_from_user);
86#endif
87
88EXPORT_SYMBOL(invalid_pte_table);
89#ifdef CONFIG_FUNCTION_TRACER
90/* _mcount is defined in arch/mips/kernel/mcount.S */
91EXPORT_SYMBOL(_mcount);
92#endif
93