Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  *  linux/arch/arm/kernel/armksyms.c
0004  *
0005  *  Copyright (C) 2000 Russell King
0006  */
0007 #include <linux/export.h>
0008 #include <linux/sched.h>
0009 #include <linux/string.h>
0010 #include <linux/delay.h>
0011 #include <linux/in6.h>
0012 #include <linux/syscalls.h>
0013 #include <linux/uaccess.h>
0014 #include <linux/io.h>
0015 #include <linux/arm-smccc.h>
0016 
0017 #include <asm/checksum.h>
0018 #include <asm/ftrace.h>
0019 
0020 /*
0021  * libgcc functions - functions that are used internally by the
0022  * compiler...  (prototypes are not correct though, but that
0023  * doesn't really matter since they're not versioned).
0024  */
0025 extern void __ashldi3(void);
0026 extern void __ashrdi3(void);
0027 extern void __divsi3(void);
0028 extern void __lshrdi3(void);
0029 extern void __modsi3(void);
0030 extern void __muldi3(void);
0031 extern void __ucmpdi2(void);
0032 extern void __udivsi3(void);
0033 extern void __umodsi3(void);
0034 extern void __do_div64(void);
0035 extern void __bswapsi2(void);
0036 extern void __bswapdi2(void);
0037 
0038 extern void __aeabi_idiv(void);
0039 extern void __aeabi_idivmod(void);
0040 extern void __aeabi_lasr(void);
0041 extern void __aeabi_llsl(void);
0042 extern void __aeabi_llsr(void);
0043 extern void __aeabi_lmul(void);
0044 extern void __aeabi_uidiv(void);
0045 extern void __aeabi_uidivmod(void);
0046 extern void __aeabi_ulcmp(void);
0047 
0048 extern void fpundefinstr(void);
0049 
0050 void mmioset(void *, unsigned int, size_t);
0051 void mmiocpy(void *, const void *, size_t);
0052 
0053     /* platform dependent support */
0054 EXPORT_SYMBOL(arm_delay_ops);
0055 
0056     /* networking */
0057 EXPORT_SYMBOL(csum_partial);
0058 EXPORT_SYMBOL(csum_partial_copy_from_user);
0059 EXPORT_SYMBOL(csum_partial_copy_nocheck);
0060 EXPORT_SYMBOL(__csum_ipv6_magic);
0061 
0062     /* io */
0063 #ifndef __raw_readsb
0064 EXPORT_SYMBOL(__raw_readsb);
0065 #endif
0066 #ifndef __raw_readsw
0067 EXPORT_SYMBOL(__raw_readsw);
0068 #endif
0069 #ifndef __raw_readsl
0070 EXPORT_SYMBOL(__raw_readsl);
0071 #endif
0072 #ifndef __raw_writesb
0073 EXPORT_SYMBOL(__raw_writesb);
0074 #endif
0075 #ifndef __raw_writesw
0076 EXPORT_SYMBOL(__raw_writesw);
0077 #endif
0078 #ifndef __raw_writesl
0079 EXPORT_SYMBOL(__raw_writesl);
0080 #endif
0081 
0082     /* string / mem functions */
0083 EXPORT_SYMBOL(strchr);
0084 EXPORT_SYMBOL(strrchr);
0085 EXPORT_SYMBOL(memset);
0086 EXPORT_SYMBOL(__memset32);
0087 EXPORT_SYMBOL(__memset64);
0088 EXPORT_SYMBOL(memcpy);
0089 EXPORT_SYMBOL(memmove);
0090 EXPORT_SYMBOL(memchr);
0091 
0092 EXPORT_SYMBOL(mmioset);
0093 EXPORT_SYMBOL(mmiocpy);
0094 
0095 #ifdef CONFIG_MMU
0096 EXPORT_SYMBOL(copy_page);
0097 
0098 EXPORT_SYMBOL(arm_copy_from_user);
0099 EXPORT_SYMBOL(arm_copy_to_user);
0100 EXPORT_SYMBOL(arm_clear_user);
0101 
0102 EXPORT_SYMBOL(__get_user_1);
0103 EXPORT_SYMBOL(__get_user_2);
0104 EXPORT_SYMBOL(__get_user_4);
0105 EXPORT_SYMBOL(__get_user_8);
0106 
0107 #ifdef __ARMEB__
0108 EXPORT_SYMBOL(__get_user_64t_1);
0109 EXPORT_SYMBOL(__get_user_64t_2);
0110 EXPORT_SYMBOL(__get_user_64t_4);
0111 EXPORT_SYMBOL(__get_user_32t_8);
0112 #endif
0113 
0114 EXPORT_SYMBOL(__put_user_1);
0115 EXPORT_SYMBOL(__put_user_2);
0116 EXPORT_SYMBOL(__put_user_4);
0117 EXPORT_SYMBOL(__put_user_8);
0118 #endif
0119 
0120     /* gcc lib functions */
0121 EXPORT_SYMBOL(__ashldi3);
0122 EXPORT_SYMBOL(__ashrdi3);
0123 EXPORT_SYMBOL(__divsi3);
0124 EXPORT_SYMBOL(__lshrdi3);
0125 EXPORT_SYMBOL(__modsi3);
0126 EXPORT_SYMBOL(__muldi3);
0127 EXPORT_SYMBOL(__ucmpdi2);
0128 EXPORT_SYMBOL(__udivsi3);
0129 EXPORT_SYMBOL(__umodsi3);
0130 EXPORT_SYMBOL(__do_div64);
0131 EXPORT_SYMBOL(__bswapsi2);
0132 EXPORT_SYMBOL(__bswapdi2);
0133 
0134 #ifdef CONFIG_AEABI
0135 EXPORT_SYMBOL(__aeabi_idiv);
0136 EXPORT_SYMBOL(__aeabi_idivmod);
0137 EXPORT_SYMBOL(__aeabi_lasr);
0138 EXPORT_SYMBOL(__aeabi_llsl);
0139 EXPORT_SYMBOL(__aeabi_llsr);
0140 EXPORT_SYMBOL(__aeabi_lmul);
0141 EXPORT_SYMBOL(__aeabi_uidiv);
0142 EXPORT_SYMBOL(__aeabi_uidivmod);
0143 EXPORT_SYMBOL(__aeabi_ulcmp);
0144 #endif
0145 
0146     /* bitops */
0147 EXPORT_SYMBOL(_set_bit);
0148 EXPORT_SYMBOL(_test_and_set_bit);
0149 EXPORT_SYMBOL(_clear_bit);
0150 EXPORT_SYMBOL(_test_and_clear_bit);
0151 EXPORT_SYMBOL(_change_bit);
0152 EXPORT_SYMBOL(_test_and_change_bit);
0153 EXPORT_SYMBOL(_find_first_zero_bit_le);
0154 EXPORT_SYMBOL(_find_next_zero_bit_le);
0155 EXPORT_SYMBOL(_find_first_bit_le);
0156 EXPORT_SYMBOL(_find_next_bit_le);
0157 
0158 #ifdef __ARMEB__
0159 EXPORT_SYMBOL(_find_first_zero_bit_be);
0160 EXPORT_SYMBOL(_find_next_zero_bit_be);
0161 EXPORT_SYMBOL(_find_first_bit_be);
0162 EXPORT_SYMBOL(_find_next_bit_be);
0163 #endif
0164 
0165 #ifdef CONFIG_FUNCTION_TRACER
0166 EXPORT_SYMBOL(__gnu_mcount_nc);
0167 #endif
0168 
0169 #ifdef CONFIG_ARM_PATCH_PHYS_VIRT
0170 EXPORT_SYMBOL(__pv_phys_pfn_offset);
0171 EXPORT_SYMBOL(__pv_offset);
0172 #endif
0173 
0174 #ifdef CONFIG_HAVE_ARM_SMCCC
0175 EXPORT_SYMBOL(__arm_smccc_smc);
0176 EXPORT_SYMBOL(__arm_smccc_hvc);
0177 #endif