a8e1f5ca1c7fffef70a28c9bfe9d17307663d1c0
[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 <typeinfo>
12
13 namespace __cxxabiv1 {
14
15 class __class_type_info : public std::type_info
16 {
17 public:
18         virtual ~__class_type_info();
19 };
20
21 class __si_class_type_info : public __class_type_info
22 {
23 public:
24         virtual ~__si_class_type_info();
25         
26         const __class_type_info *__base_type;
27 };
28
29 struct __base_class_type_info
30 {
31 public:
32         
33         const __class_type_info *__base_type;
34         long __offset_flags;
35
36         enum __offset_flags_masks {
37                 __virtual_mask = 0x1,
38                 __public_mask = 0x2,
39                 __offset_shift = 8
40         };
41
42 };
43
44 class __vmi_class_type_info : public __class_type_info
45 {
46 public:
47         virtual ~__vmi_class_type_info();
48         
49         unsigned int    __flags;
50         unsigned int    __base_count;
51         __base_class_type_info  __base_info[1];
52         
53         enum __flags_masks {
54                 __non_diamond_repeat_mask = 0x1,
55                 __diamond_shaped_mask = 0x2,
56         };
57 };
58
59 class __pbase_type_info : public std::type_info
60 {
61 public:
62         unsigned int __flags;
63         const std::type_info *__pointee;
64
65         enum __masks {
66                 __const_mask = 0x1,
67                 __volatile_mask = 0x2,
68                 __restrict_mask = 0x4,
69                 __incomplete_mask = 0x8,
70                 __incomplete_class_mask = 0x10
71         };
72 };
73
74 };      // namespace __cxxabiv1
75
76 #endif

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