1 /* equates.h for Chez Scheme Version 9.5.4 */
2 
3 /* Do not edit this file.  It is automatically generated and */
4 /* specifically tailored to the version of Chez Scheme named */
5 /* above.  Always be certain that you have the correct version */
6 /* of this file for the version of Chez Scheme you are using. */
7 
8 /* Warning: Some macros may evaluate arguments more than once. */
9 
10 /* Integer typedefs */
11 typedef char I8;
12 typedef unsigned char U8;
13 typedef short I16;
14 typedef unsigned short U16;
15 typedef int I32;
16 typedef unsigned int U32;
17 typedef long long I64;
18 typedef unsigned long long U64;
19 
20 /* constants from cmacros.ss */
21 #define $c_func_closure_index 0x4
22 #define $c_func_closure_record_index 0x3
23 #define $c_func_code_object_index 0x2
24 #define $c_func_code_record_index 0x1
25 #define COMPRESS_FORMAT_BITS 0x3
26 #define COMPRESS_GZIP 0x0
27 #define COMPRESS_HIGH 0x3
28 #define COMPRESS_LOW 0x1
29 #define COMPRESS_LZ4 0x1
30 #define COMPRESS_MAX 0x4
31 #define COMPRESS_MEDIUM 0x2
32 #define COMPRESS_MIN 0x0
33 #define ERROR_CALL_ARGUMENT_COUNT 0x4
34 #define ERROR_CALL_NONPROCEDURE 0x3
35 #define ERROR_CALL_NONPROCEDURE_SYMBOL 0x2
36 #define ERROR_CALL_UNBOUND 0x1
37 #define ERROR_MVLET 0x8
38 #define ERROR_NONCONTINUABLE_INTERRUPT 0x6
39 #define ERROR_OTHER 0x0
40 #define ERROR_RESET 0x5
41 #define ERROR_VALUES 0x7
42 #define OPEN_ERROR_EXISTS 0x2
43 #define OPEN_ERROR_EXISTSNOT 0x3
44 #define OPEN_ERROR_OTHER 0x0
45 #define OPEN_ERROR_PROTECTION 0x1
46 #define PORT_FLAG_BINARY 0x400
47 #define PORT_FLAG_BLOCK_BUFFERED 0x20000
48 #define PORT_FLAG_BOL 0x8000
49 #define PORT_FLAG_CHAR_POSITIONS 0x100000
50 #define PORT_FLAG_CLOSED 0x800
51 #define PORT_FLAG_COMPRESSED 0x2000
52 #define PORT_FLAG_EOF 0x10000
53 #define PORT_FLAG_EXCLUSIVE 0x4000
54 #define PORT_FLAG_FILE 0x1000
55 #define PORT_FLAG_FOLD_CASE 0x400000
56 #define PORT_FLAG_INPUT 0x100
57 #define PORT_FLAG_INPUT_MODE 0x80000
58 #define PORT_FLAG_LINE_BUFFERED 0x40000
59 #define PORT_FLAG_NO_FOLD_CASE 0x800000
60 #define PORT_FLAG_OUTPUT 0x200
61 #define PORT_FLAG_R6RS 0x200000
62 #define SAPPEND 0x3
63 #define SDEFAULT 0x4
64 #define SEOF -0x1
65 #define SERROR 0x0
66 #define SICONV_DUNNO 0x0
67 #define SICONV_INCOMPLETE 0x2
68 #define SICONV_INVALID 0x1
69 #define SICONV_NOROOM 0x3
70 #define SREPLACE 0x2
71 #define STRVNCATE 0x1
72 #define address_bits 0x40
73 #define alloc_waste_maximum 0x800
74 #define annotation_all 0x3
75 #define annotation_debug 0x1
76 #define annotation_profile 0x2
77 #define architecture x86_64
78 #define asm_arg_reg_cnt 0x3
79 #define asm_arg_reg_max 0x5
80 #define bigit_bits 0x20
81 #define bigit_bytes 0x4
82 #define bignum_data_disp 0x9
83 #define bignum_length_factor 0x40
84 #define bignum_length_offset 0x6
85 #define bignum_sign_offset 0x5
86 #define bignum_type_disp 0x1
87 #define black_hole (ptr)0x46
88 #define box_ref_disp 0x9
89 #define box_type_disp 0x1
90 #define byte_alignment 0x10
91 #define byte_constant_mask 0xFFFFFFFFFFFFFFFF
92 #define bytes_per_card 0x200
93 #define bytes_per_segment 0x4000
94 #define bytevector_data_disp 0x9
95 #define bytevector_immutable_flag 0x4
96 #define bytevector_length_factor 0x8
97 #define bytevector_length_offset 0x3
98 #define bytevector_type_disp 0x1
99 #define c_entry_name_vector #(thread-context get-thread-context handle-apply-overflood handle-docall-error handle-overflow handle-overflood handle-nonprocedure-symbol thread-list split-and-resize raw-collect-cond raw-tc-mutex activate-thread deactivate-thread unactivate-thread handle-values-error handle-mvlet-error handle-arg-error foreign-entry install-library-entry get-more-room scan-remembered-set instantiate-code-object Sreturn Scall-one-result Scall-any-results)
100 #define c_entry_vector_size 0x19
101 #define cached_stack_link_disp 0x8
102 #define cached_stack_size_disp 0x0
103 #define card_offset_bits 0x9
104 #define cards_per_segment 0x20
105 #define char_data_offset 0x8
106 #define char_factor 0x100
107 #define closure_code_disp 0x3
108 #define closure_data_disp 0xB
109 #define code_arity_mask_disp 0x21
110 #define code_closure_length_disp 0x29
111 #define code_data_disp 0x41
112 #define code_flag_continuation 0x2
113 #define code_flag_guardian 0x8
114 #define code_flag_system 0x1
115 #define code_flag_template 0x4
116 #define code_flags_offset 0x8
117 #define code_info_disp 0x31
118 #define code_length_disp 0x9
119 #define code_name_disp 0x19
120 #define code_pinfos_disp 0x39
121 #define code_reloc_disp 0x11
122 #define code_type_disp 0x1
123 #define collect_interrupt_index 0x1
124 #define continuation_code_disp 0x3
125 #define continuation_link_disp 0x23
126 #define continuation_return_address_disp 0x2B
127 #define continuation_stack_clength_disp 0x1B
128 #define continuation_stack_disp 0xB
129 #define continuation_stack_length_disp 0x13
130 #define continuation_winders_disp 0x33
131 #define countof_bignum 0x5
132 #define countof_box 0x9
133 #define countof_bytevector 0x15
134 #define countof_closure 0x3
135 #define countof_code 0xB
136 #define countof_continuation 0x4
137 #define countof_ephemeron 0x19
138 #define countof_exactnum 0x8
139 #define countof_flonum 0x2
140 #define countof_fxvector 0x14
141 #define countof_guardian 0x17
142 #define countof_inexactnum 0x7
143 #define countof_locked 0x16
144 #define countof_oblist 0x18
145 #define countof_pair 0x0
146 #define countof_port 0xA
147 #define countof_ratnum 0x6
148 #define countof_relocation_table 0x10
149 #define countof_rtd_counts 0xE
150 #define countof_stack 0xF
151 #define countof_string 0x13
152 #define countof_symbol 0x1
153 #define countof_thread 0xC
154 #define countof_tlc 0xD
155 #define countof_types 0x1A
156 #define countof_vector 0x12
157 #define countof_weakpair 0x11
158 #define default_collect_trip_bytes 0x800000
159 #define default_heap_reserve_ratio 1.0
160 #define default_max_nonstatic_generation 0x4
161 #define default_stack_size 0xFFF0
162 #define default_timer_ticks 0x3E8
163 #define dtvec_hour 0x3
164 #define dtvec_isdst 0x9
165 #define dtvec_mday 0x4
166 #define dtvec_min 0x2
167 #define dtvec_mon 0x5
168 #define dtvec_nsec 0x0
169 #define dtvec_sec 0x1
170 #define dtvec_size 0xC
171 #define dtvec_tzname 0xB
172 #define dtvec_tzoff 0xA
173 #define dtvec_wday 0x7
174 #define dtvec_yday 0x8
175 #define dtvec_year 0x6
176 #define ephemeron_car_disp 0x7
177 #define ephemeron_cdr_disp 0xF
178 #define ephemeron_next_disp 0x17
179 #define ephemeron_trigger_next_disp 0x1F
180 #define eq_hashtable_subtype_ephemeron 0x2
181 #define eq_hashtable_subtype_normal 0x0
182 #define eq_hashtable_subtype_weak 0x1
183 #define exactnum_imag_disp 0x11
184 #define exactnum_real_disp 0x9
185 #define exactnum_type_disp 0x1
186 #define fasl_fld_double 0xA
187 #define fasl_fld_i16 0x2
188 #define fasl_fld_i24 0x3
189 #define fasl_fld_i32 0x4
190 #define fasl_fld_i40 0x5
191 #define fasl_fld_i48 0x6
192 #define fasl_fld_i56 0x7
193 #define fasl_fld_i64 0x8
194 #define fasl_fld_ptr 0x0
195 #define fasl_fld_single 0x9
196 #define fasl_fld_u8 0x1
197 #define fasl_header #vu8(0 0 0 0 99 104 101 122)
198 #define fasl_type_base_rtd 0x1A
199 #define fasl_type_box 0x1
200 #define fasl_type_bytevector 0x1D
201 #define fasl_type_closure 0x6
202 #define fasl_type_code 0xB
203 #define fasl_type_entry 0xD
204 #define fasl_type_ephemeron 0x1C
205 #define fasl_type_eq_hashtable 0x1F
206 #define fasl_type_exactnum 0x14
207 #define fasl_type_flonum 0x8
208 #define fasl_type_fxvector 0x1B
209 #define fasl_type_gensym 0x13
210 #define fasl_type_graph 0x10
211 #define fasl_type_graph_def 0x11
212 #define fasl_type_graph_ref 0x12
213 #define fasl_type_gzip 0x2B
214 #define fasl_type_header 0x0
215 #define fasl_type_immediate 0xC
216 #define fasl_type_immutable_box 0x29
217 #define fasl_type_immutable_bytevector 0x28
218 #define fasl_type_immutable_fxvector 0x27
219 #define fasl_type_immutable_string 0x26
220 #define fasl_type_immutable_vector 0x25
221 #define fasl_type_inexactnum 0x5
222 #define fasl_type_large_integer 0xA
223 #define fasl_type_library 0xE
224 #define fasl_type_library_code 0xF
225 #define fasl_type_lz4 0x2C
226 #define fasl_type_pair 0x7
227 #define fasl_type_ratnum 0x3
228 #define fasl_type_record 0x17
229 #define fasl_type_revisit 0x23
230 #define fasl_type_rtd 0x18
231 #define fasl_type_small_integer 0x19
232 #define fasl_type_string 0x9
233 #define fasl_type_symbol 0x2
234 #define fasl_type_symbol_hashtable 0x20
235 #define fasl_type_uncompressed 0x2A
236 #define fasl_type_vector 0x4
237 #define fasl_type_visit 0x22
238 #define fasl_type_visit_revisit 0x24
239 #define fasl_type_weak_pair 0x1E
240 #define fixnum_bits 0x3D
241 #define fixnum_factor 0x8
242 #define fixnum_offset 0x3
243 #define fld_byte_index 0x4
244 #define fld_mutablep_index 0x2
245 #define fld_name_index 0x1
246 #define fld_type_index 0x3
247 #define flonum_data_disp 0x6
248 #define forward_address_disp 0x8
249 #define forward_marker (ptr)0x2E
250 #define forward_marker_disp 0x0
251 #define ftype_guardian_rep (ptr)0x56
252 #define fxvector_data_disp 0x9
253 #define fxvector_immutable_flag 0x8
254 #define fxvector_length_factor 0x10
255 #define fxvector_length_offset 0x4
256 #define fxvector_type_disp 0x1
257 #define guardian_entry_next_disp 0x18
258 #define guardian_entry_obj_disp 0x0
259 #define guardian_entry_rep_disp 0x8
260 #define guardian_entry_tconc_disp 0x10
261 #define hashtable_default_size 0x8
262 #define header_size_bignum 0x8
263 #define header_size_bytevector 0x8
264 #define header_size_closure 0x8
265 #define header_size_code 0x40
266 #define header_size_fxvector 0x8
267 #define header_size_record 0x8
268 #define header_size_reloc_table 0x10
269 #define header_size_string 0x8
270 #define header_size_vector 0x8
271 #define ignore_event_flag 0x0
272 #define inexactnum_imag_disp 0x19
273 #define inexactnum_pad_disp 0x9
274 #define inexactnum_real_disp 0x11
275 #define inexactnum_type_disp 0x1
276 #define int_bits 0x20
277 #define integer_divide_instruction 1
278 #define keyboard_interrupt_index 0x3
279 #define library_entry_vector_size 0x210
280 #define libspec_closure_index 0xD
281 #define libspec_does_not_expect_headroom_index 0x0
282 #define libspec_error_index 0xE
283 #define libspec_fake_index 0x10
284 #define libspec_flags_index 0x2
285 #define libspec_has_does_not_expect_headroom_version_index 0xF
286 #define libspec_index_base_offset 0x1
287 #define libspec_index_base_size 0x9
288 #define libspec_index_offset 0x0
289 #define libspec_index_size 0xA
290 #define libspec_interface_offset 0xA
291 #define libspec_interface_size 0x3
292 #define libspec_name_index 0x1
293 #define log2_ptr_bytes 0x3
294 #define long_bits 0x20
295 #define long_long_bits 0x40
296 #define machine_type 0x1C
297 #define machine_type_a6fb 0x15
298 #define machine_type_a6le 0xB
299 #define machine_type_a6nb 0x19
300 #define machine_type_a6nt 0x1B
301 #define machine_type_a6ob 0xF
302 #define machine_type_a6osx 0xD
303 #define machine_type_a6s2 0x11
304 #define machine_type_alist ((0 . any) (1 . i3le) (2 . ti3le) (3 . i3nt) (4 . ti3nt) (5 . i3fb) (6 . ti3fb) (7 . i3ob) (8 . ti3ob) (9 . i3osx) (10 . ti3osx) (11 . a6le) (12 . ta6le) (13 . a6osx) (14 . ta6osx) (15 . a6ob) (16 . ta6ob) (17 . a6s2) (18 . ta6s2) (19 . i3s2) (20 . ti3s2) (21 . a6fb) (22 . ta6fb) (23 . i3nb) (24 . ti3nb) (25 . a6nb) (26 . ta6nb) (27 . a6nt) (28 . ta6nt) (29 . i3qnx) (30 . ti3qnx) (31 . arm32le) (32 . tarm32le) (33 . ppc32le) (34 . tppc32le))
305 #define machine_type_any 0x0
306 #define machine_type_arm32le 0x1F
307 #define machine_type_i3fb 0x5
308 #define machine_type_i3le 0x1
309 #define machine_type_i3nb 0x17
310 #define machine_type_i3nt 0x3
311 #define machine_type_i3ob 0x7
312 #define machine_type_i3osx 0x9
313 #define machine_type_i3qnx 0x1D
314 #define machine_type_i3s2 0x13
315 #define machine_type_limit 0x23
316 #define machine_type_name ta6nt
317 #define machine_type_ppc32le 0x21
318 #define machine_type_ta6fb 0x16
319 #define machine_type_ta6le 0xC
320 #define machine_type_ta6nb 0x1A
321 #define machine_type_ta6nt 0x1C
322 #define machine_type_ta6ob 0x10
323 #define machine_type_ta6osx 0xE
324 #define machine_type_ta6s2 0x12
325 #define machine_type_tarm32le 0x20
326 #define machine_type_ti3fb 0x6
327 #define machine_type_ti3le 0x2
328 #define machine_type_ti3nb 0x18
329 #define machine_type_ti3nt 0x4
330 #define machine_type_ti3ob 0x8
331 #define machine_type_ti3osx 0xA
332 #define machine_type_ti3qnx 0x1E
333 #define machine_type_ti3s2 0x14
334 #define machine_type_tppc32le 0x22
335 #define mask_bignum 0x1F
336 #define mask_bignum_sign 0x20
337 #define mask_binary_input_port 0x5FF
338 #define mask_binary_output_port 0x6FF
339 #define mask_binary_port 0x4FF
340 #define mask_boolean 0xF7
341 #define mask_box 0x7F
342 #define mask_bwp 0xFFFFFFFFFFFFFFFF
343 #define mask_bytevector 0x3
344 #define mask_char 0xFF
345 #define mask_closure 0x7
346 #define mask_code 0xFF
347 #define mask_continuation_code 0x2FF
348 #define mask_eof 0xFFFFFFFFFFFFFFFF
349 #define mask_exactnum 0xFFFFFFFFFFFFFFFF
350 #define mask_false 0xFFFFFFFFFFFFFFFF
351 #define mask_fixnum 0x7
352 #define mask_flonum 0x7
353 #define mask_fxvector 0x7
354 #define mask_guardian_code 0x8FF
355 #define mask_immediate 0x7
356 #define mask_inexactnum 0xFFFFFFFFFFFFFFFF
357 #define mask_input_port 0x1FF
358 #define mask_mutable_box 0xFFFFFFFFFFFFFFFF
359 #define mask_mutable_bytevector 0x7
360 #define mask_mutable_fxvector 0xF
361 #define mask_mutable_string 0xF
362 #define mask_mutable_vector 0xF
363 #define mask_nil 0xFFFFFFFFFFFFFFFF
364 #define mask_octet -0x7F9
365 #define mask_other_number 0xF
366 #define mask_output_port 0x2FF
367 #define mask_pair 0x7
368 #define mask_port 0xFF
369 #define mask_ratnum 0xFFFFFFFFFFFFFFFF
370 #define mask_record 0x7
371 #define mask_rtd_counts 0xFFFFFFFFFFFFFFFF
372 #define mask_signed_bignum 0x3F
373 #define mask_string 0x7
374 #define mask_symbol 0x7
375 #define mask_system_code 0x1FF
376 #define mask_textual_input_port 0x5FF
377 #define mask_textual_output_port 0x6FF
378 #define mask_textual_port 0x4FF
379 #define mask_thread 0xFFFFFFFFFFFFFFFF
380 #define mask_tlc 0xFFFFFFFFFFFFFFFF
381 #define mask_typed_object 0x7
382 #define mask_unbound 0xFFFFFFFFFFFFFFFF
383 #define mask_vector 0x7
384 #define max_float_alignment 0x8
385 #define max_integer_alignment 0x8
386 #define max_real_space 0xB
387 #define max_space 0xC
388 #define max_sweep_space 0xA
389 #define maximum_bignum_length (iptr)0x3FFFFFFFFFFFFFF
390 #define maximum_bytevector_length (iptr)0xFFFFFFFFFFFFFFF
391 #define maximum_fxvector_length (iptr)0xFFFFFFFFFFFFFFF
392 #define maximum_interrupt_index 0x4
393 #define maximum_string_length (iptr)0xFFFFFFFFFFFFFFF
394 #define maximum_vector_length (iptr)0xFFFFFFFFFFFFFFF
395 #define minimum_segment_request 0x80
396 #define most_negative_fixnum (iptr)-0x1000000000000000
397 #define most_positive_fixnum (iptr)0xFFFFFFFFFFFFFFF
398 #define native_endianness little
399 #define one_shot_headroom 0xC00
400 #define ordinary_type_bits 0x8
401 #define pair_car_disp 0x7
402 #define pair_cdr_disp 0xF
403 #define pair_shift 0x4
404 #define port_flag_binary 0x4
405 #define port_flag_block_buffered 0x200
406 #define port_flag_bol 0x80
407 #define port_flag_char_positions 0x1000
408 #define port_flag_closed 0x8
409 #define port_flag_compressed 0x20
410 #define port_flag_eof 0x100
411 #define port_flag_exclusive 0x40
412 #define port_flag_file 0x10
413 #define port_flag_fold_case 0x4000
414 #define port_flag_input 0x1
415 #define port_flag_input_mode 0x800
416 #define port_flag_line_buffered 0x400
417 #define port_flag_no_fold_case 0x8000
418 #define port_flag_output 0x2
419 #define port_flag_r6rs 0x2000
420 #define port_flags_offset 0x8
421 #define port_handler_disp 0x9
422 #define port_ibuffer_disp 0x39
423 #define port_icount_disp 0x19
424 #define port_ilast_disp 0x31
425 #define port_info_disp 0x41
426 #define port_name_disp 0x49
427 #define port_obuffer_disp 0x29
428 #define port_ocount_disp 0x11
429 #define port_olast_disp 0x21
430 #define port_type_disp 0x1
431 #define prelex_is_flags_offset 0x8
432 #define prelex_is_mask 0xFF00
433 #define prelex_sticky_mask 0xFF
434 #define prelex_was_flags_offset 0x10
435 #define primary_type_bits 0x3
436 #define ptr_bits 0x40
437 #define ptr_bytes 0x8
438 #define ptrdiff_t_bits 0x40
439 #define ratnum_denominator_disp 0x11
440 #define ratnum_numerator_disp 0x9
441 #define ratnum_type_disp 0x1
442 #define real_space_alist ((new . 0) (impure . 1) (symbol . 2) (port . 3) (weakpair . 4) (ephemeron . 5) (pure . 6) (continuation . 7) (code . 8) (pure-typed-object . 9) (impure-record . 10) (data . 11))
443 #define record_data_disp 0x9
444 #define record_type_counts_disp 0x49
445 #define record_type_disp 0x1
446 #define record_type_flags_disp 0x39
447 #define record_type_flds_disp 0x31
448 #define record_type_mpm_disp 0x21
449 #define record_type_name_disp 0x29
450 #define record_type_parent_disp 0x9
451 #define record_type_pm_disp 0x19
452 #define record_type_size_disp 0x11
453 #define record_type_type_disp 0x1
454 #define record_type_uid_disp 0x41
455 #define reloc_abs 0x0
456 #define reloc_code_offset_index 0x3
457 #define reloc_code_offset_mask 0x3FFFFFF
458 #define reloc_code_offset_offset 0x4
459 #define reloc_extended_format 0x1
460 #define reloc_item_offset_index 0x2
461 #define reloc_item_offset_mask 0x3FFFFFF
462 #define reloc_item_offset_offset 0x1E
463 #define reloc_longp_index 0x4
464 #define reloc_table_code_disp 0x8
465 #define reloc_table_data_disp 0x10
466 #define reloc_table_size_disp 0x0
467 #define reloc_type_index 0x1
468 #define reloc_type_mask 0x7
469 #define reloc_type_offset 0x1
470 #define reloc_x86_64_call 0x1
471 #define reloc_x86_64_jump 0x2
472 #define return_address_frame_size_disp -0x10
473 #define return_address_livemask_disp -0x20
474 #define return_address_mv_return_address_disp -0x8
475 #define return_address_toplink_disp -0x18
476 #define rp_header_frame_size_disp 0x10
477 #define rp_header_livemask_disp 0x0
478 #define rp_header_mv_return_address_disp 0x18
479 #define rp_header_toplink_disp 0x8
480 #define rtd_counts_data_disp 0x11
481 #define rtd_counts_timestamp_disp 0x9
482 #define rtd_counts_type_disp 0x1
483 #define rtd_generative 0x1
484 #define rtd_opaque 0x2
485 #define rtd_sealed 0x4
486 #define sbwp (ptr)0x4E
487 #define scaled_shot_1_shot_flag -0x8
488 #define scheme_version 0x90504
489 #define segment_card_offset_bits 0x5
490 #define segment_offset_bits 0xE
491 #define segment_t1_bits 0x10
492 #define segment_t2_bits 0x11
493 #define segment_t3_bits 0x11
494 #define segment_table_levels 0x3
495 #define seof (ptr)0x36
496 #define sfalse (ptr)0x6
497 #define short_bits 0x10
498 #define signal_interrupt_index 0x4
499 #define size_box 0x10
500 #define size_cached_stack 0x10
501 #define size_continuation 0x40
502 #define size_ephemeron 0x20
503 #define size_exactnum 0x20
504 #define size_flonum 0x10
505 #define size_forward 0x10
506 #define size_guardian_entry 0x20
507 #define size_inexactnum 0x20
508 #define size_pair 0x10
509 #define size_port 0x50
510 #define size_ratnum 0x20
511 #define size_record_type 0x50
512 #define size_rp_header 0x20
513 #define size_rtd_counts 0x810
514 #define size_symbol 0x30
515 #define size_tc 0x2C0
516 #define size_thread 0x10
517 #define size_tlc 0x20
518 #define size_typed_object 0x10
519 #define size_t_bits 0x40
520 #define snil (ptr)0x26
521 #define space_char_list (#\n #\i #\x #\q #\w #\e #\p #\k #\c #\r #\s #\d #\e)
522 #define space_cname_list ("new" "impure" "symbol" "port" "weakpr" "emph" "pure" "cont" "code" "p-tobj" "ip-rec" "data" "empty")
523 #define space_code 0x8
524 #define space_continuation 0x7
525 #define space_data 0xB
526 #define space_empty 0xC
527 #define space_ephemeron 0x5
528 #define space_impure 0x1
529 #define space_impure_record 0xA
530 #define space_locked 0x20
531 #define space_new 0x0
532 #define space_old 0x40
533 #define space_port 0x3
534 #define space_pure 0x6
535 #define space_pure_typed_object 0x9
536 #define space_symbol 0x2
537 #define space_weakpair 0x4
538 #define stack_frame_limit 0x200
539 #define stack_slop 0x400
540 #define static_generation 0xFF
541 #define string_char_bits 0x20
542 #define string_char_bytes 0x4
543 #define string_char_offset 0x2
544 #define string_data_disp 0x9
545 #define string_immutable_flag 0x8
546 #define string_length_factor 0x10
547 #define string_length_offset 0x4
548 #define string_type_disp 0x1
549 #define strue (ptr)0xE
550 #define sunbound (ptr)0x1E
551 #define svoid (ptr)0x3E
552 #define symbol_hash_disp 0x2D
553 #define symbol_name_disp 0x1D
554 #define symbol_plist_disp 0x15
555 #define symbol_pvalue_disp 0xD
556 #define symbol_splist_disp 0x25
557 #define symbol_value_disp 0x5
558 #define tc_DSTBV_disp 0x2A8
559 #define tc_SRCBV_disp 0x2B0
560 #define tc_U_disp 0x160
561 #define tc_V_disp 0x168
562 #define tc_W_disp 0x170
563 #define tc_X_disp 0x178
564 #define tc_Y_disp 0x180
565 #define tc_ac0_disp 0x28
566 #define tc_ac1_disp 0x30
567 #define tc_active_disp 0x134
568 #define tc_alloc_counter_disp 0x298
569 #define tc_ap_disp 0x50
570 #define tc_arg_regs_disp 0x0
571 #define tc_block_counter_disp 0x1D8
572 #define tc_cchain_disp 0x120
573 #define tc_code_ranges_to_flush_disp 0x128
574 #define tc_compile_profile_disp 0x230
575 #define tc_compress_format_disp 0x278
576 #define tc_compress_level_disp 0x280
577 #define tc_cp_disp 0x40
578 #define tc_current_error_disp 0x1D0
579 #define tc_current_input_disp 0x1C0
580 #define tc_current_mso_disp 0x1E8
581 #define tc_current_output_disp 0x1C8
582 #define tc_default_record_equal_procedure_disp 0x268
583 #define tc_default_record_hash_procedure_disp 0x270
584 #define tc_disable_count_disp 0x198
585 #define tc_eap_disp 0x58
586 #define tc_esp_disp 0x48
587 #define tc_fxfirst_bit_set_bv_disp 0x200
588 #define tc_fxlength_bv_disp 0x1F8
589 #define tc_generate_inspector_information_disp 0x238
590 #define tc_generate_procedure_source_information_disp 0x240
591 #define tc_generate_profile_forms_disp 0x248
592 #define tc_guardian_entries_disp 0x118
593 #define tc_instr_counter_disp 0x290
594 #define tc_keyboard_interrupt_pending_disp 0x1B0
595 #define tc_lz4_out_buffer_disp 0x288
596 #define tc_meta_level_disp 0x228
597 #define tc_null_immutable_bytevector_disp 0x218
598 #define tc_null_immutable_fxvector_disp 0x210
599 #define tc_null_immutable_string_disp 0x220
600 #define tc_null_immutable_vector_disp 0x208
601 #define tc_optimize_level_disp 0x250
602 #define tc_parameters_disp 0x2A0
603 #define tc_random_seed_disp 0x130
604 #define tc_real_eap_disp 0x90
605 #define tc_ret_disp 0x60
606 #define tc_scheme_stack_disp 0x138
607 #define tc_scheme_stack_size_disp 0x150
608 #define tc_sfd_disp 0x1E0
609 #define tc_sfp_disp 0x38
610 #define tc_signal_interrupt_pending_disp 0x1A0
611 #define tc_signal_interrupt_queue_disp 0x1A8
612 #define tc_something_pending_disp 0x188
613 #define tc_stack_cache_disp 0x140
614 #define tc_stack_link_disp 0x148
615 #define tc_subset_mode_disp 0x258
616 #define tc_suppress_primitive_inlining_disp 0x260
617 #define tc_target_machine_disp 0x1F0
618 #define tc_td_disp 0x88
619 #define tc_threadno_disp 0x1B8
620 #define tc_timer_ticks_disp 0x190
621 #define tc_trap_disp 0x68
622 #define tc_ts_disp 0x80
623 #define tc_virtual_registers_disp 0x98
624 #define tc_winders_disp 0x158
625 #define tc_xp_disp 0x70
626 #define tc_yp_disp 0x78
627 #define thread_tc_disp 0x9
628 #define thread_type_disp 0x1
629 #define time_collector_cpu 0x5
630 #define time_collector_real 0x6
631 #define time_duration 0x2
632 #define time_monotonic 0x3
633 #define time_process 0x0
634 #define time_t_bits 0x40
635 #define time_thread 0x1
636 #define time_utc 0x4
637 #define timer_interrupt_index 0x2
638 #define tlc_ht_disp 0x11
639 #define tlc_keyval_disp 0x9
640 #define tlc_next_disp 0x19
641 #define tlc_type_disp 0x1
642 #define type_bignum 0x6
643 #define type_binary_input_port 0x51E
644 #define type_binary_output_port 0x61E
645 #define type_binary_port 0x41E
646 #define type_boolean 0x6
647 #define type_box 0xE
648 #define type_bytevector 0x1
649 #define type_char 0x16
650 #define type_closure 0x5
651 #define type_code 0x3E
652 #define type_continuation_code 0x23E
653 #define type_exactnum 0x56
654 #define type_fixnum 0x0
655 #define type_flonum 0x2
656 #define type_fxvector 0x3
657 #define type_guardian_code 0x83E
658 #define type_immediate 0x6
659 #define type_immutable_box 0x8E
660 #define type_immutable_bytevector 0x5
661 #define type_immutable_fxvector 0xB
662 #define type_immutable_string 0xA
663 #define type_immutable_vector 0x8
664 #define type_inexactnum 0x36
665 #define type_input_port 0x11E
666 #define type_io_port 0x31E
667 #define type_mutable_box 0xE
668 #define type_mutable_bytevector 0x1
669 #define type_mutable_fxvector 0x3
670 #define type_mutable_string 0x2
671 #define type_mutable_vector 0x0
672 #define type_negative_bignum 0x26
673 #define type_octet 0x0
674 #define type_other_number 0x6
675 #define type_output_port 0x21E
676 #define type_pair 0x1
677 #define type_port 0x1E
678 #define type_positive_bignum 0x6
679 #define type_ratnum 0x16
680 #define type_record 0x7
681 #define type_rtd_counts 0x6E
682 #define type_string 0x2
683 #define type_symbol 0x3
684 #define type_system_code 0x13E
685 #define type_textual_input_port 0x11E
686 #define type_textual_output_port 0x21E
687 #define type_textual_port 0x1E
688 #define type_thread 0x4E
689 #define type_tlc 0x5E
690 #define type_typed_object 0x7
691 #define type_vector 0x0
692 #define typed_object_type_disp 0x1
693 #define typedef_i16 "short"
694 #define typedef_i32 "int"
695 #define typedef_i64 "long long"
696 #define typedef_i8 "char"
697 #define typedef_iptr "long long int"
698 #define typedef_ptr "void *"
699 #define typedef_string_char "unsigned int"
700 #define typedef_u16 "unsigned short"
701 #define typedef_u32 "unsigned int"
702 #define typedef_u64 "unsigned long long"
703 #define typedef_u8 "unsigned char"
704 #define typedef_uptr "unsigned long long int"
705 #define typemod 0x8
706 #define unactivate_mode_deactivate 0x1
707 #define unactivate_mode_destroy 0x2
708 #define unactivate_mode_noop 0x0
709 #define unaligned_floats 1
710 #define unaligned_integers 1
711 #define underflow_limit 0x80
712 #define unscaled_shot_1_shot_flag -0x1
713 #define vector_data_disp 0x9
714 #define vector_immutable_flag 0x8
715 #define vector_length_factor 0x10
716 #define vector_length_offset 0x4
717 #define vector_type_disp 0x1
718 #define virtual_register_count 0x10
719 #define wchar_bits 0x10
720 
721 /* constants from declare-c-entries */
722 #define CENTRY_Scall_any_results 24
723 #define CENTRY_Scall_one_result 23
724 #define CENTRY_Sreturn 22
725 #define CENTRY_activate_thread 11
726 #define CENTRY_deactivate_thread 12
727 #define CENTRY_foreign_entry 17
728 #define CENTRY_get_more_room 19
729 #define CENTRY_get_thread_context 1
730 #define CENTRY_handle_apply_overflood 2
731 #define CENTRY_handle_arg_error 16
732 #define CENTRY_handle_docall_error 3
733 #define CENTRY_handle_mvlet_error 15
734 #define CENTRY_handle_nonprocedure_symbol 6
735 #define CENTRY_handle_overflood 5
736 #define CENTRY_handle_overflow 4
737 #define CENTRY_handle_values_error 14
738 #define CENTRY_install_library_entry 18
739 #define CENTRY_instantiate_code_object 21
740 #define CENTRY_raw_collect_cond 9
741 #define CENTRY_raw_tc_mutex 10
742 #define CENTRY_scan_remembered_set 20
743 #define CENTRY_split_and_resize 8
744 #define CENTRY_thread_context 0
745 #define CENTRY_thread_list 7
746 #define CENTRY_unactivate_thread 13
747 
748 /* displacements for records */
749 #define eq_hashtable_rtd_disp 1
750 #define eq_hashtable_type_disp 9
751 #define eq_hashtable_mutablep_disp 17
752 #define eq_hashtable_vec_disp 25
753 #define eq_hashtable_minlen_disp 33
754 #define eq_hashtable_size_disp 41
755 #define eq_hashtable_subtype_disp 49
756 #define symbol_hashtable_rtd_disp 1
757 #define symbol_hashtable_type_disp 9
758 #define symbol_hashtable_mutablep_disp 17
759 #define symbol_hashtable_vec_disp 25
760 #define symbol_hashtable_minlen_disp 33
761 #define symbol_hashtable_size_disp 41
762 #define symbol_hashtable_equivp_disp 49
763 #define code_info_rtd_disp 1
764 #define code_info_src_disp 9
765 #define code_info_sexpr_disp 17
766 #define code_info_free_disp 25
767 #define code_info_live_disp 33
768 #define code_info_rpis_disp 41
769 
770 /* predicates */
771 #define Simmediatep(x) (((uptr)(x)&0x7)==0x6)
772 #define Sportp(x) ((((uptr)(x)&0x7)==0x7) &&\
773     (((uptr)((*((ptr *)((uptr)(x)+1))))&0xFF)==0x1E))
774 #define Scodep(x) ((((uptr)(x)&0x7)==0x7) &&\
775     (((uptr)((*((ptr *)((uptr)(x)+1))))&0xFF)==0x3E))
776 
777 /* structure accessors */
778 #define INITCAR(x) (*((ptr *)((uptr)(x)+7)))
779 #define INITCDR(x) (*((ptr *)((uptr)(x)+15)))
780 #define SETCAR(x,y) DIRTYSET(((ptr *)((uptr)(x)+7)),(y))
781 #define SETCDR(x,y) DIRTYSET(((ptr *)((uptr)(x)+15)),(y))
782 #define BOXTYPE(x) (*((iptr *)((uptr)(x)+1)))
783 #define INITBOXREF(x) (*((ptr *)((uptr)(x)+9)))
784 #define SETBOXREF(x,y) DIRTYSET(((ptr *)((uptr)(x)+9)),(y))
785 #define EPHEMERONNEXT(x) (*((ptr *)((uptr)(x)+23)))
786 #define INITEPHEMERONNEXT(x) (*((ptr *)((uptr)(x)+23)))
787 #define EPHEMERONTRIGGERNEXT(x) (*((ptr *)((uptr)(x)+31)))
788 #define INITEPHEMERONTRIGGERNEXT(x) (*((ptr *)((uptr)(x)+31)))
789 #define TLCTYPE(x) (*((iptr *)((uptr)(x)+1)))
790 #define TLCKEYVAL(x) (*((ptr *)((uptr)(x)+9)))
791 #define TLCHT(x) (*((ptr *)((uptr)(x)+17)))
792 #define TLCNEXT(x) (*((ptr *)((uptr)(x)+25)))
793 #define INITTLCKEYVAL(x) (*((ptr *)((uptr)(x)+9)))
794 #define INITTLCHT(x) (*((ptr *)((uptr)(x)+17)))
795 #define INITTLCNEXT(x) (*((ptr *)((uptr)(x)+25)))
796 #define SETTLCNEXT(x,y) DIRTYSET(((ptr *)((uptr)(x)+25)),(y))
797 #define SYMVAL(x) (*((ptr *)((uptr)(x)+5)))
798 #define SYMPVAL(x) (*((ptr *)((uptr)(x)+13)))
799 #define SYMPLIST(x) (*((ptr *)((uptr)(x)+21)))
800 #define SYMNAME(x) (*((ptr *)((uptr)(x)+29)))
801 #define SYMSPLIST(x) (*((ptr *)((uptr)(x)+37)))
802 #define SYMHASH(x) (*((ptr *)((uptr)(x)+45)))
803 #define INITSYMVAL(x) (*((ptr *)((uptr)(x)+5)))
804 #define INITSYMPVAL(x) (*((ptr *)((uptr)(x)+13)))
805 #define INITSYMPLIST(x) (*((ptr *)((uptr)(x)+21)))
806 #define INITSYMNAME(x) (*((ptr *)((uptr)(x)+29)))
807 #define INITSYMSPLIST(x) (*((ptr *)((uptr)(x)+37)))
808 #define INITSYMHASH(x) (*((ptr *)((uptr)(x)+45)))
809 #define SETSYMVAL(x,y) DIRTYSET(((ptr *)((uptr)(x)+5)),(y))
810 #define SETSYMPVAL(x,y) DIRTYSET(((ptr *)((uptr)(x)+13)),(y))
811 #define SETSYMPLIST(x,y) DIRTYSET(((ptr *)((uptr)(x)+21)),(y))
812 #define SETSYMNAME(x,y) DIRTYSET(((ptr *)((uptr)(x)+29)),(y))
813 #define SETSYMSPLIST(x,y) DIRTYSET(((ptr *)((uptr)(x)+37)),(y))
814 #define SETSYMHASH(x,y) DIRTYSET(((ptr *)((uptr)(x)+45)),(y))
815 #define VECTTYPE(x) (*((iptr *)((uptr)(x)+1)))
816 #define INITVECTIT(x,i) (((ptr *)((uptr)(x)+9))[i])
817 #define SETVECTIT(x,i,y) DIRTYSET((((ptr *)((uptr)(x)+9))+i),(y))
818 #define FXVECTOR_TYPE(x) (*((iptr *)((uptr)(x)+1)))
819 #define FXVECTIT(x,i) (((ptr *)((uptr)(x)+9))[i])
820 #define BYTEVECTOR_TYPE(x) (*((iptr *)((uptr)(x)+1)))
821 #define BVIT(x,i) (((octet *)((uptr)(x)+9))[i])
822 #define INEXACTNUM_TYPE(x) (*((iptr *)((uptr)(x)+1)))
823 #define INEXACTNUM_REAL_PART(x) (*((double *)((uptr)(x)+17)))
824 #define INEXACTNUM_IMAG_PART(x) (*((double *)((uptr)(x)+25)))
825 #define EXACTNUM_TYPE(x) (*((iptr *)((uptr)(x)+1)))
826 #define EXACTNUM_REAL_PART(x) (*((ptr *)((uptr)(x)+9)))
827 #define EXACTNUM_IMAG_PART(x) (*((ptr *)((uptr)(x)+17)))
828 #define RATTYPE(x) (*((iptr *)((uptr)(x)+1)))
829 #define RATNUM(x) (*((ptr *)((uptr)(x)+9)))
830 #define RATDEN(x) (*((ptr *)((uptr)(x)+17)))
831 #define CLOSENTRY(x) (*((ptr *)((uptr)(x)+3)))
832 #define CLOSIT(x,i) (((ptr *)((uptr)(x)+11))[i])
833 #define FLODAT(x) (*((double *)((uptr)(x)+6)))
834 #define PORTTYPE(x) (*((iptr *)((uptr)(x)+1)))
835 #define PORTNAME(x) (*((ptr *)((uptr)(x)+73)))
836 #define PORTHANDLER(x) (*((ptr *)((uptr)(x)+9)))
837 #define PORTINFO(x) (*((ptr *)((uptr)(x)+65)))
838 #define PORTOCNT(x) (*((iptr *)((uptr)(x)+17)))
839 #define PORTOLAST(x) (*((ptr *)((uptr)(x)+33)))
840 #define PORTOBUF(x) (*((ptr *)((uptr)(x)+41)))
841 #define PORTICNT(x) (*((iptr *)((uptr)(x)+25)))
842 #define PORTILAST(x) (*((ptr *)((uptr)(x)+49)))
843 #define PORTIBUF(x) (*((ptr *)((uptr)(x)+57)))
844 #define STRTYPE(x) (*((iptr *)((uptr)(x)+1)))
845 #define STRIT(x,i) (((string_char *)((uptr)(x)+9))[i])
846 #define BIGTYPE(x) (*((iptr *)((uptr)(x)+1)))
847 #define BIGIT(x,i) (((bigit *)((uptr)(x)+9))[i])
848 #define CODETYPE(x) (*((iptr *)((uptr)(x)+1)))
849 #define CODELEN(x) (*((iptr *)((uptr)(x)+9)))
850 #define CODERELOC(x) (*((ptr *)((uptr)(x)+17)))
851 #define CODENAME(x) (*((ptr *)((uptr)(x)+25)))
852 #define CODEARITYMASK(x) (*((ptr *)((uptr)(x)+33)))
853 #define CODEFREE(x) (*((iptr *)((uptr)(x)+41)))
854 #define CODEINFO(x) (*((ptr *)((uptr)(x)+49)))
855 #define CODEPINFOS(x) (*((ptr *)((uptr)(x)+57)))
856 #define CODEIT(x,i) (((octet *)((uptr)(x)+65))[i])
857 #define RELOCSIZE(x) (*((iptr *)((uptr)(x)+0)))
858 #define RELOCCODE(x) (*((ptr *)((uptr)(x)+8)))
859 #define RELOCIT(x,i) (((uptr *)((uptr)(x)+16))[i])
860 #define CONTSTACK(x) (*((ptr *)((uptr)(x)+11)))
861 #define CONTLENGTH(x) (*((iptr *)((uptr)(x)+19)))
862 #define CONTCLENGTH(x) (*((iptr *)((uptr)(x)+27)))
863 #define CONTLINK(x) (*((ptr *)((uptr)(x)+35)))
864 #define CONTRET(x) (*((ptr *)((uptr)(x)+43)))
865 #define CONTWINDERS(x) (*((ptr *)((uptr)(x)+51)))
866 #define RTDCOUNTSTYPE(x) (*((iptr *)((uptr)(x)+1)))
867 #define RTDCOUNTSTIMESTAMP(x) (*((U64 *)((uptr)(x)+9)))
868 #define RTDCOUNTSIT(x,i) (((uptr *)((uptr)(x)+17))[i])
869 #define RECORDDESCPARENT(x) (*((ptr *)((uptr)(x)+9)))
870 #define RECORDDESCSIZE(x) (*((ptr *)((uptr)(x)+17)))
871 #define RECORDDESCPM(x) (*((ptr *)((uptr)(x)+25)))
872 #define RECORDDESCMPM(x) (*((ptr *)((uptr)(x)+33)))
873 #define RECORDDESCNAME(x) (*((ptr *)((uptr)(x)+41)))
874 #define RECORDDESCFLDS(x) (*((ptr *)((uptr)(x)+49)))
875 #define RECORDDESCFLAGS(x) (*((ptr *)((uptr)(x)+57)))
876 #define RECORDDESCUID(x) (*((ptr *)((uptr)(x)+65)))
877 #define RECORDDESCCOUNTS(x) (*((ptr *)((uptr)(x)+73)))
878 #define RECORDINSTTYPE(x) (*((ptr *)((uptr)(x)+1)))
879 #define RECORDINSTIT(x,i) (((ptr *)((uptr)(x)+9))[i])
880 #define CLOSCODE(p) ((ptr)((uptr)CLOSENTRY(p)-code_data_disp))
881 #define CODEENTRYPOINT(x) ((ptr)((uptr)(x)+code_data_disp))
882 #define SETCLOSCODE(p,x) (CLOSENTRY(p) = CODEENTRYPOINT(x))
883 #define SYMCODE(p) ((ptr)((uptr)SYMPVAL(p)-code_data_disp))
884 #define INITSYMCODE(p,x) (INITSYMPVAL(p) = CODEENTRYPOINT(x))
885 #define SETSYMCODE(p,x) SETSYMPVAL(p,CODEENTRYPOINT(x))
886 #define BIGLEN(x) ((iptr)((uptr)BIGTYPE(x) >> bignum_length_offset))
887 #define BIGSIGN(x) ((BIGTYPE(x) & mask_bignum_sign) >> bignum_sign_offset)
888 #define SETBIGLENANDSIGN(x,xl,xs) BIGTYPE(x) = (uptr)(xl) << bignum_length_offset | (xs) << bignum_sign_offset | type_bignum
889 #define CLOSLEN(p) CODEFREE(CLOSCODE(p))
890 #define GUARDIANOBJ(x) (*((ptr *)((uptr)(x)+0)))
891 #define GUARDIANREP(x) (*((ptr *)((uptr)(x)+8)))
892 #define GUARDIANTCONC(x) (*((ptr *)((uptr)(x)+16)))
893 #define GUARDIANNEXT(x) (*((ptr *)((uptr)(x)+24)))
894 #define INITGUARDIANOBJ(x) (*((ptr *)((uptr)(x)+0)))
895 #define INITGUARDIANREP(x) (*((ptr *)((uptr)(x)+8)))
896 #define INITGUARDIANTCONC(x) (*((ptr *)((uptr)(x)+16)))
897 #define INITGUARDIANNEXT(x) (*((ptr *)((uptr)(x)+24)))
898 #define FORWARDMARKER(x) (*((ptr *)((uptr)(x)+0)))
899 #define FORWARDADDRESS(x) (*((ptr *)((uptr)(x)+8)))
900 #define CACHEDSTACKSIZE(x) (*((iptr *)((uptr)(x)+0)))
901 #define CACHEDSTACKLINK(x) (*((ptr *)((uptr)(x)+8)))
902 #define RPHEADERFRAMESIZE(x) (*((iptr *)((uptr)(x)+16)))
903 #define RPHEADERLIVEMASK(x) (*((ptr *)((uptr)(x)+0)))
904 #define RPHEADERTOPLINK(x) (*((uptr *)((uptr)(x)+8)))
905 
906 /* machine types */
907 #define machine_type_names {"any", "i3le", "ti3le", "i3nt", "ti3nt", "i3fb", "ti3fb", "i3ob", "ti3ob", "i3osx", "ti3osx", "a6le", "ta6le", "a6osx", "ta6osx", "a6ob", "ta6ob", "a6s2", "ta6s2", "i3s2", "ti3s2", "a6fb", "ta6fb", "i3nb", "ti3nb", "a6nb", "ta6nb", "a6nt", "ta6nt", "i3qnx", "ti3qnx", "arm32le", "tarm32le", "ppc32le", "tppc32le"}
908 
909 /* allocation-space names */
910 #define alloc_space_names "new", "impure", "symbol", "port", "weakpr", "emph", "pure", "cont", "code", "p-tobj", "ip-rec", "data", "empty"
911 
912 /* allocation-space characters */
913 #define alloc_space_chars 'n', 'i', 'x', 'q', 'w', 'e', 'p', 'k', 'c', 'r', 's', 'd', 'e'
914 
915 /* threads */
916 #define THREADTC(x) (*((uptr *)((uptr)(x)+9)))
917 
918 /* thread-context data */
919 #define DSTBV(x) (*((ptr *)((uptr)(x)+680)))
920 #define SRCBV(x) (*((ptr *)((uptr)(x)+688)))
921 #define U(x) (*((ptr *)((uptr)(x)+352)))
922 #define V(x) (*((ptr *)((uptr)(x)+360)))
923 #define W(x) (*((ptr *)((uptr)(x)+368)))
924 #define X(x) (*((ptr *)((uptr)(x)+376)))
925 #define Y(x) (*((ptr *)((uptr)(x)+384)))
926 #define AC0(x) (*((void* *)((uptr)(x)+40)))
927 #define AC1(x) (*((void* *)((uptr)(x)+48)))
928 #define ACTIVE(x) (*((I32 *)((uptr)(x)+308)))
929 #define ALLOCCOUNTER(x) (*((U64 *)((uptr)(x)+664)))
930 #define AP(x) (*((void* *)((uptr)(x)+80)))
931 #define ARGREGS(x,i) (((void* *)((uptr)(x)+0))[i])
932 #define BLOCKCOUNTER(x) (*((ptr *)((uptr)(x)+472)))
933 #define CCHAIN(x) (*((ptr *)((uptr)(x)+288)))
934 #define CODERANGESTOFLUSH(x) (*((ptr *)((uptr)(x)+296)))
935 #define COMPILEPROFILE(x) (*((ptr *)((uptr)(x)+560)))
936 #define COMPRESSFORMAT(x) (*((ptr *)((uptr)(x)+632)))
937 #define COMPRESSLEVEL(x) (*((ptr *)((uptr)(x)+640)))
938 #define CP(x) (*((void* *)((uptr)(x)+64)))
939 #define CURRENTERROR(x) (*((ptr *)((uptr)(x)+464)))
940 #define CURRENTINPUT(x) (*((ptr *)((uptr)(x)+448)))
941 #define CURRENTMSO(x) (*((ptr *)((uptr)(x)+488)))
942 #define CURRENTOUTPUT(x) (*((ptr *)((uptr)(x)+456)))
943 #define DEFAULTRECORDEQUALPROCEDURE(x) (*((ptr *)((uptr)(x)+616)))
944 #define DEFAULTRECORDHASHPROCEDURE(x) (*((ptr *)((uptr)(x)+624)))
945 #define DISABLECOUNT(x) (*((ptr *)((uptr)(x)+408)))
946 #define EAP(x) (*((void* *)((uptr)(x)+88)))
947 #define ESP(x) (*((void* *)((uptr)(x)+72)))
948 #define FXFIRSTBITSETBV(x) (*((ptr *)((uptr)(x)+512)))
949 #define FXLENGTHBV(x) (*((ptr *)((uptr)(x)+504)))
950 #define GENERATEINSPECTORINFORMATION(x) (*((ptr *)((uptr)(x)+568)))
951 #define GENERATEPROCEDURESOURCEINFORMATION(x) (*((ptr *)((uptr)(x)+576)))
952 #define GENERATEPROFILEFORMS(x) (*((ptr *)((uptr)(x)+584)))
953 #define GUARDIANENTRIES(x) (*((ptr *)((uptr)(x)+280)))
954 #define INSTRCOUNTER(x) (*((U64 *)((uptr)(x)+656)))
955 #define KEYBOARDINTERRUPTPENDING(x) (*((ptr *)((uptr)(x)+432)))
956 #define LZ4OUTBUFFER(x) (*((void* *)((uptr)(x)+648)))
957 #define METALEVEL(x) (*((ptr *)((uptr)(x)+552)))
958 #define NULLIMMUTABLEBYTEVECTOR(x) (*((ptr *)((uptr)(x)+536)))
959 #define NULLIMMUTABLEFXVECTOR(x) (*((ptr *)((uptr)(x)+528)))
960 #define NULLIMMUTABLESTRING(x) (*((ptr *)((uptr)(x)+544)))
961 #define NULLIMMUTABLEVECTOR(x) (*((ptr *)((uptr)(x)+520)))
962 #define OPTIMIZELEVEL(x) (*((ptr *)((uptr)(x)+592)))
963 #define PARAMETERS(x) (*((ptr *)((uptr)(x)+672)))
964 #define RANDOMSEED(x) (*((U32 *)((uptr)(x)+304)))
965 #define REAL_EAP(x) (*((void* *)((uptr)(x)+144)))
966 #define RET(x) (*((void* *)((uptr)(x)+96)))
967 #define SCHEMESTACK(x) (*((void* *)((uptr)(x)+312)))
968 #define SCHEMESTACKSIZE(x) (*((iptr *)((uptr)(x)+336)))
969 #define SFD(x) (*((ptr *)((uptr)(x)+480)))
970 #define SFP(x) (*((void* *)((uptr)(x)+56)))
971 #define SIGNALINTERRUPTPENDING(x) (*((ptr *)((uptr)(x)+416)))
972 #define SIGNALINTERRUPTQUEUE(x) (*((ptr *)((uptr)(x)+424)))
973 #define SOMETHINGPENDING(x) (*((ptr *)((uptr)(x)+392)))
974 #define STACKCACHE(x) (*((ptr *)((uptr)(x)+320)))
975 #define STACKLINK(x) (*((ptr *)((uptr)(x)+328)))
976 #define SUBSETMODE(x) (*((ptr *)((uptr)(x)+600)))
977 #define SUPPRESSPRIMITIVEINLINING(x) (*((ptr *)((uptr)(x)+608)))
978 #define TARGETMACHINE(x) (*((ptr *)((uptr)(x)+496)))
979 #define TD(x) (*((void* *)((uptr)(x)+136)))
980 #define THREADNO(x) (*((ptr *)((uptr)(x)+440)))
981 #define TIMERTICKS(x) (*((ptr *)((uptr)(x)+400)))
982 #define TRAP(x) (*((void* *)((uptr)(x)+104)))
983 #define TS(x) (*((void* *)((uptr)(x)+128)))
984 #define VIRTUALREGISTERS(x,i) (((ptr *)((uptr)(x)+152))[i])
985 #define WINDERS(x) (*((ptr *)((uptr)(x)+344)))
986 #define XP(x) (*((void* *)((uptr)(x)+112)))
987 #define YP(x) (*((void* *)((uptr)(x)+120)))
988 #define ARGREG(x,i) (((void* *)((uptr)(x)+0))[i])
989 #define VIRTREG(x,i) (((ptr *)((uptr)(x)+152))[i])
990 
991 /* library entries we access from C code */
992 #define library_nonprocedure_code 152
993 #define library_dounderflow 154
994