/[eiffelstudio]/branches/eth/eve/Src/C/run-time/eif_project.c
ViewVC logotype

Contents of /branches/eth/eve/Src/C/run-time/eif_project.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 88379 - (show annotations)
Fri Mar 9 09:40:16 2012 UTC (7 years, 7 months ago) by jasonw
File MIME type: text/plain
File size: 23999 byte(s)
<<Merged from trunk#88377.>>
1
2 /*
3 description: "[
4 Dummy declarations for variables and routines called in the run-time but
5 generated in a system in `E1/eplug.c'.
6 ]"
7 date: "$Date$"
8 revision: "$Revision$"
9 copyright: "Copyright (c) 1985-2008, Eiffel Software."
10 license: "GPL version 2 see http://www.eiffel.com/licensing/gpl.txt)"
11 licensing_options: "Commercial license is available at http://www.eiffel.com/licensing"
12 copying: "[
13 This file is part of Eiffel Software's Runtime.
14
15 Eiffel Software's Runtime is free software; you can
16 redistribute it and/or modify it under the terms of the
17 GNU General Public License as published by the Free
18 Software Foundation, version 2 of the License
19 (available at the URL listed under "license" above).
20
21 Eiffel Software's Runtime is distributed in the hope
22 that it will be useful, but WITHOUT ANY WARRANTY;
23 without even the implied warranty of MERCHANTABILITY
24 or FITNESS FOR A PARTICULAR PURPOSE.
25 See the GNU General Public License for more details.
26
27 You should have received a copy of the GNU General Public
28 License along with Eiffel Software's Runtime; if not,
29 write to the Free Software Foundation, Inc.,
30 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
31 ]"
32 source: "[
33 Eiffel Software
34 356 Storke Road, Goleta, CA 93117 USA
35 Telephone 805-685-1006, Fax 805-685-6869
36 Website http://www.eiffel.com
37 Customer support http://support.eiffel.com
38 ]"
39 */
40
41 /*
42 doc:<file name="eif_project.c" header="eif_project.h" version="$Id$" summary="Declarations for runtime variables called by run-time and initialized by compiler C generated code">
43 */
44
45 #ifdef __VMS /* EIF_VMS is not defined yet */
46 #pragma module EIF_PROJECT // force uppercase module name
47 #endif
48
49 #include "eif_project.h"
50 #include "eif_gen_conf.h"
51
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55
56 /*
57 doc: <attribute name="" return_type="" export="public">
58 doc: <summary></summary>
59 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
60 doc: <synchronization>None</synchronization>
61 doc: <eiffel_classes></eiffel_classes>
62 doc: <fixme></fixme>
63 doc: </attribute>
64 */
65
66 /*
67 doc: <attribute name="exception_stacked_managed" return_type="EIF_BOOLEAN" export="public">
68 doc: <summary>Is Eiffel call stack managed?</summary>
69 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
70 doc: <synchronization>None</synchronization>
71 doc: </attribute>
72 */
73 rt_public EIF_BOOLEAN exception_stack_managed;
74
75 /*
76 doc: <attribute name="egc_prof_enabled" return_type="EIF_INTEGER" export="public">
77 doc: <summary>To enable or disable profiler.</summary>
78 doc: <thread_safety>Safe only if not modified during execution through use of PROFILING_SETTING class.</thread_safety>
79 doc: <synchronization>None</synchronization>
80 doc: <eiffel_classes>PROFILING_SETTING</eiffel_classes>
81 doc: </attribute>
82 */
83 rt_public EIF_INTEGER egc_prof_enabled;
84
85 /*
86 doc: <attribute name="exec_recording_enabled" return_type="EIF_INTEGER" export="public">
87 doc: <summary>To enable or disable execution recording.</summary>
88 doc: <thread_safety>Safe only if not modified during execution. Safe if app is stopped</thread_safety>
89 doc: <synchronization>None</synchronization>
90 doc: <eiffel_classes>RT_EXTENSION</eiffel_classes>
91 doc: </attribute>
92 */
93 #ifdef WORKBENCH
94 rt_public EIF_INTEGER exec_recording_enabled;
95 #endif
96
97
98 /*
99 doc: <attribute name="egc_strmake" return_type="fnptr" export="public">
100 doc: <summary>Address of Eiffel routine STRING.make to create Eiffel strings from C.</summary>
101 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
102 doc: <synchronization>None</synchronization>
103 doc: <eiffel_classes>STRING</eiffel_classes>
104 doc: </attribute>
105 */
106 #ifdef WORKBENCH
107 rt_public void (*egc_strmake)(EIF_REFERENCE, EIF_TYPED_VALUE);
108 #else
109 rt_public void (*egc_strmake)(EIF_REFERENCE, EIF_INTEGER);
110 #endif
111
112 #ifdef WORKBENCH
113 /*
114 doc: <attribute name="egc_strset" return_type="fnptr" export="public">
115 doc: <summary>Address of Eiffel routine STRING.set_count to set count of Eiffel strings. Only used in workbench mode as computing the offset is not an easy task as the value might change often (especially when melting STRING class).</summary>
116 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
117 doc: <synchronization>None</synchronization>
118 doc: <eiffel_classes>STRING</eiffel_classes>
119 doc: </attribute>
120 */
121 rt_public void (*egc_strset)(EIF_REFERENCE, EIF_TYPED_VALUE);
122 #else
123
124 /*
125 doc: <attribute name="egc_str_count_offset" return_type="uint32" export="public">
126 doc: <summary>Offset to `count' attribute from top of STRING object. Used to set count of newly created manifest Eiffel strings. Only used in final mode for efficient setting.</summary>
127 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
128 doc: <synchronization>None</synchronization>
129 doc: <eiffel_classes>STRING</eiffel_classes>
130 doc: </attribute>
131 */
132 rt_public uint32 egc_str_count_offset;
133
134 /*
135 doc: <attribute name="egc_str_hash_offset" return_type="uint32" export="public">
136 doc: <summary>Offset to `internal_hash_code' attribute from top pf STRING object. Used to set a precomputed hash code of newly created manifest Eiffel strings. Only used in final mode for efficient setting.</summary>
137 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
138 doc: <synchronization>None</synchronization>
139 doc: <eiffel_classes>STRING</eiffel_classes>
140 doc: </attribute>
141 */
142 rt_public uint32 egc_str_hash_offset;
143 #endif
144
145 /*
146 doc: <attribute name="egc_str32make" return_type="fnptr" export="public">
147 doc: <summary>Address of Eiffel routine STRING_32.make to create Eiffel strings from C.</summary>
148 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
149 doc: <synchronization>None</synchronization>
150 doc: <eiffel_classes>STRING_32</eiffel_classes>
151 doc: </attribute>
152 */
153 #ifdef WORKBENCH
154 rt_public void (*egc_str32make)(EIF_REFERENCE, EIF_TYPED_VALUE);
155 #else
156 rt_public void (*egc_str32make)(EIF_REFERENCE, EIF_INTEGER);
157 #endif
158
159 #ifdef WORKBENCH
160 /*
161 doc: <attribute name="egc_str32set" return_type="fnptr" export="public">
162 doc: <summary>Address of Eiffel routine STRING_32.set_count to set count of Eiffel strings. Only used in workbench mode as computing the offset is not an easy task as the value might change often (especially when melting STRING_32 class).</summary>
163 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
164 doc: <synchronization>None</synchronization>
165 doc: <eiffel_classes>STRING_32</eiffel_classes>
166 doc: </attribute>
167 */
168 rt_public void (*egc_str32set)(EIF_REFERENCE, EIF_TYPED_VALUE);
169 #else
170
171 /*
172 doc: <attribute name="egc_str32_count_offset" return_type="uint32" export="public">
173 doc: <summary>Offset to `count' attribute from top of STRING_32 object. Used to set count of newly created manifest Eiffel strings. Only used in final mode for efficient setting.</summary>
174 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
175 doc: <synchronization>None</synchronization>
176 doc: <eiffel_classes>STRING_32</eiffel_classes>
177 doc: </attribute>
178 */
179 rt_public uint32 egc_str32_count_offset;
180
181 /*
182 doc: <attribute name="egc_str32_hash_offset" return_type="uint32" export="public">
183 doc: <summary>Offset to `internal_hash_code' attribute from top pf STRING_32 object. Used to set a precomputed hash code of newly created manifest Eiffel strings. Only used in final mode for efficient setting.</summary>
184 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
185 doc: <synchronization>None</synchronization>
186 doc: <eiffel_classes>STRING_32</eiffel_classes>
187 doc: </attribute>
188 */
189 rt_public uint32 egc_str32_hash_offset;
190 #endif
191
192 /*
193 doc: <attribute name="egc_arrmake" return_type="fnptr" export="public">
194 doc: <summary>Address of Eiffel routine ARRAY.make to create Eiffel arrays of ANY from C used for command line arguments.</summary>
195 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
196 doc: <synchronization>None</synchronization>
197 doc: <eiffel_classes>ARRAY [ANY]</eiffel_classes>
198 doc: </attribute>
199 */
200 #ifdef WORKBENCH
201 rt_public void (*egc_arrmake)(EIF_REFERENCE, EIF_TYPED_VALUE, EIF_TYPED_VALUE);
202 #else
203 rt_public void (*egc_arrmake)(EIF_REFERENCE, EIF_INTEGER, EIF_INTEGER);
204 #endif
205
206 #ifdef WORKBENCH
207 /*
208 doc: <attribute name="egc_routdisp_wb" return_type="fnptr" export="public">
209 doc: <summary>Address of Eiffel routine ROUTINE.set_rout_disp used to initialize new ROUTINE objects of type PROCEDURE, FUNCTION or PREDICATE.</summary>
210 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
211 doc: <synchronization>None</synchronization>
212 doc: <eiffel_classes>ROUTINE, PROCEDURE, FUNCTION, PREDICATE</eiffel_classes>
213 doc: </attribute>
214 */
215 rt_public void (*egc_routdisp_wb)(EIF_REFERENCE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE,
216 EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE);
217
218 #else
219 /*
220 doc: <attribute name="egc_routdisp_fl" return_type="fnptr" export="public">
221 doc: <summary>Address of Eiffel routine ROUTINE.set_rout_disp_final used to initialize new ROUTINE objects of type PROCEDURE, FUNCTION or PREDICATE.</summary>
222 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
223 doc: <synchronization>None</synchronization>
224 doc: <eiffel_classes>ROUTINE, PROCEDURE, FUNCTION, PREDICATE</eiffel_classes>
225 doc: </attribute>
226 */
227 rt_public void (*egc_routdisp_fl)(EIF_REFERENCE, EIF_POINTER, EIF_POINTER, EIF_POINTER, EIF_REFERENCE, EIF_BOOLEAN, EIF_INTEGER);
228
229 /*
230 doc: <attribute name="egc_correct_mismatch" return_type="fnptr" export="public">
231 doc: <summary>Address of Eiffel routine ANY.internal_correct_mismatch which is used to fix a mismatch while retrieving objects from a storable.</summary>
232 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
233 doc: <synchronization>None</synchronization>
234 doc: <eiffel_classes>ANY</eiffel_classes>
235 doc: </attribute>
236 */
237 #endif
238 rt_public void (*egc_correct_mismatch)(EIF_REFERENCE);
239
240 /*
241 doc: <attribute name="egc_init_exception_data" return_type="fnptr" export="public">
242 doc: <summary>Address of Eiffel routine {EXCEPTION_MANAGER}.init_exception which is used to init the exception object.</summary>
243 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
244 doc: <synchronization>None</synchronization>
245 doc: <eiffel_classes>EXCEPTION_MANAGER</eiffel_classes>
246 doc: </attribute>
247 */
248 #ifdef WORKBENCH
249 rt_public void (*egc_set_exception_data)(EIF_REFERENCE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE,
250 EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE); /* EXCEPTION_MANAGER `set_exception_data' feature */
251 #else
252 rt_public void (*egc_set_exception_data)(EIF_REFERENCE, EIF_INTEGER, EIF_BOOLEAN, EIF_INTEGER, EIF_INTEGER, EIF_REFERENCE,
253 EIF_REFERENCE, EIF_REFERENCE, EIF_REFERENCE, EIF_REFERENCE, EIF_REFERENCE, EIF_INTEGER, EIF_BOOLEAN); /* EXCEPTION_MANAGER `set_exception_data' feature */
254 #endif
255
256 /*
257 doc: <attribute name="egc_set_last_exception" return_type="fnptr" export="public">
258 doc: <summary>Address of Eiffel routine {EXCEPTION_MANAGER}.set_last_exception which is simply used to restore the exception object from runtime as `last_exception'.</summary>
259 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
260 doc: <synchronization>None</synchronization>
261 doc: <eiffel_classes>EXCEPTION_MANAGER</eiffel_classes>
262 doc: </attribute>
263 */
264 #ifdef WORKBENCH
265 rt_public void (*egc_set_last_exception)(EIF_REFERENCE, EIF_TYPED_VALUE); /* EXCEPTION_MANAGER `set_last_exception' feature */
266 #else
267 rt_public void (*egc_set_last_exception)(EIF_REFERENCE, EIF_REFERENCE); /* EXCEPTION_MANAGER `set_last_exception' feature */
268 #endif
269
270 /*
271 doc: <attribute name="egc_last_exception" return_type="fnptr" export="public">
272 doc: <summary>Address of Eiffel routine {EXCEPTION_MANAGER}.last_exception which is used to get current last exception object.</summary>
273 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
274 doc: <synchronization>None</synchronization>
275 doc: <eiffel_classes>EXCEPTION_MANAGER</eiffel_classes>
276 doc: </attribute>
277 */
278 #ifdef WORKBENCH
279 rt_public EIF_TYPED_VALUE (*egc_last_exception)(EIF_REFERENCE); /* EXCEPTION_MANAGER `last_exception' feature */
280 #else
281 rt_public EIF_REFERENCE (*egc_last_exception)(EIF_REFERENCE); /* EXCEPTION_MANAGER `last_exception' feature */
282 #endif
283
284 /*
285 doc: <attribute name="egc_init_exception_data" return_type="fnptr" export="public">
286 doc: <summary>Address of Eiffel routine {EXCEPTION_MANAGER}.is_code_ignored. By querying this runtime knows from the manager if exception of the code should be ignored.</summary>
287 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
288 doc: <synchronization>None</synchronization>
289 doc: <eiffel_classes>EXCEPTION_MANAGER</eiffel_classes>
290 doc: </attribute>
291 */
292 #ifdef WORKBENCH
293 rt_public EIF_TYPED_VALUE (*egc_is_code_ignored)(EIF_REFERENCE, EIF_TYPED_VALUE); /* EXCEPTION_MANAGER `is_code_ignored' feature */
294 #else
295 rt_public EIF_BOOLEAN (*egc_is_code_ignored)(EIF_REFERENCE, EIF_INTEGER); /* EXCEPTION_MANAGER `is_code_ignored' feature */
296 #endif
297
298 /*
299 doc: <attribute name="egc_raise" return_type="fnptr" export="public">
300 doc: <summary>Address of Eiffel routine {EXCEPTION_MANAGER}.raise which is used to raise an existing exception object. This is called by runtime to raise the saved exception object by once routines.</summary>
301 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
302 doc: <synchronization>None</synchronization>
303 doc: <eiffel_classes>EXCEPTION_MANAGER</eiffel_classes>
304 doc: </attribute>
305 */
306 #ifdef WORKBENCH
307 rt_public void (*egc_once_raise)(EIF_REFERENCE, EIF_TYPED_VALUE); /* EXCEPTION_MANAGER `once_raise' feature */
308 #else
309 rt_public void (*egc_once_raise)(EIF_REFERENCE, EIF_REFERENCE); /* EXCEPTION_MANAGER `once_raise' feature */
310 #endif
311
312 /*
313 doc: <attribute name="egc_is_scoop_capable" return_type="int" export="public">
314 doc: <summary>Is the run-time capable of supporting SCOOP (disabled by default)</summary>
315 doc: <access>Read</access>
316 doc: <thread_safety>Safe set once in initialization.</thread_safety>
317 doc: <synchronization>None</synchronization>
318 doc: </attribute>
319 */
320 rt_public int egc_is_scoop_capable = 0;
321
322 /*
323 doc: <attribute name="egc_init_scoop_manager" return_type="fnptr" export="public">
324 doc: <summary>Address of Eiffel routine {SCOOP_MANAGER}.init_scoop_manager which is called by generated code to initialize objects beforehand.</summary>
325 doc: <thread_safety>Unsafe, it can only be called once during setup</thread_safety>
326 doc: <synchronization>None</synchronization>
327 doc: <eiffel_classes>ISE_SCOOP_MANAGER</eiffel_classes>
328 doc: </attribute>
329 */
330 rt_public void (*egc_init_scoop_manager)(EIF_REFERENCE) = NULL; /* {SCOOP_MANAGER}.init_scoop_manager feature */
331
332 /*
333 doc: <attribute name="egc_scoop_manager_task_callback" return_type="fnptr" export="public">
334 doc: <summary>Address of Eiffel routine {ISE_SCOOP_MANAGER}.scoop_manager_task_callback.</summary>
335 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
336 doc: <synchronization>None</synchronization>
337 doc: <eiffel_classes>ISE_SCOOP_MANAGER</eiffel_classes>
338 doc: </attribute>
339 */
340
341 #ifdef WORKBENCH
342 rt_public void (*egc_scoop_manager_task_callback)(EIF_REFERENCE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE, EIF_TYPED_VALUE); /* {ISE_SCOOP_MANAGER}.scoop_manager_task_callback feature */
343 #else
344 rt_public void (*egc_scoop_manager_task_callback)(EIF_REFERENCE, EIF_NATURAL_8, EIF_INTEGER, EIF_INTEGER, EIF_POINTER); /* {ISE_SCOOP_MANAGER}.scoop_manager_task_callback feature */
345 #endif
346 /*
347 doc: <attribute name="egc_init_exception_manager" return_type="fnptr" export="public">
348 doc: <summary>Address of Eiffel routine {EXCEPTION_MANAGER}.init_exception_manager which is called by generated code to initialize objects beforehand.</summary>
349 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
350 doc: <synchronization>None</synchronization>
351 doc: <eiffel_classes>EXCEPTION_MANAGER</eiffel_classes>
352 doc: </attribute>
353 */
354 rt_public void (*egc_init_exception_manager)(EIF_REFERENCE); /* EXCEPTION_MANAGER `init_exception_manager' feature */
355
356 /*
357 doc: <attribute name="egc_free_preallocated_trace" return_type="fnptr" export="public">
358 doc: <summary>Address of Eiffel routine {EXCEPTION_MANAGER}.free_preallocated_trace. </summary>
359 doc: <thread_safety>Safe, per thread data is manipulated.</thread_safety>
360 doc: <synchronization>None</synchronization>
361 doc: <eiffel_classes>EXCEPTION_MANAGER</eiffel_classes>
362 doc: </attribute>
363 */
364 rt_public void (*egc_free_preallocated_trace)(EIF_REFERENCE); /* EXCEPTION_MANAGER `free_preallocated_trace' feature */
365
366 /*
367 doc: <attribute name="egc_has_old_special_semantic" return_type="int" export="public">
368 doc: <summary>Is the runtime using the old semantic for SPECIAL? That is to say `count' = `capacity'.</summary>
369 doc: <access>Read</access>
370 doc: <thread_safety>Safe set once in initialization.</thread_safety>
371 doc: <synchronization>None</synchronization>
372 doc: </attribute>
373 */
374 rt_public int egc_has_old_special_semantic = 1;
375
376 /*
377 doc: <attribute name="egc_has_old_copy_semantic" return_type="int" export="public">
378 doc: <summary>Is the runtime using the old semantic for copy, that is to say, create a blank object rather than creating a shallow copy of the object being twined?.</summary>
379 doc: <access>Read</access>
380 doc: <thread_safety>Safe set once in initialization.</thread_safety>
381 doc: <synchronization>None</synchronization>
382 doc: </attribute>
383 */
384
385 rt_public int egc_has_old_copy_semantic = 1;
386
387 /*
388 doc: <attribute name="egc_has_ieee_semantic" return_type="int" export="public">
389 doc: <summary>Is the runtime using the IEEE semantic for comparing floating point values. That is to say that NaN != NaN and all comparisons involving NaN yields False?</summary>
390 doc: <access>Read</access>
391 doc: <thread_safety>Safe set once in initialization.</thread_safety>
392 doc: <synchronization>None</synchronization>
393 doc: </attribute>
394 */
395
396 rt_public int egc_has_ieee_semantic = 0;
397
398
399 rt_public EIF_TYPE_INDEX egc_str_dtype;
400 rt_public EIF_TYPE_INDEX egc_str32_dtype;
401 rt_public EIF_TYPE_INDEX egc_arr_dtype;
402 rt_public EIF_TYPE_INDEX egc_tup_dtype;
403 rt_public int32 egc_disp_rout_id;
404 rt_public int32 egc_copy_rout_id;
405 rt_public int32 egc_is_equal_rout_id;
406 rt_public EIF_TYPE_INDEX egc_bit_dtype = INVALID_DTYPE;
407
408 rt_public EIF_TYPE_INDEX egc_sp_bool;
409 rt_public EIF_TYPE_INDEX egc_sp_char;
410 rt_public EIF_TYPE_INDEX egc_sp_wchar;
411 rt_public EIF_TYPE_INDEX egc_sp_uint8;
412 rt_public EIF_TYPE_INDEX egc_sp_uint16;
413 rt_public EIF_TYPE_INDEX egc_sp_uint32;
414 rt_public EIF_TYPE_INDEX egc_sp_uint64;
415 rt_public EIF_TYPE_INDEX egc_sp_int8;
416 rt_public EIF_TYPE_INDEX egc_sp_int16;
417 rt_public EIF_TYPE_INDEX egc_sp_int32;
418 rt_public EIF_TYPE_INDEX egc_sp_int64;
419 rt_public EIF_TYPE_INDEX egc_sp_real32;
420 rt_public EIF_TYPE_INDEX egc_sp_real64;
421 rt_public EIF_TYPE_INDEX egc_sp_pointer;
422 rt_public EIF_TYPE_INDEX egc_sp_ref;
423
424 rt_public EIF_TYPE_INDEX egc_uint8_ref_dtype;
425 rt_public EIF_TYPE_INDEX egc_uint16_ref_dtype;
426 rt_public EIF_TYPE_INDEX egc_uint32_ref_dtype;
427 rt_public EIF_TYPE_INDEX egc_uint64_ref_dtype;
428 rt_public EIF_TYPE_INDEX egc_int8_ref_dtype;
429 rt_public EIF_TYPE_INDEX egc_int16_ref_dtype;
430 rt_public EIF_TYPE_INDEX egc_int32_ref_dtype;
431 rt_public EIF_TYPE_INDEX egc_int64_ref_dtype;
432 rt_public EIF_TYPE_INDEX egc_bool_ref_dtype;
433 rt_public EIF_TYPE_INDEX egc_real32_ref_dtype;
434 rt_public EIF_TYPE_INDEX egc_real64_ref_dtype;
435 rt_public EIF_TYPE_INDEX egc_char_ref_dtype;
436 rt_public EIF_TYPE_INDEX egc_wchar_ref_dtype;
437 rt_public EIF_TYPE_INDEX egc_point_ref_dtype;
438
439 rt_public EIF_TYPE_INDEX egc_uint8_dtype;
440 rt_public EIF_TYPE_INDEX egc_uint16_dtype;
441 rt_public EIF_TYPE_INDEX egc_uint32_dtype;
442 rt_public EIF_TYPE_INDEX egc_uint64_dtype;
443 rt_public EIF_TYPE_INDEX egc_int8_dtype;
444 rt_public EIF_TYPE_INDEX egc_int16_dtype;
445 rt_public EIF_TYPE_INDEX egc_int32_dtype;
446 rt_public EIF_TYPE_INDEX egc_int64_dtype;
447 rt_public EIF_TYPE_INDEX egc_bool_dtype;
448 rt_public EIF_TYPE_INDEX egc_real32_dtype;
449 rt_public EIF_TYPE_INDEX egc_real64_dtype;
450 rt_public EIF_TYPE_INDEX egc_char_dtype;
451 rt_public EIF_TYPE_INDEX egc_wchar_dtype;
452 rt_public EIF_TYPE_INDEX egc_point_dtype;
453 rt_public EIF_TYPE_INDEX egc_except_emnger_dtype;
454 rt_public EIF_TYPE_INDEX egc_exception_dtype;
455
456 // By default egc_scp_mngr_dtype is left uninitialized and set via plug.
457 rt_public EIF_TYPE_INDEX egc_scp_mngr_dtype;
458
459 rt_public struct ctable egc_ce_type;
460 rt_public struct ctable egc_ce_exp_type;
461 rt_public struct cnode *egc_fsystem;
462 rt_public struct conform **egc_fco_table;
463 rt_public struct eif_par_types **egc_partab;
464 rt_public EIF_TYPE_INDEX egc_partab_size;
465 rt_public void (*egc_system_mod_init) (void);
466 rt_public int egc_type_of_gc;
467 rt_public struct eif_opt *egc_foption;
468
469
470 #ifdef WORKBENCH
471
472 rt_public fnptr *egc_frozen;
473 rt_public int *egc_fpatidtab;
474 rt_public fnptr *egc_address_table;
475 rt_public struct p_interface *egc_fpattern;
476 rt_public void (*egc_einit)(void);
477 rt_public void (*egc_tabinit)(void);
478 rt_public int32 **egc_fcall;
479 rt_public struct rout_info *egc_forg_table;
480
481 #else
482 rt_public void (**egc_edispose)(void);
483 rt_public void (**egc_copy)(EIF_REFERENCE, EIF_REFERENCE);
484 rt_public EIF_BOOLEAN (**egc_is_equal)(EIF_REFERENCE, EIF_REFERENCE);
485 rt_public void (**egc_ecreate)(EIF_REFERENCE, EIF_REFERENCE);
486 rt_public void (**egc_exp_create)(EIF_REFERENCE);
487 rt_public struct ctable *egc_ce_rname;
488 rt_public long *egc_fnbref ;
489 rt_public long *egc_fsize;
490 #endif
491
492 #ifdef WORKBENCH
493 rt_public EIF_TYPED_VALUE (*egc_twin)(EIF_REFERENCE); /* {ANY}.twin */
494 #else
495 rt_public EIF_REFERENCE (*egc_twin)(EIF_REFERENCE); /* {ANY}.twin */
496 #endif
497
498 rt_public int32 egc_rcount;
499 rt_public int32 egc_ridx;
500 rt_public char **egc_rlist;
501 rt_public char *egc_eif_root;
502 rt_public int32 *egc_rcdt; /* E1/einit.c */
503 rt_public int32 *egc_rcorigin; /* E1/einit.c */
504 rt_public int32 *egc_rcoffset; /* E1/einit.c */
505 rt_public int32 *egc_rcarg; /* E1/einit.c */
506
507
508 rt_public char *egc_system_name;
509 /* Used in `misc.c' for storing and retrieving of Windows registry keys.
510 * Used in `update.c' to find out what the name of a melted file should
511 * be for current system.
512 */
513
514 rt_public char *egc_system_location;
515 /* Used in `option.c' to find out where the `profinfo' file
516 * should be generated when profiling a system.
517 */
518
519 rt_public EIF_INTEGER egc_compiler_tag;
520 rt_public EIF_INTEGER egc_project_version;
521
522 rt_public int egc_platform_level;
523 /* Used in `main.c' to find out whether or not we are handling
524 * a unlocked version of the ISE Eiffel environment or not. If
525 * it was not the case a message is displayed.
526 */
527
528
529 /*
530 doc: <attribute name="egc_rt_extension_notify" return_type="fnptr" export="public">
531 doc: <summary>Address of Eiffel routine RT_EXTENSION.notify to notify event from C.</summary>
532 doc: <thread_safety>Safe as initialized once at the very beginning of an execution.</thread_safety>
533 doc: <synchronization>None</synchronization>
534 doc: <eiffel_classes>RT_EXTENSION</eiffel_classes>
535 doc: </attribute>
536 */
537 #ifdef WORKBENCH
538 rt_public EIF_TYPE_INDEX egc_rt_extension_dt; /* E1/einit.c */
539 rt_public void (*egc_rt_extension_notify)(EIF_REFERENCE, EIF_TYPED_VALUE, EIF_TYPED_VALUE);
540 rt_public EIF_TYPED_VALUE (*egc_rt_extension_notify_argument)(EIF_REFERENCE, EIF_TYPED_VALUE);
541 #endif
542
543 #ifdef __cplusplus
544 }
545 #endif
546
547 /*
548 doc:</file>
549 */
550

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.23