Commit | Line | Data |
---|---|---|
45536ffc SR |
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); | |
45536ffc SR |
33 | EXPORT_SYMBOL(memmove); |
34 | EXPORT_SYMBOL(__bzero); | |
35 | ||
36 | /* Moving data to/from/in userspace. */ | |
37 | EXPORT_SYMBOL(__strncpy_from_user); | |
38 | ||
39 | /* Networking helper routines. */ | |
40 | EXPORT_SYMBOL(csum_partial); | |
41 | ||
42 | #ifdef CONFIG_MCOUNT | |
43 | EXPORT_SYMBOL(_mcount); | |
44 | #endif | |
45 | ||
46 | /* | |
47 | * sparc | |
48 | */ | |
49 | #ifdef CONFIG_SPARC32 | |
50 | extern int __ashrdi3(int, int); | |
51 | extern int __ashldi3(int, int); | |
52 | extern int __lshrdi3(int, int); | |
53 | extern int __muldi3(int, int); | |
54 | extern int __divdi3(int, int); | |
55 | ||
56 | extern void (*__copy_1page)(void *, const void *); | |
57 | extern void (*bzero_1page)(void *); | |
58 | ||
59 | extern int __strncmp(const char *, const char *, __kernel_size_t); | |
60 | ||
61 | extern void ___rw_read_enter(void); | |
62 | extern void ___rw_read_try(void); | |
63 | extern void ___rw_read_exit(void); | |
64 | extern void ___rw_write_enter(void); | |
65 | extern void ___atomic24_add(void); | |
66 | extern void ___atomic24_sub(void); | |
67 | ||
68 | /* Alias functions whose names begin with "." and export the aliases. | |
69 | * The module references will be fixed up by module_frob_arch_sections. | |
70 | */ | |
71 | extern int _Div(int, int); | |
72 | extern int _Mul(int, int); | |
73 | extern int _Rem(int, int); | |
74 | extern unsigned _Udiv(unsigned, unsigned); | |
75 | extern unsigned _Umul(unsigned, unsigned); | |
76 | extern unsigned _Urem(unsigned, unsigned); | |
77 | ||
78 | /* Networking helper routines. */ | |
79 | EXPORT_SYMBOL(__csum_partial_copy_sparc_generic); | |
80 | ||
81 | /* Special internal versions of library functions. */ | |
82 | EXPORT_SYMBOL(__copy_1page); | |
45536ffc SR |
83 | EXPORT_SYMBOL(__memmove); |
84 | EXPORT_SYMBOL(bzero_1page); | |
85 | ||
86 | /* string functions */ | |
87 | EXPORT_SYMBOL(__strncmp); | |
88 | ||
89 | /* Moving data to/from/in userspace. */ | |
90 | EXPORT_SYMBOL(__copy_user); | |
91 | ||
92 | /* Used by asm/spinlock.h */ | |
93 | #ifdef CONFIG_SMP | |
94 | EXPORT_SYMBOL(___rw_read_enter); | |
95 | EXPORT_SYMBOL(___rw_read_try); | |
96 | EXPORT_SYMBOL(___rw_read_exit); | |
97 | EXPORT_SYMBOL(___rw_write_enter); | |
98 | #endif | |
99 | ||
100 | /* Atomic operations. */ | |
101 | EXPORT_SYMBOL(___atomic24_add); | |
102 | EXPORT_SYMBOL(___atomic24_sub); | |
103 | ||
104 | EXPORT_SYMBOL(__ashrdi3); | |
105 | EXPORT_SYMBOL(__ashldi3); | |
106 | EXPORT_SYMBOL(__lshrdi3); | |
107 | EXPORT_SYMBOL(__muldi3); | |
108 | EXPORT_SYMBOL(__divdi3); | |
109 | ||
110 | EXPORT_SYMBOL(_Rem); | |
111 | EXPORT_SYMBOL(_Urem); | |
112 | EXPORT_SYMBOL(_Mul); | |
113 | EXPORT_SYMBOL(_Umul); | |
114 | EXPORT_SYMBOL(_Div); | |
115 | EXPORT_SYMBOL(_Udiv); | |
116 | #endif | |
117 | ||
118 | /* | |
119 | * sparc64 | |
120 | */ | |
121 | #ifdef CONFIG_SPARC64 | |
122 | /* Networking helper routines. */ | |
123 | EXPORT_SYMBOL(csum_partial_copy_nocheck); | |
124 | EXPORT_SYMBOL(__csum_partial_copy_from_user); | |
125 | EXPORT_SYMBOL(__csum_partial_copy_to_user); | |
126 | EXPORT_SYMBOL(ip_fast_csum); | |
127 | ||
128 | /* Moving data to/from/in userspace. */ | |
129 | EXPORT_SYMBOL(___copy_to_user); | |
130 | EXPORT_SYMBOL(___copy_from_user); | |
131 | EXPORT_SYMBOL(___copy_in_user); | |
132 | EXPORT_SYMBOL(__clear_user); | |
133 | ||
134 | /* RW semaphores */ | |
135 | EXPORT_SYMBOL(__down_read); | |
136 | EXPORT_SYMBOL(__down_read_trylock); | |
137 | EXPORT_SYMBOL(__down_write); | |
138 | EXPORT_SYMBOL(__down_write_trylock); | |
139 | EXPORT_SYMBOL(__up_read); | |
140 | EXPORT_SYMBOL(__up_write); | |
141 | EXPORT_SYMBOL(__downgrade_write); | |
142 | ||
143 | /* Atomic counter implementation. */ | |
144 | EXPORT_SYMBOL(atomic_add); | |
145 | EXPORT_SYMBOL(atomic_add_ret); | |
146 | EXPORT_SYMBOL(atomic_sub); | |
147 | EXPORT_SYMBOL(atomic_sub_ret); | |
148 | EXPORT_SYMBOL(atomic64_add); | |
149 | EXPORT_SYMBOL(atomic64_add_ret); | |
150 | EXPORT_SYMBOL(atomic64_sub); | |
151 | EXPORT_SYMBOL(atomic64_sub_ret); | |
152 | ||
153 | /* Atomic bit operations. */ | |
154 | EXPORT_SYMBOL(test_and_set_bit); | |
155 | EXPORT_SYMBOL(test_and_clear_bit); | |
156 | EXPORT_SYMBOL(test_and_change_bit); | |
157 | EXPORT_SYMBOL(set_bit); | |
158 | EXPORT_SYMBOL(clear_bit); | |
159 | EXPORT_SYMBOL(change_bit); | |
160 | ||
161 | /* Special internal versions of library functions. */ | |
162 | EXPORT_SYMBOL(_clear_page); | |
163 | EXPORT_SYMBOL(clear_user_page); | |
164 | EXPORT_SYMBOL(copy_user_page); | |
165 | ||
166 | /* RAID code needs this */ | |
167 | void VISenter(void); | |
168 | EXPORT_SYMBOL(VISenter); | |
169 | ||
170 | extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *); | |
171 | extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *, | |
172 | unsigned long *); | |
173 | extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *, | |
174 | unsigned long *, unsigned long *); | |
175 | extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *, | |
176 | unsigned long *, unsigned long *, unsigned long *); | |
177 | EXPORT_SYMBOL(xor_vis_2); | |
178 | EXPORT_SYMBOL(xor_vis_3); | |
179 | EXPORT_SYMBOL(xor_vis_4); | |
180 | EXPORT_SYMBOL(xor_vis_5); | |
181 | ||
182 | extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *); | |
183 | extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *, | |
184 | unsigned long *); | |
185 | extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *, | |
186 | unsigned long *, unsigned long *); | |
187 | extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *, | |
188 | unsigned long *, unsigned long *, unsigned long *); | |
189 | ||
190 | EXPORT_SYMBOL(xor_niagara_2); | |
191 | EXPORT_SYMBOL(xor_niagara_3); | |
192 | EXPORT_SYMBOL(xor_niagara_4); | |
193 | EXPORT_SYMBOL(xor_niagara_5); | |
194 | #endif |