1*4b7be4f2SPaul Mundt #include <linux/module.h> 2*4b7be4f2SPaul Mundt #include <linux/smp.h> 3*4b7be4f2SPaul Mundt #include <linux/user.h> 4*4b7be4f2SPaul Mundt #include <linux/elfcore.h> 5*4b7be4f2SPaul Mundt #include <linux/sched.h> 6*4b7be4f2SPaul Mundt #include <linux/in6.h> 7*4b7be4f2SPaul Mundt #include <linux/interrupt.h> 8*4b7be4f2SPaul Mundt #include <linux/vmalloc.h> 9*4b7be4f2SPaul Mundt #include <linux/pci.h> 10*4b7be4f2SPaul Mundt #include <linux/irq.h> 11*4b7be4f2SPaul Mundt #include <asm/sections.h> 12*4b7be4f2SPaul Mundt #include <asm/semaphore.h> 13*4b7be4f2SPaul Mundt #include <asm/processor.h> 14*4b7be4f2SPaul Mundt #include <asm/uaccess.h> 15*4b7be4f2SPaul Mundt #include <asm/checksum.h> 16*4b7be4f2SPaul Mundt #include <asm/io.h> 17*4b7be4f2SPaul Mundt #include <asm/delay.h> 18*4b7be4f2SPaul Mundt #include <asm/tlbflush.h> 19*4b7be4f2SPaul Mundt #include <asm/cacheflush.h> 20*4b7be4f2SPaul Mundt 21*4b7be4f2SPaul Mundt extern int dump_fpu(struct pt_regs *, elf_fpregset_t *); 22*4b7be4f2SPaul Mundt extern struct hw_interrupt_type no_irq_type; 23*4b7be4f2SPaul Mundt 24*4b7be4f2SPaul Mundt EXPORT_SYMBOL(sh_mv); 25*4b7be4f2SPaul Mundt 26*4b7be4f2SPaul Mundt /* platform dependent support */ 27*4b7be4f2SPaul Mundt EXPORT_SYMBOL(dump_fpu); 28*4b7be4f2SPaul Mundt EXPORT_SYMBOL(kernel_thread); 29*4b7be4f2SPaul Mundt EXPORT_SYMBOL(irq_desc); 30*4b7be4f2SPaul Mundt EXPORT_SYMBOL(no_irq_type); 31*4b7be4f2SPaul Mundt 32*4b7be4f2SPaul Mundt EXPORT_SYMBOL(strlen); 33*4b7be4f2SPaul Mundt 34*4b7be4f2SPaul Mundt /* PCI exports */ 35*4b7be4f2SPaul Mundt #ifdef CONFIG_PCI 36*4b7be4f2SPaul Mundt EXPORT_SYMBOL(pci_alloc_consistent); 37*4b7be4f2SPaul Mundt EXPORT_SYMBOL(pci_free_consistent); 38*4b7be4f2SPaul Mundt #endif 39*4b7be4f2SPaul Mundt 40*4b7be4f2SPaul Mundt /* mem exports */ 41*4b7be4f2SPaul Mundt EXPORT_SYMBOL(memchr); 42*4b7be4f2SPaul Mundt EXPORT_SYMBOL(memcpy); 43*4b7be4f2SPaul Mundt EXPORT_SYMBOL(memset); 44*4b7be4f2SPaul Mundt EXPORT_SYMBOL(memmove); 45*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__copy_user); 46*4b7be4f2SPaul Mundt 47*4b7be4f2SPaul Mundt #ifdef CONFIG_MMU 48*4b7be4f2SPaul Mundt EXPORT_SYMBOL(get_vm_area); 49*4b7be4f2SPaul Mundt #endif 50*4b7be4f2SPaul Mundt 51*4b7be4f2SPaul Mundt /* semaphore exports */ 52*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__up); 53*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__down); 54*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__down_interruptible); 55*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__down_trylock); 56*4b7be4f2SPaul Mundt 57*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__udelay); 58*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__ndelay); 59*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__const_udelay); 60*4b7be4f2SPaul Mundt 61*4b7be4f2SPaul Mundt #define DECLARE_EXPORT(name) extern void name(void);EXPORT_SYMBOL(name) 62*4b7be4f2SPaul Mundt 63*4b7be4f2SPaul Mundt /* These symbols are generated by the compiler itself */ 64*4b7be4f2SPaul Mundt DECLARE_EXPORT(__udivsi3); 65*4b7be4f2SPaul Mundt DECLARE_EXPORT(__sdivsi3); 66*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashrsi3); 67*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashlsi3); 68*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashrdi3); 69*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashldi3); 70*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_6); 71*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_7); 72*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_8); 73*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_9); 74*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_10); 75*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_11); 76*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_12); 77*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_13); 78*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_14); 79*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_15); 80*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_20); 81*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_21); 82*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_22); 83*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_23); 84*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_24); 85*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_27); 86*4b7be4f2SPaul Mundt DECLARE_EXPORT(__ashiftrt_r4_30); 87*4b7be4f2SPaul Mundt DECLARE_EXPORT(__lshrsi3); 88*4b7be4f2SPaul Mundt DECLARE_EXPORT(__lshrdi3); 89*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI8); 90*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI12); 91*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI16); 92*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI20); 93*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI24); 94*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI28); 95*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI32); 96*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI36); 97*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI40); 98*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI44); 99*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI48); 100*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI52); 101*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI56); 102*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI60); 103*4b7be4f2SPaul Mundt #if __GNUC__ == 4 104*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movmem); 105*4b7be4f2SPaul Mundt #else 106*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstr); 107*4b7be4f2SPaul Mundt #endif 108*4b7be4f2SPaul Mundt 109*4b7be4f2SPaul Mundt #if __GNUC__ == 4 110*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movmem_i4_even); 111*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movmem_i4_odd); 112*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movmemSI12_i4); 113*4b7be4f2SPaul Mundt 114*4b7be4f2SPaul Mundt #if (__GNUC_MINOR__ == 2 || defined(__GNUC_STM_RELEASE__)) 115*4b7be4f2SPaul Mundt /* 116*4b7be4f2SPaul Mundt * GCC 4.2 emits these for division, as do GCC 4.1.x versions of the ST 117*4b7be4f2SPaul Mundt * compiler which include backported patches. 118*4b7be4f2SPaul Mundt */ 119*4b7be4f2SPaul Mundt DECLARE_EXPORT(__sdivsi3_i4i); 120*4b7be4f2SPaul Mundt DECLARE_EXPORT(__udiv_qrnnd_16); 121*4b7be4f2SPaul Mundt DECLARE_EXPORT(__udivsi3_i4i); 122*4b7be4f2SPaul Mundt #endif 123*4b7be4f2SPaul Mundt #else /* GCC 3.x */ 124*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstr_i4_even); 125*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstr_i4_odd); 126*4b7be4f2SPaul Mundt DECLARE_EXPORT(__movstrSI12_i4); 127*4b7be4f2SPaul Mundt #endif /* __GNUC__ == 4 */ 128*4b7be4f2SPaul Mundt 129*4b7be4f2SPaul Mundt #if !defined(CONFIG_CACHE_OFF) && (defined(CONFIG_CPU_SH4) || \ 130*4b7be4f2SPaul Mundt defined(CONFIG_SH7705_CACHE_32KB)) 131*4b7be4f2SPaul Mundt /* needed by some modules */ 132*4b7be4f2SPaul Mundt EXPORT_SYMBOL(flush_cache_all); 133*4b7be4f2SPaul Mundt EXPORT_SYMBOL(flush_cache_range); 134*4b7be4f2SPaul Mundt EXPORT_SYMBOL(flush_dcache_page); 135*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__flush_purge_region); 136*4b7be4f2SPaul Mundt #endif 137*4b7be4f2SPaul Mundt 138*4b7be4f2SPaul Mundt #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \ 139*4b7be4f2SPaul Mundt (defined(CONFIG_CPU_SH4) || defined(CONFIG_SH7705_CACHE_32KB)) 140*4b7be4f2SPaul Mundt EXPORT_SYMBOL(clear_user_page); 141*4b7be4f2SPaul Mundt #endif 142*4b7be4f2SPaul Mundt 143*4b7be4f2SPaul Mundt EXPORT_SYMBOL(csum_partial); 144*4b7be4f2SPaul Mundt EXPORT_SYMBOL(csum_partial_copy_generic); 145*4b7be4f2SPaul Mundt #ifdef CONFIG_IPV6 146*4b7be4f2SPaul Mundt EXPORT_SYMBOL(csum_ipv6_magic); 147*4b7be4f2SPaul Mundt #endif 148*4b7be4f2SPaul Mundt EXPORT_SYMBOL(clear_page); 149*4b7be4f2SPaul Mundt EXPORT_SYMBOL(__clear_user); 150*4b7be4f2SPaul Mundt EXPORT_SYMBOL(_ebss); 151