diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2009-01-08 19:57:35 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-08 19:57:35 -0500 |
commit | 45536ffc8dcb7798ff4818f54391547e5af19648 (patch) | |
tree | adc72fde5230d5b345ec28be7d9be3c2124c4fb1 /arch/sparc | |
parent | b41418f48c389bad4cd87156792b4a4f24a70729 (diff) |
sparc: Create a new file lib/ksyms.c and add export of all symbols defined in assembler in lib/ to this file.
Remove the duplicate entries from kernel/sparc_ksyms_*.c
The rationale behind this is that the EXPORT_SYMBOL() should be close to
their definition and we cannot add designate a symbol to be exported in
assembler so at least put it in a file in the same directory.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Additions by Julian Calaby:
* Rebased over sparc-2.6.git HEAD
Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/kernel/sparc_ksyms_32.c | 86 | ||||
-rw-r--r-- | arch/sparc/kernel/sparc_ksyms_64.c | 100 | ||||
-rw-r--r-- | arch/sparc/lib/Makefile | 1 | ||||
-rw-r--r-- | arch/sparc/lib/ksyms.c | 196 |
4 files changed, 197 insertions, 186 deletions
diff --git a/arch/sparc/kernel/sparc_ksyms_32.c b/arch/sparc/kernel/sparc_ksyms_32.c index e1e97639231b..f4ee14de8dbe 100644 --- a/arch/sparc/kernel/sparc_ksyms_32.c +++ b/arch/sparc/kernel/sparc_ksyms_32.c | |||
@@ -5,15 +5,12 @@ | |||
5 | * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) | 5 | * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /* Tell string.h we don't want memcpy etc. as cpp defines */ | ||
9 | #define EXPORT_SYMTAB_STROPS | ||
10 | #define PROMLIB_INTERNAL | 8 | #define PROMLIB_INTERNAL |
11 | 9 | ||
12 | #include <linux/module.h> | 10 | #include <linux/module.h> |
13 | #include <linux/init.h> | 11 | #include <linux/init.h> |
14 | #include <linux/smp.h> | 12 | #include <linux/smp.h> |
15 | #include <linux/types.h> | 13 | #include <linux/types.h> |
16 | #include <linux/string.h> | ||
17 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
18 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
19 | #include <linux/in6.h> | 16 | #include <linux/in6.h> |
@@ -55,57 +52,14 @@ struct poll { | |||
55 | short revents; | 52 | short revents; |
56 | }; | 53 | }; |
57 | 54 | ||
58 | extern void (*__copy_1page)(void *, const void *); | ||
59 | extern void __memmove(void *, const void *, __kernel_size_t); | ||
60 | extern void (*bzero_1page)(void *); | ||
61 | extern void *__bzero(void *, size_t); | ||
62 | extern void *__memscan_zero(void *, size_t); | ||
63 | extern void *__memscan_generic(void *, int, size_t); | ||
64 | extern int __strncmp(const char *, const char *, __kernel_size_t); | ||
65 | |||
66 | extern int __ashrdi3(int, int); | ||
67 | extern int __ashldi3(int, int); | ||
68 | extern int __lshrdi3(int, int); | ||
69 | extern int __muldi3(int, int); | ||
70 | extern int __divdi3(int, int); | ||
71 | |||
72 | /* Private functions with odd calling conventions. */ | ||
73 | extern void ___atomic24_add(void); | ||
74 | extern void ___atomic24_sub(void); | ||
75 | extern void ___rw_read_enter(void); | ||
76 | extern void ___rw_read_try(void); | ||
77 | extern void ___rw_read_exit(void); | ||
78 | extern void ___rw_write_enter(void); | ||
79 | |||
80 | /* Alias functions whose names begin with "." and export the aliases. | ||
81 | * The module references will be fixed up by module_frob_arch_sections. | ||
82 | */ | ||
83 | extern int _Div(int, int); | ||
84 | extern int _Mul(int, int); | ||
85 | extern int _Rem(int, int); | ||
86 | extern unsigned _Udiv(unsigned, unsigned); | ||
87 | extern unsigned _Umul(unsigned, unsigned); | ||
88 | extern unsigned _Urem(unsigned, unsigned); | ||
89 | |||
90 | /* used by various drivers */ | 55 | /* used by various drivers */ |
91 | EXPORT_SYMBOL(sparc_cpu_model); | 56 | EXPORT_SYMBOL(sparc_cpu_model); |
92 | EXPORT_SYMBOL(kernel_thread); | 57 | EXPORT_SYMBOL(kernel_thread); |
93 | #ifdef CONFIG_SMP | ||
94 | // XXX find what uses (or used) these. AV: see asm/spinlock.h | ||
95 | EXPORT_SYMBOL(___rw_read_enter); | ||
96 | EXPORT_SYMBOL(___rw_read_try); | ||
97 | EXPORT_SYMBOL(___rw_read_exit); | ||
98 | EXPORT_SYMBOL(___rw_write_enter); | ||
99 | #endif | ||
100 | 58 | ||
101 | EXPORT_SYMBOL(sparc_valid_addr_bitmap); | 59 | EXPORT_SYMBOL(sparc_valid_addr_bitmap); |
102 | EXPORT_SYMBOL(phys_base); | 60 | EXPORT_SYMBOL(phys_base); |
103 | EXPORT_SYMBOL(pfn_base); | 61 | EXPORT_SYMBOL(pfn_base); |
104 | 62 | ||
105 | /* Atomic operations. */ | ||
106 | EXPORT_SYMBOL(___atomic24_add); | ||
107 | EXPORT_SYMBOL(___atomic24_sub); | ||
108 | |||
109 | /* Per-CPU information table */ | 63 | /* Per-CPU information table */ |
110 | EXPORT_PER_CPU_SYMBOL(__cpu_data); | 64 | EXPORT_PER_CPU_SYMBOL(__cpu_data); |
111 | 65 | ||
@@ -193,31 +147,8 @@ EXPORT_SYMBOL(__prom_getchild); | |||
193 | EXPORT_SYMBOL(__prom_getsibling); | 147 | EXPORT_SYMBOL(__prom_getsibling); |
194 | 148 | ||
195 | /* sparc library symbols */ | 149 | /* sparc library symbols */ |
196 | EXPORT_SYMBOL(memscan); | ||
197 | EXPORT_SYMBOL(strlen); | ||
198 | EXPORT_SYMBOL(strncmp); | ||
199 | EXPORT_SYMBOL(page_kernel); | 150 | EXPORT_SYMBOL(page_kernel); |
200 | 151 | ||
201 | /* Special internal versions of library functions. */ | ||
202 | EXPORT_SYMBOL(__copy_1page); | ||
203 | EXPORT_SYMBOL(__memcpy); | ||
204 | EXPORT_SYMBOL(__memset); | ||
205 | EXPORT_SYMBOL(bzero_1page); | ||
206 | EXPORT_SYMBOL(__bzero); | ||
207 | EXPORT_SYMBOL(__memscan_zero); | ||
208 | EXPORT_SYMBOL(__memscan_generic); | ||
209 | EXPORT_SYMBOL(__strncmp); | ||
210 | EXPORT_SYMBOL(__memmove); | ||
211 | |||
212 | /* Moving data to/from userspace. */ | ||
213 | EXPORT_SYMBOL(__copy_user); | ||
214 | EXPORT_SYMBOL(__strncpy_from_user); | ||
215 | EXPORT_SYMBOL(__strnlen_user); | ||
216 | |||
217 | /* Networking helper routines. */ | ||
218 | EXPORT_SYMBOL(__csum_partial_copy_sparc_generic); | ||
219 | EXPORT_SYMBOL(csum_partial); | ||
220 | |||
221 | /* Cache flushing. */ | 152 | /* Cache flushing. */ |
222 | EXPORT_SYMBOL(sparc_flush_page_to_ram); | 153 | EXPORT_SYMBOL(sparc_flush_page_to_ram); |
223 | 154 | ||
@@ -226,23 +157,6 @@ EXPORT_SYMBOL(sun_do_break); | |||
226 | 157 | ||
227 | EXPORT_SYMBOL(__ret_efault); | 158 | EXPORT_SYMBOL(__ret_efault); |
228 | 159 | ||
229 | EXPORT_SYMBOL(memcmp); | ||
230 | EXPORT_SYMBOL(memcpy); | ||
231 | EXPORT_SYMBOL(memset); | ||
232 | EXPORT_SYMBOL(memmove); | ||
233 | EXPORT_SYMBOL(__ashrdi3); | ||
234 | EXPORT_SYMBOL(__ashldi3); | ||
235 | EXPORT_SYMBOL(__lshrdi3); | ||
236 | EXPORT_SYMBOL(__muldi3); | ||
237 | EXPORT_SYMBOL(__divdi3); | ||
238 | |||
239 | EXPORT_SYMBOL(_Rem); | ||
240 | EXPORT_SYMBOL(_Urem); | ||
241 | EXPORT_SYMBOL(_Mul); | ||
242 | EXPORT_SYMBOL(_Umul); | ||
243 | EXPORT_SYMBOL(_Div); | ||
244 | EXPORT_SYMBOL(_Udiv); | ||
245 | |||
246 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 160 | #ifdef CONFIG_DEBUG_BUGVERBOSE |
247 | EXPORT_SYMBOL(do_BUG); | 161 | EXPORT_SYMBOL(do_BUG); |
248 | #endif | 162 | #endif |
diff --git a/arch/sparc/kernel/sparc_ksyms_64.c b/arch/sparc/kernel/sparc_ksyms_64.c index 0133211ab634..09874eaf0fb6 100644 --- a/arch/sparc/kernel/sparc_ksyms_64.c +++ b/arch/sparc/kernel/sparc_ksyms_64.c | |||
@@ -5,13 +5,10 @@ | |||
5 | * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) | 5 | * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /* Tell string.h we don't want memcpy etc. as cpp defines */ | ||
9 | #define EXPORT_SYMTAB_STROPS | ||
10 | #define PROMLIB_INTERNAL | 8 | #define PROMLIB_INTERNAL |
11 | 9 | ||
12 | #include <linux/module.h> | 10 | #include <linux/module.h> |
13 | #include <linux/types.h> | 11 | #include <linux/types.h> |
14 | #include <linux/string.h> | ||
15 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
16 | #include <linux/in6.h> | 13 | #include <linux/in6.h> |
17 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
@@ -59,10 +56,6 @@ struct poll { | |||
59 | 56 | ||
60 | extern void die_if_kernel(char *str, struct pt_regs *regs); | 57 | extern void die_if_kernel(char *str, struct pt_regs *regs); |
61 | extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); | 58 | extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); |
62 | extern void *__bzero(void *, size_t); | ||
63 | extern void *__memscan_zero(void *, size_t); | ||
64 | extern void *__memscan_generic(void *, int, size_t); | ||
65 | extern __kernel_size_t strlen(const char *); | ||
66 | extern void sys_sigsuspend(void); | 59 | extern void sys_sigsuspend(void); |
67 | extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg); | 60 | extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg); |
68 | extern int (*handle_mathemu)(struct pt_regs *, struct fpustate *); | 61 | extern int (*handle_mathemu)(struct pt_regs *, struct fpustate *); |
@@ -74,22 +67,6 @@ extern int __ashrdi3(int, int); | |||
74 | 67 | ||
75 | extern int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs); | 68 | extern int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs); |
76 | 69 | ||
77 | extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *); | ||
78 | extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *, | ||
79 | unsigned long *); | ||
80 | extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *, | ||
81 | unsigned long *, unsigned long *); | ||
82 | extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *, | ||
83 | unsigned long *, unsigned long *, unsigned long *); | ||
84 | |||
85 | extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *); | ||
86 | extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *, | ||
87 | unsigned long *); | ||
88 | extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *, | ||
89 | unsigned long *, unsigned long *); | ||
90 | extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *, | ||
91 | unsigned long *, unsigned long *, unsigned long *); | ||
92 | |||
93 | /* Per-CPU information table */ | 70 | /* Per-CPU information table */ |
94 | EXPORT_PER_CPU_SYMBOL(__cpu_data); | 71 | EXPORT_PER_CPU_SYMBOL(__cpu_data); |
95 | 72 | ||
@@ -103,39 +80,8 @@ EXPORT_SYMBOL(__write_unlock); | |||
103 | EXPORT_SYMBOL(__write_trylock); | 80 | EXPORT_SYMBOL(__write_trylock); |
104 | #endif /* CONFIG_SMP */ | 81 | #endif /* CONFIG_SMP */ |
105 | 82 | ||
106 | #ifdef CONFIG_MCOUNT | ||
107 | EXPORT_SYMBOL(_mcount); | ||
108 | #endif | ||
109 | |||
110 | EXPORT_SYMBOL(sparc64_get_clock_tick); | 83 | EXPORT_SYMBOL(sparc64_get_clock_tick); |
111 | 84 | ||
112 | /* RW semaphores */ | ||
113 | EXPORT_SYMBOL(__down_read); | ||
114 | EXPORT_SYMBOL(__down_read_trylock); | ||
115 | EXPORT_SYMBOL(__down_write); | ||
116 | EXPORT_SYMBOL(__down_write_trylock); | ||
117 | EXPORT_SYMBOL(__up_read); | ||
118 | EXPORT_SYMBOL(__up_write); | ||
119 | EXPORT_SYMBOL(__downgrade_write); | ||
120 | |||
121 | /* Atomic counter implementation. */ | ||
122 | EXPORT_SYMBOL(atomic_add); | ||
123 | EXPORT_SYMBOL(atomic_add_ret); | ||
124 | EXPORT_SYMBOL(atomic_sub); | ||
125 | EXPORT_SYMBOL(atomic_sub_ret); | ||
126 | EXPORT_SYMBOL(atomic64_add); | ||
127 | EXPORT_SYMBOL(atomic64_add_ret); | ||
128 | EXPORT_SYMBOL(atomic64_sub); | ||
129 | EXPORT_SYMBOL(atomic64_sub_ret); | ||
130 | |||
131 | /* Atomic bit operations. */ | ||
132 | EXPORT_SYMBOL(test_and_set_bit); | ||
133 | EXPORT_SYMBOL(test_and_clear_bit); | ||
134 | EXPORT_SYMBOL(test_and_change_bit); | ||
135 | EXPORT_SYMBOL(set_bit); | ||
136 | EXPORT_SYMBOL(clear_bit); | ||
137 | EXPORT_SYMBOL(change_bit); | ||
138 | |||
139 | EXPORT_SYMBOL(__flushw_user); | 85 | EXPORT_SYMBOL(__flushw_user); |
140 | 86 | ||
141 | EXPORT_SYMBOL(tlb_type); | 87 | EXPORT_SYMBOL(tlb_type); |
@@ -209,35 +155,10 @@ EXPORT_SYMBOL(prom_getintdefault); | |||
209 | EXPORT_SYMBOL(__prom_getchild); | 155 | EXPORT_SYMBOL(__prom_getchild); |
210 | EXPORT_SYMBOL(__prom_getsibling); | 156 | EXPORT_SYMBOL(__prom_getsibling); |
211 | 157 | ||
212 | /* sparc library symbols */ | ||
213 | EXPORT_SYMBOL(strlen); | ||
214 | EXPORT_SYMBOL(__strlen_user); | ||
215 | EXPORT_SYMBOL(__strnlen_user); | ||
216 | |||
217 | /* Special internal versions of library functions. */ | ||
218 | EXPORT_SYMBOL(_clear_page); | ||
219 | EXPORT_SYMBOL(clear_user_page); | ||
220 | EXPORT_SYMBOL(copy_user_page); | ||
221 | EXPORT_SYMBOL(__bzero); | ||
222 | EXPORT_SYMBOL(__memscan_zero); | ||
223 | EXPORT_SYMBOL(__memscan_generic); | ||
224 | EXPORT_SYMBOL(__memset); | ||
225 | |||
226 | EXPORT_SYMBOL(csum_partial); | ||
227 | EXPORT_SYMBOL(csum_partial_copy_nocheck); | ||
228 | EXPORT_SYMBOL(__csum_partial_copy_from_user); | ||
229 | EXPORT_SYMBOL(__csum_partial_copy_to_user); | ||
230 | EXPORT_SYMBOL(ip_fast_csum); | ||
231 | |||
232 | /* Moving data to/from/in userspace. */ | 158 | /* Moving data to/from/in userspace. */ |
233 | EXPORT_SYMBOL(___copy_to_user); | ||
234 | EXPORT_SYMBOL(___copy_from_user); | ||
235 | EXPORT_SYMBOL(___copy_in_user); | ||
236 | EXPORT_SYMBOL(copy_to_user_fixup); | 159 | EXPORT_SYMBOL(copy_to_user_fixup); |
237 | EXPORT_SYMBOL(copy_from_user_fixup); | 160 | EXPORT_SYMBOL(copy_from_user_fixup); |
238 | EXPORT_SYMBOL(copy_in_user_fixup); | 161 | EXPORT_SYMBOL(copy_in_user_fixup); |
239 | EXPORT_SYMBOL(__strncpy_from_user); | ||
240 | EXPORT_SYMBOL(__clear_user); | ||
241 | 162 | ||
242 | /* Various address conversion macros use this. */ | 163 | /* Various address conversion macros use this. */ |
243 | EXPORT_SYMBOL(sparc64_valid_addr_bitmap); | 164 | EXPORT_SYMBOL(sparc64_valid_addr_bitmap); |
@@ -247,17 +168,6 @@ EXPORT_SYMBOL(sparc64_valid_addr_bitmap); | |||
247 | */ | 168 | */ |
248 | EXPORT_SYMBOL(__ret_efault); | 169 | EXPORT_SYMBOL(__ret_efault); |
249 | 170 | ||
250 | /* No version information on these, as gcc produces such symbols. */ | ||
251 | EXPORT_SYMBOL(memcmp); | ||
252 | EXPORT_SYMBOL(memcpy); | ||
253 | EXPORT_SYMBOL(memset); | ||
254 | EXPORT_SYMBOL(memmove); | ||
255 | EXPORT_SYMBOL(strncmp); | ||
256 | |||
257 | void VISenter(void); | ||
258 | /* RAID code needs this */ | ||
259 | EXPORT_SYMBOL(VISenter); | ||
260 | |||
261 | /* for input/keybdev */ | 171 | /* for input/keybdev */ |
262 | EXPORT_SYMBOL(sun_do_break); | 172 | EXPORT_SYMBOL(sun_do_break); |
263 | EXPORT_SYMBOL(stop_a_enabled); | 173 | EXPORT_SYMBOL(stop_a_enabled); |
@@ -271,14 +181,4 @@ EXPORT_SYMBOL(ns87303_lock); | |||
271 | 181 | ||
272 | EXPORT_SYMBOL(tick_ops); | 182 | EXPORT_SYMBOL(tick_ops); |
273 | 183 | ||
274 | EXPORT_SYMBOL(xor_vis_2); | ||
275 | EXPORT_SYMBOL(xor_vis_3); | ||
276 | EXPORT_SYMBOL(xor_vis_4); | ||
277 | EXPORT_SYMBOL(xor_vis_5); | ||
278 | |||
279 | EXPORT_SYMBOL(xor_niagara_2); | ||
280 | EXPORT_SYMBOL(xor_niagara_3); | ||
281 | EXPORT_SYMBOL(xor_niagara_4); | ||
282 | EXPORT_SYMBOL(xor_niagara_5); | ||
283 | |||
284 | EXPORT_SYMBOL_GPL(real_hard_smp_processor_id); | 184 | EXPORT_SYMBOL_GPL(real_hard_smp_processor_id); |
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile index 375016e19144..273fc85269fc 100644 --- a/arch/sparc/lib/Makefile +++ b/arch/sparc/lib/Makefile | |||
@@ -42,3 +42,4 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o | |||
42 | 42 | ||
43 | obj-y += iomap.o | 43 | obj-y += iomap.o |
44 | obj-$(CONFIG_SPARC32) += atomic32.o | 44 | obj-$(CONFIG_SPARC32) += atomic32.o |
45 | obj-y += ksyms.o | ||
diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c new file mode 100644 index 000000000000..704b12668388 --- /dev/null +++ b/arch/sparc/lib/ksyms.c | |||
@@ -0,0 +1,196 @@ | |||
1 | /* | ||
2 | * Export of symbols defined in assembler | ||
3 | */ | ||
4 | |||
5 | /* Tell string.h we don't want memcpy etc. as cpp defines */ | ||
6 | #define EXPORT_SYMTAB_STROPS | ||
7 | |||
8 | #include <linux/module.h> | ||
9 | #include <linux/string.h> | ||
10 | #include <linux/types.h> | ||
11 | |||
12 | #include <asm/checksum.h> | ||
13 | #include <asm/uaccess.h> | ||
14 | #include <asm/ftrace.h> | ||
15 | |||
16 | /* string functions */ | ||
17 | EXPORT_SYMBOL(strlen); | ||
18 | EXPORT_SYMBOL(__strlen_user); | ||
19 | EXPORT_SYMBOL(__strnlen_user); | ||
20 | EXPORT_SYMBOL(strncmp); | ||
21 | |||
22 | /* mem* functions */ | ||
23 | extern void *__memscan_zero(void *, size_t); | ||
24 | extern void *__memscan_generic(void *, int, size_t); | ||
25 | extern void *__bzero(void *, size_t); | ||
26 | |||
27 | EXPORT_SYMBOL(memscan); | ||
28 | EXPORT_SYMBOL(__memscan_zero); | ||
29 | EXPORT_SYMBOL(__memscan_generic); | ||
30 | EXPORT_SYMBOL(memcmp); | ||
31 | EXPORT_SYMBOL(memcpy); | ||
32 | EXPORT_SYMBOL(memset); | ||
33 | EXPORT_SYMBOL(__memset); | ||
34 | EXPORT_SYMBOL(memmove); | ||
35 | EXPORT_SYMBOL(__bzero); | ||
36 | |||
37 | /* Moving data to/from/in userspace. */ | ||
38 | EXPORT_SYMBOL(__strncpy_from_user); | ||
39 | |||
40 | /* Networking helper routines. */ | ||
41 | EXPORT_SYMBOL(csum_partial); | ||
42 | |||
43 | #ifdef CONFIG_MCOUNT | ||
44 | EXPORT_SYMBOL(_mcount); | ||
45 | #endif | ||
46 | |||
47 | /* | ||
48 | * sparc | ||
49 | */ | ||
50 | #ifdef CONFIG_SPARC32 | ||
51 | extern int __ashrdi3(int, int); | ||
52 | extern int __ashldi3(int, int); | ||
53 | extern int __lshrdi3(int, int); | ||
54 | extern int __muldi3(int, int); | ||
55 | extern int __divdi3(int, int); | ||
56 | |||
57 | extern void (*__copy_1page)(void *, const void *); | ||
58 | extern void (*bzero_1page)(void *); | ||
59 | |||
60 | extern int __strncmp(const char *, const char *, __kernel_size_t); | ||
61 | |||
62 | extern void ___rw_read_enter(void); | ||
63 | extern void ___rw_read_try(void); | ||
64 | extern void ___rw_read_exit(void); | ||
65 | extern void ___rw_write_enter(void); | ||
66 | extern void ___atomic24_add(void); | ||
67 | extern void ___atomic24_sub(void); | ||
68 | |||
69 | /* Alias functions whose names begin with "." and export the aliases. | ||
70 | * The module references will be fixed up by module_frob_arch_sections. | ||
71 | */ | ||
72 | extern int _Div(int, int); | ||
73 | extern int _Mul(int, int); | ||
74 | extern int _Rem(int, int); | ||
75 | extern unsigned _Udiv(unsigned, unsigned); | ||
76 | extern unsigned _Umul(unsigned, unsigned); | ||
77 | extern unsigned _Urem(unsigned, unsigned); | ||
78 | |||
79 | /* Networking helper routines. */ | ||
80 | EXPORT_SYMBOL(__csum_partial_copy_sparc_generic); | ||
81 | |||
82 | /* Special internal versions of library functions. */ | ||
83 | EXPORT_SYMBOL(__copy_1page); | ||
84 | EXPORT_SYMBOL(__memcpy); | ||
85 | EXPORT_SYMBOL(__memmove); | ||
86 | EXPORT_SYMBOL(bzero_1page); | ||
87 | |||
88 | /* string functions */ | ||
89 | EXPORT_SYMBOL(__strncmp); | ||
90 | |||
91 | /* Moving data to/from/in userspace. */ | ||
92 | EXPORT_SYMBOL(__copy_user); | ||
93 | |||
94 | /* Used by asm/spinlock.h */ | ||
95 | #ifdef CONFIG_SMP | ||
96 | EXPORT_SYMBOL(___rw_read_enter); | ||
97 | EXPORT_SYMBOL(___rw_read_try); | ||
98 | EXPORT_SYMBOL(___rw_read_exit); | ||
99 | EXPORT_SYMBOL(___rw_write_enter); | ||
100 | #endif | ||
101 | |||
102 | /* Atomic operations. */ | ||
103 | EXPORT_SYMBOL(___atomic24_add); | ||
104 | EXPORT_SYMBOL(___atomic24_sub); | ||
105 | |||
106 | EXPORT_SYMBOL(__ashrdi3); | ||
107 | EXPORT_SYMBOL(__ashldi3); | ||
108 | EXPORT_SYMBOL(__lshrdi3); | ||
109 | EXPORT_SYMBOL(__muldi3); | ||
110 | EXPORT_SYMBOL(__divdi3); | ||
111 | |||
112 | EXPORT_SYMBOL(_Rem); | ||
113 | EXPORT_SYMBOL(_Urem); | ||
114 | EXPORT_SYMBOL(_Mul); | ||
115 | EXPORT_SYMBOL(_Umul); | ||
116 | EXPORT_SYMBOL(_Div); | ||
117 | EXPORT_SYMBOL(_Udiv); | ||
118 | #endif | ||
119 | |||
120 | /* | ||
121 | * sparc64 | ||
122 | */ | ||
123 | #ifdef CONFIG_SPARC64 | ||
124 | /* Networking helper routines. */ | ||
125 | EXPORT_SYMBOL(csum_partial_copy_nocheck); | ||
126 | EXPORT_SYMBOL(__csum_partial_copy_from_user); | ||
127 | EXPORT_SYMBOL(__csum_partial_copy_to_user); | ||
128 | EXPORT_SYMBOL(ip_fast_csum); | ||
129 | |||
130 | /* Moving data to/from/in userspace. */ | ||
131 | EXPORT_SYMBOL(___copy_to_user); | ||
132 | EXPORT_SYMBOL(___copy_from_user); | ||
133 | EXPORT_SYMBOL(___copy_in_user); | ||
134 | EXPORT_SYMBOL(__clear_user); | ||
135 | |||
136 | /* RW semaphores */ | ||
137 | EXPORT_SYMBOL(__down_read); | ||
138 | EXPORT_SYMBOL(__down_read_trylock); | ||
139 | EXPORT_SYMBOL(__down_write); | ||
140 | EXPORT_SYMBOL(__down_write_trylock); | ||
141 | EXPORT_SYMBOL(__up_read); | ||
142 | EXPORT_SYMBOL(__up_write); | ||
143 | EXPORT_SYMBOL(__downgrade_write); | ||
144 | |||
145 | /* Atomic counter implementation. */ | ||
146 | EXPORT_SYMBOL(atomic_add); | ||
147 | EXPORT_SYMBOL(atomic_add_ret); | ||
148 | EXPORT_SYMBOL(atomic_sub); | ||
149 | EXPORT_SYMBOL(atomic_sub_ret); | ||
150 | EXPORT_SYMBOL(atomic64_add); | ||
151 | EXPORT_SYMBOL(atomic64_add_ret); | ||
152 | EXPORT_SYMBOL(atomic64_sub); | ||
153 | EXPORT_SYMBOL(atomic64_sub_ret); | ||
154 | |||
155 | /* Atomic bit operations. */ | ||
156 | EXPORT_SYMBOL(test_and_set_bit); | ||
157 | EXPORT_SYMBOL(test_and_clear_bit); | ||
158 | EXPORT_SYMBOL(test_and_change_bit); | ||
159 | EXPORT_SYMBOL(set_bit); | ||
160 | EXPORT_SYMBOL(clear_bit); | ||
161 | EXPORT_SYMBOL(change_bit); | ||
162 | |||
163 | /* Special internal versions of library functions. */ | ||
164 | EXPORT_SYMBOL(_clear_page); | ||
165 | EXPORT_SYMBOL(clear_user_page); | ||
166 | EXPORT_SYMBOL(copy_user_page); | ||
167 | |||
168 | /* RAID code needs this */ | ||
169 | void VISenter(void); | ||
170 | EXPORT_SYMBOL(VISenter); | ||
171 | |||
172 | extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *); | ||
173 | extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *, | ||
174 | unsigned long *); | ||
175 | extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *, | ||
176 | unsigned long *, unsigned long *); | ||
177 | extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *, | ||
178 | unsigned long *, unsigned long *, unsigned long *); | ||
179 | EXPORT_SYMBOL(xor_vis_2); | ||
180 | EXPORT_SYMBOL(xor_vis_3); | ||
181 | EXPORT_SYMBOL(xor_vis_4); | ||
182 | EXPORT_SYMBOL(xor_vis_5); | ||
183 | |||
184 | extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *); | ||
185 | extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *, | ||
186 | unsigned long *); | ||
187 | extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *, | ||
188 | unsigned long *, unsigned long *); | ||
189 | extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *, | ||
190 | unsigned long *, unsigned long *, unsigned long *); | ||
191 | |||
192 | EXPORT_SYMBOL(xor_niagara_2); | ||
193 | EXPORT_SYMBOL(xor_niagara_3); | ||
194 | EXPORT_SYMBOL(xor_niagara_4); | ||
195 | EXPORT_SYMBOL(xor_niagara_5); | ||
196 | #endif | ||