11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/module.h>
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/linkage.h>
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/sched.h>
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/string.h>
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/mm.h>
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/user.h>
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/elfcore.h>
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/in6.h>
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/interrupt.h>
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/setup.h>
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/pgalloc.h>
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/irq.h>
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/io.h>
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/checksum.h>
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/hardirq.h>
17402344012ebe696d9353bbf056889ddaaec83079David Howells#include <asm/cacheflush.h>
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern long __memcpy_user(void *dst, const void *src, size_t count);
20402344012ebe696d9353bbf056889ddaaec83079David Howellsextern long __memset_user(void *dst, const void *src, size_t count);
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* platform dependent support */
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__ioremap);
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(iounmap);
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(ip_fast_csum);
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#if 0
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(local_irq_count);
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(local_bh_count);
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__res_bus_clock_speed_HZ);
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__page_offset);
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__memcpy_user);
37402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__memset_user);
38402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(frv_dcache_writeback);
39402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(frv_cache_invalidate);
40402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(frv_icache_invalidate);
41402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(frv_cache_wback_inv);
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef CONFIG_MMU
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(memory_start);
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(memory_end);
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__debug_bug_trap);
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* The following are special because they're not called
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds   explicitly (the C compiler generates them).  Fortunately,
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds   their interface isn't gonna change any time soon now, so
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds   it's OK to leave it out of version control.  */
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(memcpy);
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(memset);
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
57402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__outsl_ns);
58402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__insl_ns);
59402344012ebe696d9353bbf056889ddaaec83079David Howells
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifdef CONFIG_FRV_OUTOFLINE_ATOMIC_OPS
611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(atomic_test_and_ANDNOT_mask);
621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(atomic_test_and_OR_mask);
631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(atomic_test_and_XOR_mask);
641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(atomic_add_return);
651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(atomic_sub_return);
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__xchg_32);
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__cmpxchg_32);
681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
6900460f41fffc0435dbb6ab4b058a190163d57ce6David HowellsEXPORT_SYMBOL(atomic64_add_return);
7000460f41fffc0435dbb6ab4b058a190163d57ce6David HowellsEXPORT_SYMBOL(atomic64_sub_return);
7100460f41fffc0435dbb6ab4b058a190163d57ce6David HowellsEXPORT_SYMBOL(__xchg_64);
7200460f41fffc0435dbb6ab4b058a190163d57ce6David HowellsEXPORT_SYMBOL(__cmpxchg_64);
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
74402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__debug_bug_printk);
75402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__delay_loops_MHz);
76402344012ebe696d9353bbf056889ddaaec83079David Howells
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * libgcc functions - functions that are used internally by the
791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * compiler...  (prototypes are not correct though, but that
801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * doesn't really matter since they're not versioned).
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __gcc_bcmp(void);
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __ashldi3(void);
841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __ashrdi3(void);
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __cmpdi2(void);
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __divdi3(void);
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __lshrdi3(void);
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __moddi3(void);
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __muldi3(void);
90402344012ebe696d9353bbf056889ddaaec83079David Howellsextern void __mulll(void);
91402344012ebe696d9353bbf056889ddaaec83079David Howellsextern void __umulll(void);
921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __negdi2(void);
931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __ucmpdi2(void);
941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __udivdi3(void);
951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __udivmoddi4(void);
961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void __umoddi3(void);
971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds        /* gcc lib functions */
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds//EXPORT_SYMBOL(__gcc_bcmp);
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__ashldi3);
1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__ashrdi3);
1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds//EXPORT_SYMBOL(__cmpdi2);
1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds//EXPORT_SYMBOL(__divdi3);
1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__lshrdi3);
1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds//EXPORT_SYMBOL(__moddi3);
1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__muldi3);
107402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__mulll);
108402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__umulll);
1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus TorvaldsEXPORT_SYMBOL(__negdi2);
110402344012ebe696d9353bbf056889ddaaec83079David HowellsEXPORT_SYMBOL(__ucmpdi2);
1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds//EXPORT_SYMBOL(__udivdi3);
1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds//EXPORT_SYMBOL(__udivmoddi4);
1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds//EXPORT_SYMBOL(__umoddi3);
114