1 /* 2 * Copyright 2010 Tilera Corporation. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation, version 2. 7 * 8 * This program is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 11 * NON INFRINGEMENT. See the GNU General Public License for 12 * more details. 13 * 14 * Exports from assembler code and from libtile-cc. 15 */ 16 17 #include <linux/module.h> 18 19 /* arch/tile/lib/usercopy.S */ 20 #include <linux/uaccess.h> 21 EXPORT_SYMBOL(clear_user_asm); 22 EXPORT_SYMBOL(flush_user_asm); 23 EXPORT_SYMBOL(finv_user_asm); 24 25 /* arch/tile/kernel/entry.S */ 26 #include <linux/kernel.h> 27 #include <asm/processor.h> 28 EXPORT_SYMBOL(current_text_addr); 29 30 /* arch/tile/kernel/head.S */ 31 EXPORT_SYMBOL(empty_zero_page); 32 33 #ifdef CONFIG_FUNCTION_TRACER 34 /* arch/tile/kernel/mcount_64.S */ 35 #include <asm/ftrace.h> 36 EXPORT_SYMBOL(__mcount); 37 #endif /* CONFIG_FUNCTION_TRACER */ 38 39 /* arch/tile/lib/, various memcpy files */ 40 EXPORT_SYMBOL(memcpy); 41 EXPORT_SYMBOL(__copy_to_user_inatomic); 42 EXPORT_SYMBOL(__copy_from_user_inatomic); 43 EXPORT_SYMBOL(__copy_from_user_zeroing); 44 #ifdef __tilegx__ 45 EXPORT_SYMBOL(__copy_in_user_inatomic); 46 #endif 47 48 /* hypervisor glue */ 49 #include <hv/hypervisor.h> 50 EXPORT_SYMBOL(hv_dev_open); 51 EXPORT_SYMBOL(hv_dev_pread); 52 EXPORT_SYMBOL(hv_dev_pwrite); 53 EXPORT_SYMBOL(hv_dev_preada); 54 EXPORT_SYMBOL(hv_dev_pwritea); 55 EXPORT_SYMBOL(hv_dev_poll); 56 EXPORT_SYMBOL(hv_dev_poll_cancel); 57 EXPORT_SYMBOL(hv_dev_close); 58 EXPORT_SYMBOL(hv_sysconf); 59 EXPORT_SYMBOL(hv_confstr); 60 EXPORT_SYMBOL(hv_get_rtc); 61 EXPORT_SYMBOL(hv_set_rtc); 62 63 /* libgcc.a */ 64 uint32_t __udivsi3(uint32_t dividend, uint32_t divisor); 65 EXPORT_SYMBOL(__udivsi3); 66 int32_t __divsi3(int32_t dividend, int32_t divisor); 67 EXPORT_SYMBOL(__divsi3); 68 uint64_t __udivdi3(uint64_t dividend, uint64_t divisor); 69 EXPORT_SYMBOL(__udivdi3); 70 int64_t __divdi3(int64_t dividend, int64_t divisor); 71 EXPORT_SYMBOL(__divdi3); 72 uint32_t __umodsi3(uint32_t dividend, uint32_t divisor); 73 EXPORT_SYMBOL(__umodsi3); 74 int32_t __modsi3(int32_t dividend, int32_t divisor); 75 EXPORT_SYMBOL(__modsi3); 76 uint64_t __umoddi3(uint64_t dividend, uint64_t divisor); 77 EXPORT_SYMBOL(__umoddi3); 78 int64_t __moddi3(int64_t dividend, int64_t divisor); 79 EXPORT_SYMBOL(__moddi3); 80 #ifdef __tilegx__ 81 typedef int TItype __attribute__((mode(TI))); 82 TItype __multi3(TItype a, TItype b); 83 EXPORT_SYMBOL(__multi3); /* required for gcc 7 and later */ 84 #else 85 int64_t __muldi3(int64_t, int64_t); 86 EXPORT_SYMBOL(__muldi3); 87 uint64_t __lshrdi3(uint64_t, unsigned int); 88 EXPORT_SYMBOL(__lshrdi3); 89 uint64_t __ashrdi3(uint64_t, unsigned int); 90 EXPORT_SYMBOL(__ashrdi3); 91 uint64_t __ashldi3(uint64_t, unsigned int); 92 EXPORT_SYMBOL(__ashldi3); 93 int __ffsdi2(uint64_t); 94 EXPORT_SYMBOL(__ffsdi2); 95 #endif 96