branch Attitude Adjustment
[12.09/openwrt.git] / target / linux / ubicom32 / files / arch / ubicom32 / kernel / ubicom32_ksyms.c
1 /*
2  * arch/ubicom32/kernel/ubicom32_ksyms.c
3  *   Ubicom32 architecture compiler support and misc symbols.
4  *
5  * (C) Copyright 2009, Ubicom, Inc.
6  *
7  * This file is part of the Ubicom32 Linux Kernel Port.
8  *
9  * The Ubicom32 Linux Kernel Port is free software: you can redistribute
10  * it and/or modify it under the terms of the GNU General Public License
11  * as published by the Free Software Foundation, either version 2 of the
12  * License, or (at your option) any later version.
13  *
14  * The Ubicom32 Linux Kernel Port is distributed in the hope that it
15  * will be useful, but WITHOUT ANY WARRANTY; without even the implied
16  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
17  * the GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with the Ubicom32 Linux Kernel Port.  If not,
21  * see <http://www.gnu.org/licenses/>.
22  *
23  * Ubicom32 implementation derived from (with many thanks):
24  *   arch/m68knommu
25  *   arch/blackfin
26  *   arch/parisc
27  */
28 #include <linux/module.h>
29 #include <linux/linkage.h>
30 #include <linux/sched.h>
31 #include <linux/string.h>
32 #include <linux/mm.h>
33 #include <linux/user.h>
34 #include <linux/elfcore.h>
35 #include <linux/in6.h>
36 #include <linux/interrupt.h>
37 #include <linux/io.h>
38 #include <linux/semaphore.h>
39
40 #include <asm/setup.h>
41 #include <asm/machdep.h>
42 #include <asm/pgalloc.h>
43 #include <asm/irq.h>
44 #include <asm/checksum.h>
45 #include <asm/current.h>
46
47 /* platform dependent support */
48
49 EXPORT_SYMBOL(__ioremap);
50 EXPORT_SYMBOL(iounmap);
51
52 EXPORT_SYMBOL(ip_fast_csum);
53
54
55 /* Networking helper routines. */
56 EXPORT_SYMBOL(csum_partial_copy_nocheck);
57
58 /* The following are special because they're not called
59    explicitly (the C compiler generates them).  Fortunately,
60    their interface isn't gonna change any time soon now, so
61    it's OK to leave it out of version control.  */
62 EXPORT_SYMBOL(memcpy);
63 EXPORT_SYMBOL(memset);
64 EXPORT_SYMBOL(memmove);
65
66 #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __GNUC__ > 4
67 /*
68  * libgcc functions - functions that are used internally by the
69  * compiler...  (prototypes are not correct though, but that
70  * doesn't really matter since they're not versioned).
71  */
72 extern void __ashldi3(void);
73 extern void __ashrdi3(void);
74 extern void __divsi3(void);
75 extern void __divdi3(void);
76 extern void __lshrdi3(void);
77 extern void __modsi3(void);
78 extern void __muldi3(void);
79 extern void __udivsi3(void);
80 extern void __umodsi3(void);
81
82 /* gcc lib functions */
83 EXPORT_SYMBOL(__ashldi3);
84 EXPORT_SYMBOL(__ashrdi3);
85 EXPORT_SYMBOL(__divsi3);
86 EXPORT_SYMBOL(__divdi3);
87 EXPORT_SYMBOL(__lshrdi3);
88 EXPORT_SYMBOL(__modsi3);
89 EXPORT_SYMBOL(__muldi3);
90 EXPORT_SYMBOL(__udivsi3);
91 EXPORT_SYMBOL(__umodsi3);
92 #else
93 extern void __libgcc_udivmodsi(void);
94 extern void __libgcc_divmodsi(void);
95
96 EXPORT_SYMBOL(__libgcc_udivmodsi);
97 EXPORT_SYMBOL(__libgcc_divmodsi);
98 #endif