1*d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only 28478132aSRussell King /* 38478132aSRussell King * linux/arch/arm/kernel/armksyms.c 48478132aSRussell King * 58478132aSRussell King * Copyright (C) 2000 Russell King 68478132aSRussell King */ 78478132aSRussell King #include <linux/export.h> 88478132aSRussell King #include <linux/sched.h> 98478132aSRussell King #include <linux/string.h> 108478132aSRussell King #include <linux/delay.h> 118478132aSRussell King #include <linux/in6.h> 128478132aSRussell King #include <linux/syscalls.h> 138478132aSRussell King #include <linux/uaccess.h> 148478132aSRussell King #include <linux/io.h> 158478132aSRussell King #include <linux/arm-smccc.h> 168478132aSRussell King 178478132aSRussell King #include <asm/checksum.h> 188478132aSRussell King #include <asm/ftrace.h> 198478132aSRussell King 208478132aSRussell King /* 218478132aSRussell King * libgcc functions - functions that are used internally by the 228478132aSRussell King * compiler... (prototypes are not correct though, but that 238478132aSRussell King * doesn't really matter since they're not versioned). 248478132aSRussell King */ 258478132aSRussell King extern void __ashldi3(void); 268478132aSRussell King extern void __ashrdi3(void); 278478132aSRussell King extern void __divsi3(void); 288478132aSRussell King extern void __lshrdi3(void); 298478132aSRussell King extern void __modsi3(void); 308478132aSRussell King extern void __muldi3(void); 318478132aSRussell King extern void __ucmpdi2(void); 328478132aSRussell King extern void __udivsi3(void); 338478132aSRussell King extern void __umodsi3(void); 348478132aSRussell King extern void __do_div64(void); 358478132aSRussell King extern void __bswapsi2(void); 368478132aSRussell King extern void __bswapdi2(void); 378478132aSRussell King 388478132aSRussell King extern void __aeabi_idiv(void); 398478132aSRussell King extern void __aeabi_idivmod(void); 408478132aSRussell King extern void __aeabi_lasr(void); 418478132aSRussell King extern void __aeabi_llsl(void); 428478132aSRussell King extern void __aeabi_llsr(void); 438478132aSRussell King extern void __aeabi_lmul(void); 448478132aSRussell King extern void __aeabi_uidiv(void); 458478132aSRussell King extern void __aeabi_uidivmod(void); 468478132aSRussell King extern void __aeabi_ulcmp(void); 478478132aSRussell King 488478132aSRussell King extern void fpundefinstr(void); 498478132aSRussell King 508478132aSRussell King void mmioset(void *, unsigned int, size_t); 518478132aSRussell King void mmiocpy(void *, const void *, size_t); 528478132aSRussell King 538478132aSRussell King /* platform dependent support */ 548478132aSRussell King EXPORT_SYMBOL(arm_delay_ops); 558478132aSRussell King 568478132aSRussell King /* networking */ 578478132aSRussell King EXPORT_SYMBOL(csum_partial); 588478132aSRussell King EXPORT_SYMBOL(csum_partial_copy_from_user); 598478132aSRussell King EXPORT_SYMBOL(csum_partial_copy_nocheck); 608478132aSRussell King EXPORT_SYMBOL(__csum_ipv6_magic); 618478132aSRussell King 628478132aSRussell King /* io */ 638478132aSRussell King #ifndef __raw_readsb 648478132aSRussell King EXPORT_SYMBOL(__raw_readsb); 658478132aSRussell King #endif 668478132aSRussell King #ifndef __raw_readsw 678478132aSRussell King EXPORT_SYMBOL(__raw_readsw); 688478132aSRussell King #endif 698478132aSRussell King #ifndef __raw_readsl 708478132aSRussell King EXPORT_SYMBOL(__raw_readsl); 718478132aSRussell King #endif 728478132aSRussell King #ifndef __raw_writesb 738478132aSRussell King EXPORT_SYMBOL(__raw_writesb); 748478132aSRussell King #endif 758478132aSRussell King #ifndef __raw_writesw 768478132aSRussell King EXPORT_SYMBOL(__raw_writesw); 778478132aSRussell King #endif 788478132aSRussell King #ifndef __raw_writesl 798478132aSRussell King EXPORT_SYMBOL(__raw_writesl); 808478132aSRussell King #endif 818478132aSRussell King 828478132aSRussell King /* string / mem functions */ 838478132aSRussell King EXPORT_SYMBOL(strchr); 848478132aSRussell King EXPORT_SYMBOL(strrchr); 858478132aSRussell King EXPORT_SYMBOL(memset); 86fd1d3626SMatthew Wilcox EXPORT_SYMBOL(__memset32); 87fd1d3626SMatthew Wilcox EXPORT_SYMBOL(__memset64); 888478132aSRussell King EXPORT_SYMBOL(memcpy); 898478132aSRussell King EXPORT_SYMBOL(memmove); 908478132aSRussell King EXPORT_SYMBOL(memchr); 918478132aSRussell King 928478132aSRussell King EXPORT_SYMBOL(mmioset); 938478132aSRussell King EXPORT_SYMBOL(mmiocpy); 948478132aSRussell King 958478132aSRussell King #ifdef CONFIG_MMU 968478132aSRussell King EXPORT_SYMBOL(copy_page); 978478132aSRussell King 988478132aSRussell King EXPORT_SYMBOL(arm_copy_from_user); 998478132aSRussell King EXPORT_SYMBOL(arm_copy_to_user); 1008478132aSRussell King EXPORT_SYMBOL(arm_clear_user); 1018478132aSRussell King 1028478132aSRussell King EXPORT_SYMBOL(__get_user_1); 1038478132aSRussell King EXPORT_SYMBOL(__get_user_2); 1048478132aSRussell King EXPORT_SYMBOL(__get_user_4); 1058478132aSRussell King EXPORT_SYMBOL(__get_user_8); 1068478132aSRussell King 1078478132aSRussell King #ifdef __ARMEB__ 1088478132aSRussell King EXPORT_SYMBOL(__get_user_64t_1); 1098478132aSRussell King EXPORT_SYMBOL(__get_user_64t_2); 1108478132aSRussell King EXPORT_SYMBOL(__get_user_64t_4); 1118478132aSRussell King EXPORT_SYMBOL(__get_user_32t_8); 1128478132aSRussell King #endif 1138478132aSRussell King 1148478132aSRussell King EXPORT_SYMBOL(__put_user_1); 1158478132aSRussell King EXPORT_SYMBOL(__put_user_2); 1168478132aSRussell King EXPORT_SYMBOL(__put_user_4); 1178478132aSRussell King EXPORT_SYMBOL(__put_user_8); 1188478132aSRussell King #endif 1198478132aSRussell King 1208478132aSRussell King /* gcc lib functions */ 1218478132aSRussell King EXPORT_SYMBOL(__ashldi3); 1228478132aSRussell King EXPORT_SYMBOL(__ashrdi3); 1238478132aSRussell King EXPORT_SYMBOL(__divsi3); 1248478132aSRussell King EXPORT_SYMBOL(__lshrdi3); 1258478132aSRussell King EXPORT_SYMBOL(__modsi3); 1268478132aSRussell King EXPORT_SYMBOL(__muldi3); 1278478132aSRussell King EXPORT_SYMBOL(__ucmpdi2); 1288478132aSRussell King EXPORT_SYMBOL(__udivsi3); 1298478132aSRussell King EXPORT_SYMBOL(__umodsi3); 1308478132aSRussell King EXPORT_SYMBOL(__do_div64); 1318478132aSRussell King EXPORT_SYMBOL(__bswapsi2); 1328478132aSRussell King EXPORT_SYMBOL(__bswapdi2); 1338478132aSRussell King 1348478132aSRussell King #ifdef CONFIG_AEABI 1358478132aSRussell King EXPORT_SYMBOL(__aeabi_idiv); 1368478132aSRussell King EXPORT_SYMBOL(__aeabi_idivmod); 1378478132aSRussell King EXPORT_SYMBOL(__aeabi_lasr); 1388478132aSRussell King EXPORT_SYMBOL(__aeabi_llsl); 1398478132aSRussell King EXPORT_SYMBOL(__aeabi_llsr); 1408478132aSRussell King EXPORT_SYMBOL(__aeabi_lmul); 1418478132aSRussell King EXPORT_SYMBOL(__aeabi_uidiv); 1428478132aSRussell King EXPORT_SYMBOL(__aeabi_uidivmod); 1438478132aSRussell King EXPORT_SYMBOL(__aeabi_ulcmp); 1448478132aSRussell King #endif 1458478132aSRussell King 1468478132aSRussell King /* bitops */ 1478478132aSRussell King EXPORT_SYMBOL(_set_bit); 1488478132aSRussell King EXPORT_SYMBOL(_test_and_set_bit); 1498478132aSRussell King EXPORT_SYMBOL(_clear_bit); 1508478132aSRussell King EXPORT_SYMBOL(_test_and_clear_bit); 1518478132aSRussell King EXPORT_SYMBOL(_change_bit); 1528478132aSRussell King EXPORT_SYMBOL(_test_and_change_bit); 1538478132aSRussell King EXPORT_SYMBOL(_find_first_zero_bit_le); 1548478132aSRussell King EXPORT_SYMBOL(_find_next_zero_bit_le); 1558478132aSRussell King EXPORT_SYMBOL(_find_first_bit_le); 1568478132aSRussell King EXPORT_SYMBOL(_find_next_bit_le); 1578478132aSRussell King 1588478132aSRussell King #ifdef __ARMEB__ 1598478132aSRussell King EXPORT_SYMBOL(_find_first_zero_bit_be); 1608478132aSRussell King EXPORT_SYMBOL(_find_next_zero_bit_be); 1618478132aSRussell King EXPORT_SYMBOL(_find_first_bit_be); 1628478132aSRussell King EXPORT_SYMBOL(_find_next_bit_be); 1638478132aSRussell King #endif 1648478132aSRussell King 1658478132aSRussell King #ifdef CONFIG_FUNCTION_TRACER 1668478132aSRussell King EXPORT_SYMBOL(__gnu_mcount_nc); 1678478132aSRussell King #endif 1688478132aSRussell King 1698478132aSRussell King #ifdef CONFIG_ARM_PATCH_PHYS_VIRT 1708478132aSRussell King EXPORT_SYMBOL(__pv_phys_pfn_offset); 1718478132aSRussell King EXPORT_SYMBOL(__pv_offset); 1728478132aSRussell King #endif 1738478132aSRussell King 1748478132aSRussell King #ifdef CONFIG_HAVE_ARM_SMCCC 175680a0873SAndy Gross EXPORT_SYMBOL(__arm_smccc_smc); 176680a0873SAndy Gross EXPORT_SYMBOL(__arm_smccc_hvc); 1778478132aSRussell King #endif 178