1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/kernelhwsrv/kernel/eka/compsupp/symaehabi/cxxabi.h Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,272 @@
1.4 +/* Copyright (c) Edison Design Group, 2002-2004. */
1.5 +/*
1.6 +cxxabi.h -- Include file for IA-64 ABI entry points.
1.7 +*/
1.8 +
1.9 +#ifndef __CXXABI_H
1.10 +#define __CXXABI_H
1.11 +
1.12 +#ifndef __STDDEF_H
1.13 +#include <stddef.h>
1.14 +#endif /* ifndef __STDDEF_H */
1.15 +
1.16 +namespace std
1.17 +{
1.18 + #ifdef __EDG__
1.19 + #pragma define_type_info
1.20 + #endif
1.21 +
1.22 + class type_info
1.23 + {
1.24 + public:
1.25 + IMPORT_C virtual ~type_info();
1.26 + IMPORT_C bool operator==(const type_info&) const;
1.27 + IMPORT_C bool operator!=(const type_info&) const;
1.28 + IMPORT_C bool before(const type_info&) const;
1.29 + IMPORT_C const char* name() const;
1.30 + private:
1.31 + type_info(const type_info&);
1.32 + type_info& operator=(const type_info&);
1.33 + private:
1.34 + const char *__type_name;
1.35 + };
1.36 +
1.37 + class exception
1.38 + {
1.39 + public:
1.40 + IMPORT_C exception() throw ();
1.41 + IMPORT_C exception(const exception&) throw ();
1.42 + IMPORT_C exception& operator=(const exception&) throw ();
1.43 + IMPORT_C virtual ~exception() throw ();
1.44 + IMPORT_C virtual const char* what() const throw ();
1.45 + };
1.46 +
1.47 + class bad_exception : public exception
1.48 + {
1.49 + public:
1.50 + bad_exception() throw ();
1.51 + bad_exception(const bad_exception&) throw ();
1.52 + bad_exception& operator=(const bad_exception&) throw ();
1.53 +
1.54 + virtual ~bad_exception() throw ();
1.55 +
1.56 + virtual const char* what() const throw ();
1.57 + };
1.58 +
1.59 + class bad_cast : public exception
1.60 + {
1.61 + public:
1.62 + IMPORT_C bad_cast() throw ();
1.63 + IMPORT_C bad_cast(const bad_cast&) throw ();
1.64 + IMPORT_C bad_cast& operator=(const bad_cast&) throw ();
1.65 + IMPORT_C virtual ~bad_cast() throw ();
1.66 + IMPORT_C virtual const char* what() const throw ();
1.67 + };
1.68 +
1.69 + class bad_typeid : public exception
1.70 + {
1.71 + public:
1.72 + IMPORT_C bad_typeid() throw ();
1.73 + IMPORT_C bad_typeid(const bad_typeid&) throw ();
1.74 + IMPORT_C bad_typeid& operator=(const bad_typeid&) throw ();
1.75 + IMPORT_C virtual ~bad_typeid() throw ();
1.76 + IMPORT_C virtual const char* what() const throw ();
1.77 + };
1.78 +}
1.79 +
1.80 +
1.81 +
1.82 +#ifdef __EDG_RUNTIME_USES_NAMESPACES
1.83 +namespace __cxxabiv1 {
1.84 + using namespace std;
1.85 +#endif /* ifdef __EDG_RUNTIME_USES_NAMESPACES */
1.86 +
1.87 + /* type_info implementation classes */
1.88 +
1.89 +#pragma define_type_info
1.90 + class __fundamental_type_info : public type_info {
1.91 + public:
1.92 + virtual ~__fundamental_type_info();
1.93 + };
1.94 +
1.95 +#pragma define_type_info
1.96 + class __array_type_info : public type_info {
1.97 + public:
1.98 + virtual ~__array_type_info();
1.99 + };
1.100 +
1.101 +#pragma define_type_info
1.102 + class __function_type_info : public type_info {
1.103 + public:
1.104 + virtual ~__function_type_info();
1.105 + };
1.106 +
1.107 +#pragma define_type_info
1.108 + class __enum_type_info : public type_info {
1.109 + public:
1.110 + virtual ~__enum_type_info();
1.111 + };
1.112 +
1.113 +#pragma define_type_info
1.114 + class __class_type_info : public type_info {
1.115 + public:
1.116 + virtual ~__class_type_info();
1.117 + };
1.118 +
1.119 +#pragma define_type_info
1.120 + class __si_class_type_info : public __class_type_info {
1.121 + public:
1.122 + virtual ~__si_class_type_info();
1.123 + const __class_type_info *__base_type;
1.124 + };
1.125 +
1.126 + struct __base_class_type_info {
1.127 + const __class_type_info *__base_type;
1.128 + long __offset_flags;
1.129 +
1.130 + enum __offset_flags_masks {
1.131 + __virtual_mask = 0x1,
1.132 + __public_mask = 0x2,
1.133 + __offset_shift = 8
1.134 + };
1.135 + };
1.136 +
1.137 +#pragma define_type_info
1.138 + class __vmi_class_type_info : public __class_type_info {
1.139 + public:
1.140 + virtual ~__vmi_class_type_info();
1.141 + unsigned int __flags;
1.142 + unsigned int __base_count;
1.143 + __base_class_type_info __base_info[1];
1.144 +
1.145 + enum __flags_masks {
1.146 + __non_diamond_repeat_mask = 0x1,
1.147 + __diamond_shaped_mask = 0x2
1.148 + };
1.149 + };
1.150 +
1.151 +#pragma define_type_info
1.152 + class __pbase_type_info : public type_info {
1.153 + public:
1.154 + virtual ~__pbase_type_info();
1.155 + unsigned int __flags;
1.156 + const type_info *__pointee;
1.157 +
1.158 + enum __masks {
1.159 + __const_mask = 0x1,
1.160 + __volatile_mask = 0x2,
1.161 + __restrict_mask = 0x4,
1.162 + __incomplete_mask = 0x8,
1.163 + __incomplete_class_mask = 0x10
1.164 + };
1.165 + };
1.166 +
1.167 +#pragma define_type_info
1.168 + class __pointer_type_info : public __pbase_type_info {
1.169 + virtual ~__pointer_type_info();
1.170 + };
1.171 +
1.172 +#pragma define_type_info
1.173 + class __pointer_to_member_type_info : public __pbase_type_info {
1.174 + virtual ~__pointer_to_member_type_info();
1.175 + const __class_type_info *__context;
1.176 + };
1.177 +
1.178 + extern "C" {
1.179 + /* Pure virtual function calls. */
1.180 + void __cxa_pure_virtual();
1.181 +
1.182 + /* Constructors return void in the IA-64 ABI. But in the ARM EABI
1.183 + variant, they return void*. */
1.184 +#ifdef __EDG_IA64_ABI_VARIANT_CTORS_AND_DTORS_RETURN_THIS
1.185 + typedef void* __ctor_dtor_return_type;
1.186 +#else /* ifndef __EDG_IA64_ABI_VARIANT_CTORS_AND_DTORS_RETURN_THIS */
1.187 + typedef void __ctor_dtor_return_type;
1.188 +#endif /* ifdef __EDG_IA64_ABI_VARIANT_CTORS_AND_DTORS_RETURN_THIS */
1.189 +
1.190 + /* Guard variables are 64 bits in the IA-64 ABI but only 32 bits in
1.191 + the ARM EABI. */
1.192 +#ifdef __EDG_IA64_ABI_USE_INT_STATIC_INIT_GUARD
1.193 + typedef int __guard_variable_type;
1.194 +#else /* ifndef __EDG_IA64_ABI_USE_INT_STATIC_INIT_GUARD */
1.195 + typedef unsigned long long __guard_variable_type;
1.196 +#endif /* ifdef __EDG_IA64_ABI_USE_INT_STATIC_INIT_GUARD */
1.197 +
1.198 + /* Guard variables for the initialization of variables with static storage
1.199 + duration. */
1.200 + int __cxa_guard_acquire(__guard_variable_type *);
1.201 + void __cxa_guard_release(__guard_variable_type *);
1.202 + void __cxa_guard_abort(__guard_variable_type *);
1.203 +
1.204 + /* Construction and destruction of arrays. */
1.205 + void *__cxa_vec_new(size_t, size_t, size_t,
1.206 + __ctor_dtor_return_type (*)(void *),
1.207 + __ctor_dtor_return_type (*)(void *));
1.208 + void *__cxa_vec_new2(size_t, size_t, size_t,
1.209 + __ctor_dtor_return_type (*)(void *),
1.210 + __ctor_dtor_return_type (*)(void *),
1.211 + void *(*)(size_t),
1.212 + void (*)(void *));
1.213 + void *__cxa_vec_new3(size_t, size_t, size_t,
1.214 + __ctor_dtor_return_type (*)(void *),
1.215 + __ctor_dtor_return_type (*)(void *),
1.216 + void *(*)(size_t),
1.217 + void (*)(void *, size_t));
1.218 +#ifndef CXXABI_VEC_CTOR_RETURNS_VOID
1.219 + /* The C++ ABI says this returns 'void' but we actually return
1.220 + 'void *' to remain compatible with RVCT 2.0 objects. But the
1.221 + compiler no longer assumes it. */
1.222 + void *
1.223 +#else /* def CXXABI_VEC_CTOR_RETURNS_VOID */
1.224 + void
1.225 +#endif /* def CXXABI_VEC_CTOR_RETURNS_VOID */
1.226 + __cxa_vec_ctor(void *, size_t, size_t,
1.227 + __ctor_dtor_return_type (*)(void *),
1.228 + __ctor_dtor_return_type (*)(void *));
1.229 + void __cxa_vec_dtor(void *, size_t, size_t,
1.230 + __ctor_dtor_return_type (*)(void *));
1.231 + void __cxa_vec_cleanup(void *, size_t, size_t,
1.232 + __ctor_dtor_return_type (*)(void *));
1.233 + void __cxa_vec_delete(void *, size_t, size_t,
1.234 + __ctor_dtor_return_type (*)(void *));
1.235 + void __cxa_vec_delete2(void *, size_t, size_t,
1.236 + __ctor_dtor_return_type (*)(void *),
1.237 + void (*)(void *));
1.238 + void __cxa_vec_delete3(void *, size_t, size_t,
1.239 + __ctor_dtor_return_type (*)(void *),
1.240 + void (*)(void *, size_t));
1.241 +#ifndef CXXABI_VEC_CTOR_RETURNS_VOID
1.242 + /* The C++ ABI says this returns 'void' but we actually return
1.243 + 'void *' to remain compatible with RVCT 2.0 objects. But the
1.244 + compiler no longer assumes it. */
1.245 + void *
1.246 +#else /* def CXXABI_VEC_CTOR_RETURNS_VOID */
1.247 + void
1.248 +#endif /* def CXXABI_VEC_CTOR_RETURNS_VOID */
1.249 + __cxa_vec_cctor(void *, void *, size_t, size_t,
1.250 + __ctor_dtor_return_type (*)(void *, void *),
1.251 + __ctor_dtor_return_type (*)(void *));
1.252 +
1.253 + /* Finalization. */
1.254 + int __cxa_atexit(void (*)(void *), void *, void *);
1.255 + void __cxa_finalize(void *);
1.256 +
1.257 + /* Exception-handling support. */
1.258 + void __cxa_bad_cast();
1.259 + void __cxa_bad_typeid();
1.260 +
1.261 + /* Demangling interface. */
1.262 + char *__cxa_demangle(const char* __mangled_name,
1.263 + char *__buf,
1.264 + size_t *__n,
1.265 + int *__status);
1.266 +
1.267 + } /* extern "C" */
1.268 +#ifdef __EDG_RUNTIME_USES_NAMESPACES
1.269 +} /* namespace __cxxabiv1 */
1.270 +
1.271 +/* Create the "abi" namespace alias. */
1.272 +namespace abi = __cxxabiv1;
1.273 +#endif /* ifdef __EDG_RUNTIME_USES_NAMESPACES */
1.274 +
1.275 +#endif /* ifndef __CXXABI_H */