Update contrib.
1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "ARM EABI LICENCE.txt"
5 // which accompanies this distribution, and is available
6 // in kernel/eka/compsupp.
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 extern char * _ZTVN10__cxxabiv123__fundamental_type_infoE;
17 extern const char * const $Sub$$_ZTSv = "v";
20 // This function is simple a way to get these EXPORT statements into
21 // the .in file. These symbols will therefore be referenced from
22 // the export table and so **forced** into the DLL
23 __asm void __rt_exporter_dummy(void)
25 EXTERN _ZTVN10__cxxabiv123__fundamental_type_infoE
29 DCD _ZTVN10__cxxabiv123__fundamental_type_infoE
32 AREA |.directive|, READONLY, NOALLOC
37 // Long long functions
38 DCB "EXPORT __aeabi_lmul\n"
39 DCB "EXPORT __aeabi_ldivmod\n"
40 DCB "EXPORT __aeabi_uldivmod\n"
41 DCB "EXPORT __aeabi_llsl\n"
42 DCB "EXPORT __aeabi_llsr\n"
43 DCB "EXPORT __aeabi_lasr\n"
44 DCB "EXPORT __aeabi_lcmp\n"
45 DCB "EXPORT __aeabi_ulcmp\n"
47 // Integer division functions
48 DCB "EXPORT __aeabi_idiv\n"
49 DCB "EXPORT __aeabi_uidiv\n"
51 // Integer (32/32 . 32) division functions
52 DCB "EXPORT __aeabi_idivmod\n"
53 DCB "EXPORT __aeabi_uidivmod\n"
56 // SIGFPE not supported on SymbianOS
57 // Implemented in rtdiv0.cpp
58 DCB "EXPORT __aeabi_idiv0\n"
59 DCB "EXPORT __aeabi_ldiv0\n"
61 // Unaligned memory access
62 DCB "EXPORT __aeabi_uread4\n"
63 DCB "EXPORT __aeabi_uwrite4\n"
64 DCB "EXPORT __aeabi_uread8\n"
65 DCB "EXPORT __aeabi_uwrite8\n"
67 // Memory copying, clearing, and setting
68 // we may want to override the toolchain supplied versions of these (or not)
69 DCB "EXPORT __aeabi_memcpy8\n"
70 DCB "EXPORT __aeabi_memcpy4\n"
71 DCB "EXPORT __aeabi_memcpy\n"
72 DCB "EXPORT __aeabi_memmove8\n"
73 DCB "EXPORT __aeabi_memmove4\n"
74 DCB "EXPORT __aeabi_memmove\n"
76 DCB "EXPORT __aeabi_memset8\n"
77 DCB "EXPORT __aeabi_memset4\n"
78 DCB "EXPORT __aeabi_memset\n"
79 DCB "EXPORT __aeabi_memclr8\n"
80 DCB "EXPORT __aeabi_memclr4\n"
81 DCB "EXPORT __aeabi_memclr\n"
83 // C++ helper functions
86 DCB "EXPORT __cxa_pure_virtual\n"
88 // One-time construction API
89 DCB "EXPORT __cxa_guard_acquire\n"
90 DCB "EXPORT __cxa_guard_release\n"
91 DCB "EXPORT __cxa_guard_abort\n"
93 // Construction and destruction of arrays
95 // Helper functions defined by the generic C++ ABI
96 DCB "EXPORT __cxa_vec_new\n"
97 DCB "EXPORT __cxa_vec_new2\n"
98 DCB "EXPORT __cxa_vec_new3\n"
99 DCB "EXPORT __cxa_vec_ctor\n"
100 DCB "EXPORT __cxa_vec_dtor\n"
101 DCB "EXPORT __cxa_vec_cleanup\n"
102 DCB "EXPORT __cxa_vec_delete\n"
103 DCB "EXPORT __cxa_vec_delete2\n"
104 DCB "EXPORT __cxa_vec_delete3\n"
105 DCB "EXPORT __cxa_vec_cctor\n"
107 // Helper functions defined by the C++ ABI for the ARM Architecture
108 DCB "EXPORT __aeabi_vec_ctor_nocookie_nodtor\n"
109 DCB "EXPORT __aeabi_vec_ctor_cookie_nodtor\n"
110 DCB "EXPORT __aeabi_vec_cctor_nocookie_nodtor\n"
111 DCB "EXPORT __aeabi_vec_new_cookie_noctor\n"
112 DCB "EXPORT __aeabi_vec_new_nocookie\n"
113 DCB "EXPORT __aeabi_vec_new_cookie_nodtor\n"
114 DCB "EXPORT __aeabi_vec_new_cookie\n"
115 DCB "EXPORT __aeabi_vec_dtor\n"
116 DCB "EXPORT __aeabi_vec_dtor_cookie\n"
117 DCB "EXPORT __aeabi_vec_delete\n"
118 DCB "EXPORT __aeabi_vec_delete3\n"
119 DCB "EXPORT __aeabi_vec_delete3_nodtor\n"
121 // Object finalization
122 // these need SymbianOS specific implementations
123 // implemented in ucppfini.cpp
124 // and supplied by usrt.lib
126 DCB "EXPORT __cxa_atexit\n"
127 DCB "EXPORT __aeabi_atexit\n"
128 DCB "EXPORT __cxa_finalize\n"
131 /// Exception Support from here. Not needed by system side code.
132 #ifndef __KERNEL_MODE__
133 // Standard (user-visible) C++ exception related functions
134 DCB "EXPORT _ZSt9terminatev\n"
135 DCB "EXPORT _ZSt10unexpectedv\n"
136 DCB "EXPORT _ZSt18uncaught_exceptionv\n"
137 DCB "EXPORT _ZSt13set_terminatePFvvE\n"
138 DCB "EXPORT _ZSt14set_unexpectedPFvvE\n"
142 // Exception-handling support
143 DCB "EXPORT __cxa_allocate_exception\n"
144 DCB "EXPORT __cxa_free_exception\n"
145 DCB "EXPORT __cxa_throw\n"
146 DCB "EXPORT __cxa_rethrow\n"
147 DCB "EXPORT __cxa_begin_catch\n"
148 DCB "EXPORT __cxa_end_catch\n"
149 DCB "EXPORT __cxa_end_cleanup\n"
151 // personality routines for ARM compact EH entries
152 DCB "EXPORT __aeabi_unwind_cpp_pr0\n"
153 DCB "EXPORT __aeabi_unwind_cpp_pr1\n"
154 DCB "EXPORT __aeabi_unwind_cpp_pr2\n"
156 // Unwinder helper routines
157 DCB "EXPORT _Unwind_VRS_Get\n"
158 DCB "EXPORT _Unwind_VRS_Set\n"
159 DCB "EXPORT _Unwind_VRS_Pop\n"
161 // personality routine helper functions
162 DCB "EXPORT __cxa_begin_cleanup\n"
164 // this needs SymbianOS specific implementation
165 DCB "EXPORT __cxa_type_match\n"
167 // this needs SymbianOS specific implementation
168 DCB "EXPORT __cxa_call_terminate\n"
170 DCB "EXPORT __cxa_call_unexpected\n"
172 // Miscellaneous error handling related to exception processing
173 DCB "EXPORT __cxa_bad_cast\n"
174 DCB "EXPORT __cxa_bad_typeid\n"
177 // this needs SymbianOS specific implementation
178 DCB "EXPORT __cxa_get_globals\n"
180 // this needs SymbianOS specific implementation
181 DCB "EXPORT __cxa_current_exception_type\n"
184 // rtti support from rtti.o
185 DCB "EXPORT __dynamic_cast\n"
186 DCB "EXPORT __get_typeid\n"
187 DCB "EXPORT __ARM_get_typeid\n"
190 DCB "EXPORT _ZNSt9type_infoD1Ev\n"
191 DCB "EXPORT _ZNSt9type_infoD2Ev\n"
192 DCB "EXPORT _ZNSt9type_infoD0Ev\n"
193 DCB "EXPORT _ZNKSt9type_info4nameEv\n"
194 DCB "EXPORT _ZNKSt9type_infoeqERKS_\n"
195 DCB "EXPORT _ZNKSt9type_infoneERKS_\n"
196 DCB "EXPORT _ZNKSt9type_info6beforeERKS_\n"
197 DCB "EXPORT _ZNSt8bad_castC1Ev\n"
198 DCB "EXPORT _ZNSt8bad_castC2Ev\n"
199 DCB "EXPORT _ZNSt8bad_castC1ERKS_\n"
200 DCB "EXPORT _ZNSt8bad_castC2ERKS_\n"
201 DCB "EXPORT _ZNSt8bad_castaSERKS_\n"
202 DCB "EXPORT _ZNSt8bad_castD1Ev\n"
203 DCB "EXPORT _ZNSt8bad_castD2Ev\n"
204 DCB "EXPORT _ZNSt8bad_castD0Ev\n"
205 DCB "EXPORT _ZNKSt8bad_cast4whatEv\n"
206 DCB "EXPORT _ZNSt10bad_typeidC1Ev\n"
207 DCB "EXPORT _ZNSt10bad_typeidC2Ev\n"
208 DCB "EXPORT _ZNSt10bad_typeidC1ERKS_\n"
209 DCB "EXPORT _ZNSt10bad_typeidC2ERKS_\n"
210 DCB "EXPORT _ZNSt10bad_typeidaSERKS_\n"
211 DCB "EXPORT _ZNSt10bad_typeidD1Ev\n"
212 DCB "EXPORT _ZNSt10bad_typeidD2Ev\n"
213 DCB "EXPORT _ZNSt10bad_typeidD0Ev\n"
214 DCB "EXPORT _ZNKSt10bad_typeid4whatEv\n"
215 DCB "EXPORT _ZN10__cxxabiv123__fundamental_type_infoD1Ev\n"
216 DCB "EXPORT _ZN10__cxxabiv123__fundamental_type_infoD2Ev\n"
217 DCB "EXPORT _ZN10__cxxabiv123__fundamental_type_infoD0Ev\n"
218 DCB "EXPORT _ZN10__cxxabiv117__array_type_infoD1Ev\n"
219 DCB "EXPORT _ZN10__cxxabiv117__array_type_infoD2Ev\n"
220 DCB "EXPORT _ZN10__cxxabiv117__array_type_infoD0Ev\n"
221 DCB "EXPORT _ZN10__cxxabiv120__function_type_infoD1Ev\n"
222 DCB "EXPORT _ZN10__cxxabiv120__function_type_infoD2Ev\n"
223 DCB "EXPORT _ZN10__cxxabiv120__function_type_infoD0Ev\n"
224 DCB "EXPORT _ZN10__cxxabiv116__enum_type_infoD1Ev\n"
225 DCB "EXPORT _ZN10__cxxabiv116__enum_type_infoD2Ev\n"
226 DCB "EXPORT _ZN10__cxxabiv116__enum_type_infoD0Ev\n"
227 DCB "EXPORT _ZN10__cxxabiv117__class_type_infoD1Ev\n"
228 DCB "EXPORT _ZN10__cxxabiv117__class_type_infoD2Ev\n"
229 DCB "EXPORT _ZN10__cxxabiv117__class_type_infoD0Ev\n"
230 DCB "EXPORT _ZN10__cxxabiv120__si_class_type_infoD1Ev\n"
231 DCB "EXPORT _ZN10__cxxabiv120__si_class_type_infoD2Ev\n"
232 DCB "EXPORT _ZN10__cxxabiv120__si_class_type_infoD0Ev\n"
233 DCB "EXPORT _ZN10__cxxabiv121__vmi_class_type_infoD1Ev\n"
234 DCB "EXPORT _ZN10__cxxabiv121__vmi_class_type_infoD2Ev\n"
235 DCB "EXPORT _ZN10__cxxabiv121__vmi_class_type_infoD0Ev\n"
236 DCB "EXPORT _ZN10__cxxabiv117__pbase_type_infoD1Ev\n"
237 DCB "EXPORT _ZN10__cxxabiv117__pbase_type_infoD2Ev\n"
238 DCB "EXPORT _ZN10__cxxabiv117__pbase_type_infoD0Ev\n"
239 DCB "EXPORT _ZN10__cxxabiv119__pointer_type_infoD1Ev\n"
240 DCB "EXPORT _ZN10__cxxabiv119__pointer_type_infoD2Ev\n"
241 DCB "EXPORT _ZN10__cxxabiv119__pointer_type_infoD0Ev\n"
242 DCB "EXPORT _ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev\n"
243 DCB "EXPORT _ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev\n"
244 DCB "EXPORT _ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev\n"
245 DCB "EXPORT _ZSt21__gen_dummy_typeinfosv\n"
246 DCB "EXPORT _ZTVSt9type_info\n"
247 DCB "EXPORT _ZTVSt8bad_cast\n"
248 DCB "EXPORT _ZTVSt10bad_typeid\n"
250 DCB "EXPORT _ZTVN10__cxxabiv123__fundamental_type_infoE\n"
251 DCB "EXPORT _ZTIPv\n"
252 DCB "EXPORT _ZTVN10__cxxabiv119__pointer_type_infoE\n"
253 DCB "EXPORT _ZTIPKv\n"
255 DCB "EXPORT _ZTIPb\n"
256 DCB "EXPORT _ZTIPKb\n"
258 DCB "EXPORT _ZTIPw\n"
259 DCB "EXPORT _ZTIPKw\n"
261 DCB "EXPORT _ZTIPc\n"
262 DCB "EXPORT _ZTIPKc\n"
264 DCB "EXPORT _ZTIPa\n"
265 DCB "EXPORT _ZTIPKa\n"
267 DCB "EXPORT _ZTIPh\n"
268 DCB "EXPORT _ZTIPKh\n"
270 DCB "EXPORT _ZTIPs\n"
271 DCB "EXPORT _ZTIPKs\n"
273 DCB "EXPORT _ZTIPt\n"
274 DCB "EXPORT _ZTIPKt\n"
276 DCB "EXPORT _ZTIPi\n"
277 DCB "EXPORT _ZTIPKi\n"
279 DCB "EXPORT _ZTIPj\n"
280 DCB "EXPORT _ZTIPKj\n"
282 DCB "EXPORT _ZTIPl\n"
283 DCB "EXPORT _ZTIPKl\n"
285 DCB "EXPORT _ZTIPm\n"
286 DCB "EXPORT _ZTIPKm\n"
288 DCB "EXPORT _ZTIPx\n"
289 DCB "EXPORT _ZTIPKx\n"
291 DCB "EXPORT _ZTIPy\n"
292 DCB "EXPORT _ZTIPKy\n"
294 DCB "EXPORT _ZTIPf\n"
295 DCB "EXPORT _ZTIPKf\n"
297 DCB "EXPORT _ZTIPd\n"
298 DCB "EXPORT _ZTIPKd\n"
300 DCB "EXPORT _ZTIPe\n"
301 DCB "EXPORT _ZTIPKe\n"
302 DCB "EXPORT _ZTVN10__cxxabiv117__array_type_infoE\n"
303 DCB "EXPORT _ZTVN10__cxxabiv120__function_type_infoE\n"
304 DCB "EXPORT _ZTVN10__cxxabiv116__enum_type_infoE\n"
305 DCB "EXPORT _ZTVN10__cxxabiv117__class_type_infoE\n"
306 DCB "EXPORT _ZTVN10__cxxabiv120__si_class_type_infoE\n"
307 DCB "EXPORT _ZTVN10__cxxabiv121__vmi_class_type_infoE\n"
308 DCB "EXPORT _ZTVN10__cxxabiv117__pbase_type_infoE\n"
309 DCB "EXPORT _ZTVN10__cxxabiv129__pointer_to_member_type_infoE\n"
311 DCB "EXPORT _ZTSPv\n"
312 DCB "EXPORT _ZTSPKv\n"
314 DCB "EXPORT _ZTSPb\n"
315 DCB "EXPORT _ZTSPKb\n"
317 DCB "EXPORT _ZTSPw\n"
318 DCB "EXPORT _ZTSPKw\n"
320 DCB "EXPORT _ZTSPc\n"
321 DCB "EXPORT _ZTSPKc\n"
323 DCB "EXPORT _ZTSPa\n"
324 DCB "EXPORT _ZTSPKa\n"
326 DCB "EXPORT _ZTSPh\n"
327 DCB "EXPORT _ZTSPKh\n"
329 DCB "EXPORT _ZTSPs\n"
330 DCB "EXPORT _ZTSPKs\n"
332 DCB "EXPORT _ZTSPt\n"
333 DCB "EXPORT _ZTSPKt\n"
335 DCB "EXPORT _ZTSPi\n"
336 DCB "EXPORT _ZTSPKi\n"
338 DCB "EXPORT _ZTSPj\n"
339 DCB "EXPORT _ZTSPKj\n"
341 DCB "EXPORT _ZTSPl\n"
342 DCB "EXPORT _ZTSPKl\n"
344 DCB "EXPORT _ZTSPm\n"
345 DCB "EXPORT _ZTSPKm\n"
347 DCB "EXPORT _ZTSPx\n"
348 DCB "EXPORT _ZTSPKx\n"
350 DCB "EXPORT _ZTSPy\n"
351 DCB "EXPORT _ZTSPKy\n"
353 DCB "EXPORT _ZTSPf\n"
354 DCB "EXPORT _ZTSPKf\n"
356 DCB "EXPORT _ZTSPd\n"
357 DCB "EXPORT _ZTSPKd\n"
359 DCB "EXPORT _ZTSPe\n"
360 DCB "EXPORT _ZTSPKe\n"
361 DCB "EXPORT _ZTISt9type_info\n"
362 DCB "EXPORT _ZTISt8bad_cast\n"
363 DCB "EXPORT _ZTISt10bad_typeid\n"
364 DCB "EXPORT _ZTIN10__cxxabiv123__fundamental_type_infoE\n"
365 DCB "EXPORT _ZTIN10__cxxabiv117__array_type_infoE\n"
366 DCB "EXPORT _ZTIN10__cxxabiv120__function_type_infoE\n"
367 DCB "EXPORT _ZTIN10__cxxabiv116__enum_type_infoE\n"
368 DCB "EXPORT _ZTIN10__cxxabiv117__class_type_infoE\n"
369 DCB "EXPORT _ZTIN10__cxxabiv120__si_class_type_infoE\n"
370 DCB "EXPORT _ZTIN10__cxxabiv121__vmi_class_type_infoE\n"
371 DCB "EXPORT _ZTIN10__cxxabiv117__pbase_type_infoE\n"
372 DCB "EXPORT _ZTIN10__cxxabiv119__pointer_type_infoE\n"
373 DCB "EXPORT _ZTIN10__cxxabiv129__pointer_to_member_type_infoE\n"
374 DCB "EXPORT _ZTSSt9type_info\n"
375 DCB "EXPORT _ZTSSt8bad_cast\n"
376 DCB "EXPORT _ZTSSt10bad_typeid\n"
377 DCB "EXPORT _ZTSN10__cxxabiv123__fundamental_type_infoE\n"
378 DCB "EXPORT _ZTSN10__cxxabiv117__array_type_infoE\n"
379 DCB "EXPORT _ZTSN10__cxxabiv120__function_type_infoE\n"
380 DCB "EXPORT _ZTSN10__cxxabiv116__enum_type_infoE\n"
381 DCB "EXPORT _ZTSN10__cxxabiv117__class_type_infoE\n"
382 DCB "EXPORT _ZTSN10__cxxabiv120__si_class_type_infoE\n"
383 DCB "EXPORT _ZTSN10__cxxabiv121__vmi_class_type_infoE\n"
384 DCB "EXPORT _ZTSN10__cxxabiv117__pbase_type_infoE\n"
385 DCB "EXPORT _ZTSN10__cxxabiv119__pointer_type_infoE\n"
386 DCB "EXPORT _ZTSN10__cxxabiv129__pointer_to_member_type_infoE\n"
388 #endif // __KERNEL_MODE__
392 #ifndef __KERNEL_MODE__
395 IMPORT_C int __rt_raise(int signal, int type);
396 int raise(int signal)
398 return __rt_raise(signal, 0);
401 IMPORT_C int __rt_exit(int aReturnCode);
402 EXPORT_C void abort(int signal)
404 __rt_raise(signal, 1);
408 IMPORT_C void* __get_typeid(void*);
409 EXPORT_C void* __ARM_get_typeid(void* p)
411 return __get_typeid(p);