145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* 245536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg * Export of symbols defined in assembler 345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg */ 445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Tell string.h we don't want memcpy etc. as cpp defines */ 645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#define EXPORT_SYMTAB_STROPS 745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 845536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#include <linux/module.h> 945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#include <linux/string.h> 1045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#include <linux/types.h> 1145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 1245536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#include <asm/checksum.h> 1345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#include <asm/uaccess.h> 1445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#include <asm/ftrace.h> 1545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 1645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* string functions */ 1745536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(strlen); 1845536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(strncmp); 1945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 2045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* mem* functions */ 2145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void *__memscan_zero(void *, size_t); 2245536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void *__memscan_generic(void *, int, size_t); 2345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void *__bzero(void *, size_t); 2445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 2545536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(memscan); 2645536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__memscan_zero); 2745536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__memscan_generic); 2845536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(memcmp); 2945536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(memcpy); 3045536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(memset); 3145536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(memmove); 3245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__bzero); 3345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 3445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Networking helper routines. */ 3545536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(csum_partial); 3645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 3745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#ifdef CONFIG_MCOUNT 3845536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(_mcount); 3945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#endif 4045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 4145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* 4245536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg * sparc 4345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg */ 4445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#ifdef CONFIG_SPARC32 4545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern int __ashrdi3(int, int); 4645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern int __ashldi3(int, int); 4745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern int __lshrdi3(int, int); 4845536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern int __muldi3(int, int); 4945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern int __divdi3(int, int); 5045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 5145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void (*__copy_1page)(void *, const void *); 5245536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void (*bzero_1page)(void *); 5345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 5445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void ___rw_read_enter(void); 5545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void ___rw_read_try(void); 5645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void ___rw_read_exit(void); 5745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void ___rw_write_enter(void); 5845536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 5945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Networking helper routines. */ 6045536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__csum_partial_copy_sparc_generic); 6145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 6245536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Special internal versions of library functions. */ 6345536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__copy_1page); 6445536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__memmove); 6545536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(bzero_1page); 6645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 6745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Moving data to/from/in userspace. */ 6845536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__copy_user); 6945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 7045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Used by asm/spinlock.h */ 7145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#ifdef CONFIG_SMP 7245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(___rw_read_enter); 7345536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(___rw_read_try); 7445536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(___rw_read_exit); 7545536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(___rw_write_enter); 7645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#endif 7745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 7845536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__ashrdi3); 7945536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__ashldi3); 8045536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__lshrdi3); 8145536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__muldi3); 8245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__divdi3); 8345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#endif 8445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 8545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* 8645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg * sparc64 8745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg */ 8845536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#ifdef CONFIG_SPARC64 8945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Networking helper routines. */ 9045536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(csum_partial_copy_nocheck); 9145536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__csum_partial_copy_from_user); 9245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__csum_partial_copy_to_user); 9345536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(ip_fast_csum); 9445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 9545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Moving data to/from/in userspace. */ 9645536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(___copy_to_user); 9745536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(___copy_from_user); 9845536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(___copy_in_user); 9945536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(__clear_user); 10045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 10145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Atomic counter implementation. */ 1024f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra#define ATOMIC_OP(op) \ 1034f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter ZijlstraEXPORT_SYMBOL(atomic_##op); \ 1044f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter ZijlstraEXPORT_SYMBOL(atomic64_##op); 1054f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra 1064f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra#define ATOMIC_OP_RETURN(op) \ 1074f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter ZijlstraEXPORT_SYMBOL(atomic_##op##_return); \ 1084f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter ZijlstraEXPORT_SYMBOL(atomic64_##op##_return); 1094f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra 1104f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra#define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op) 1114f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra 1124f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter ZijlstraATOMIC_OPS(add) 1134f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter ZijlstraATOMIC_OPS(sub) 1144f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra 1154f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra#undef ATOMIC_OPS 1164f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra#undef ATOMIC_OP_RETURN 1174f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra#undef ATOMIC_OP 1184f3316c2b5fe2062c26c9b66915b5a5c80c60a5cPeter Zijlstra 119193d2aadc0ff5c687f6f0d5ef1d38c86ab511a14David S. MillerEXPORT_SYMBOL(atomic64_dec_if_positive); 12045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 12145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Atomic bit operations. */ 12245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(test_and_set_bit); 12345536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(test_and_clear_bit); 12445536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(test_and_change_bit); 12545536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(set_bit); 12645536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(clear_bit); 12745536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(change_bit); 12845536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 12945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* Special internal versions of library functions. */ 13045536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(_clear_page); 13145536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(clear_user_page); 13245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(copy_user_page); 13345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 13445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg/* RAID code needs this */ 13545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgvoid VISenter(void); 13645536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(VISenter); 13745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 1384ff28d4ca93b182b8e181b1e1b1d03fd09fdaeb4David S. Miller/* CRYPTO code needs this */ 1394ff28d4ca93b182b8e181b1e1b1d03fd09fdaeb4David S. Millervoid VISenterhalf(void); 1404ff28d4ca93b182b8e181b1e1b1d03fd09fdaeb4David S. MillerEXPORT_SYMBOL(VISenterhalf); 1414ff28d4ca93b182b8e181b1e1b1d03fd09fdaeb4David S. Miller 14245536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_vis_2(unsigned long, unsigned long *, unsigned long *); 14345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_vis_3(unsigned long, unsigned long *, unsigned long *, 14445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg unsigned long *); 14545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_vis_4(unsigned long, unsigned long *, unsigned long *, 14645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg unsigned long *, unsigned long *); 14745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_vis_5(unsigned long, unsigned long *, unsigned long *, 14845536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg unsigned long *, unsigned long *, unsigned long *); 14945536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_vis_2); 15045536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_vis_3); 15145536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_vis_4); 15245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_vis_5); 15345536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 15445536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *); 15545536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *, 15645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg unsigned long *); 15745536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *, 15845536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg unsigned long *, unsigned long *); 15945536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborgextern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *, 16045536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg unsigned long *, unsigned long *, unsigned long *); 16145536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg 16245536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_niagara_2); 16345536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_niagara_3); 16445536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_niagara_4); 16545536ffc8dcb7798ff4818f54391547e5af19648Sam RavnborgEXPORT_SYMBOL(xor_niagara_5); 16645536ffc8dcb7798ff4818f54391547e5af19648Sam Ravnborg#endif 167