Usermode/libc++ - Exception handling implemented (partially)
[tpg/acess2.git] / Usermode / Libraries / libc++.so_src / include_exp / cxxabi.h
1 /*
2  * Acess2 C++ Library
3  * - By John Hodge (thePowersGang)
4  *
5  * cxxabi.h
6  * - C++ ABI Namespace
7  */
8 #ifndef _LIBCXX__CXXABI_H_
9 #define _LIBCXX__CXXABI_H_
10
11 #include <cstddef>
12
13 #include <typeinfo>
14
15 namespace __cxxabiv1 {
16
17 class __class_type_info : public std::type_info
18 {
19 public:
20         virtual ~__class_type_info();
21 };
22
23 class __si_class_type_info : public __class_type_info
24 {
25 public:
26         virtual ~__si_class_type_info();
27         
28         const __class_type_info *__base_type;
29 };
30
31 struct __base_class_type_info
32 {
33 public:
34         
35         const __class_type_info *__base_type;
36         long __offset_flags;
37
38         enum __offset_flags_masks {
39                 __virtual_mask = 0x1,
40                 __public_mask = 0x2,
41                 __offset_shift = 8
42         };
43
44 };
45
46 class __vmi_class_type_info : public __class_type_info
47 {
48 public:
49         virtual ~__vmi_class_type_info();
50         
51         unsigned int    __flags;
52         unsigned int    __base_count;
53         __base_class_type_info  __base_info[1];
54         
55         enum __flags_masks {
56                 __non_diamond_repeat_mask = 0x1,
57                 __diamond_shaped_mask = 0x2,
58         };
59 };
60
61 class __pbase_type_info : public std::type_info
62 {
63 public:
64         unsigned int __flags;
65         const std::type_info *__pointee;
66
67         enum __masks {
68                 __const_mask = 0x1,
69                 __volatile_mask = 0x2,
70                 __restrict_mask = 0x4,
71                 __incomplete_mask = 0x8,
72                 __incomplete_class_mask = 0x10
73         };
74 };
75
76 extern "C" void* __dynamic_cast(
77                 const void *sub,
78                 const __class_type_info *src,
79                 const __class_type_info *dst,
80                 ptrdiff_t src2dst_offset
81                 );
82
83 };      // namespace __cxxabiv1
84
85 #endif

UCC git Repository :: git.ucc.asn.au