equal
deleted
inserted
replaced
1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of the License "ARM EABI LICENCE.txt" |
4 // under the terms of the License "ARM EABI LICENCE.txt" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // in kernel/eka/compsupp. |
6 // in kernel/eka/compsupp. |
67 struct emergency_eco { |
67 struct emergency_eco { |
68 __cxa_exception ep; |
68 __cxa_exception ep; |
69 XLeaveException aUserLeaveException; |
69 XLeaveException aUserLeaveException; |
70 }; |
70 }; |
71 |
71 |
|
72 |
|
73 |
|
74 #include "emergency_buffer.h" |
|
75 |
|
76 struct emergency_eco2 : emergency_eco { |
|
77 // The secondary emergency buffer might as well support slightly bigger objects. |
|
78 int spacer[6]; |
|
79 }; |
|
80 |
|
81 typedef TEmergencyBuffer<emergency_eco2, 2> TEmergencyBuffer2; |
|
82 |
|
83 |
72 struct emergency_buffer { |
84 struct emergency_buffer { |
73 bool inuse; |
85 bool inuse; |
|
86 |
|
87 TEmergencyBuffer2* em_buf2_p; // offset = 4, size = 4. |
|
88 |
|
89 // This field has always been forced to an 8-byte alignment, so the fact that |
|
90 // em_buf2_p has been added shouldn't break compatibility with existing binaries. |
74 struct emergency_eco eco; |
91 struct emergency_eco eco; |
75 }; |
92 }; |
76 |
93 |
77 |
94 |
78 class TCppRTExceptionsGlobals |
95 class TCppRTExceptionsGlobals |
79 { |
96 { |
80 public: |
97 public: |
81 IMPORT_C TCppRTExceptionsGlobals(); |
98 IMPORT_C TCppRTExceptionsGlobals(); |
|
99 public: |
|
100 IMPORT_C void Init2ndEmergencyBuffer(); |
|
101 IMPORT_C void Kill2ndEmergencyBuffer(); |
82 private: |
102 private: |
83 __cxa_eh_globals thread_globals; |
103 __cxa_eh_globals thread_globals; |
84 emergency_buffer buffer; |
104 emergency_buffer buffer; |
85 }; |
105 }; |
86 |
106 |