a68g-prelude.h
1 //! @file a68g-prelude.h
2 //! @author J. Marcel van der Veer
3
4 //! @section Copyright
5 //!
6 //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
7 //! Copyright 2001-2025 J. Marcel van der Veer [algol68g@xs4all.nl].
8
9 //! @section License
10 //!
11 //! This program is free software; you can redistribute it and/or modify it
12 //! under the terms of the GNU General Public License as published by the
13 //! Free Software Foundation; either version 3 of the License, or
14 //! (at your option) any later version.
15 //!
16 //! This program is distributed in the hope that it will be useful, but
17 //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
19 //! more details. You should have received a copy of the GNU General Public
20 //! License along with this program. If not, see [http://www.gnu.org/licenses/].
21
22 //! @section Synopsis
23 //!
24 //! RTS related definitions.
25
26 #if !defined (__A68G_PRELUDE_H__)
27 #define __A68G_PRELUDE_H__
28
29 #define A68G_STD A68G_TRUE
30 #define A68G_EXT A68G_FALSE
31
32 // ALGOL68C type procs.
33
34 #define A68C_DEFIO(name, pname, mode) {\
35 m = a68g_proc (MODE (mode), M_REF_FILE, NO_MOID);\
36 a68g_idf (A68G_EXT, "get" #name, m, genie_get_##pname);\
37 m = a68g_proc (M_VOID, M_REF_FILE, MODE (mode), NO_MOID);\
38 a68g_idf (A68G_EXT, "put" #name, m, genie_put_##pname);\
39 m = a68g_proc (MODE (mode), NO_MOID);\
40 a68g_idf (A68G_EXT, "read" #name, m, genie_read_##pname);\
41 m = a68g_proc (M_VOID, MODE (mode), NO_MOID);\
42 a68g_idf (A68G_EXT, "print" #name, m, genie_print_##pname);\
43 }
44
45 #define IS_NL_FF(ch) ((ch) == NEWLINE_CHAR || (ch) == FORMFEED_CHAR)
46
47 #define A68G_MONAD(n, MODE, OP)\
48 void n (NODE_T * p) {\
49 MODE *i;\
50 POP_OPERAND_ADDRESS (p, i, MODE);\
51 VALUE (i) = OP (VALUE (i));\
52 }
53
54 #if (A68G_LEVEL >= 3)
55 GPROC genie_lt_bits;
56 GPROC genie_gt_bits;
57 DOUBLE_T mp_to_double (NODE_T *, MP_T *, int);
58 MP_T *double_to_mp (NODE_T *, MP_T *, DOUBLE_T, int, BOOL_T, int);
59 MP_T *double_int_to_mp (NODE_T *, MP_T *, DOUBLE_NUM_T, int);
60 #endif
61
62 MOID_T *a68g_proc (MOID_T *, ...);
63 void a68g_idf (BOOL_T, char *, MOID_T *, GPROC *);
64 void a68g_prio (char *, int);
65 void a68g_op (BOOL_T, char *, MOID_T *, GPROC *);
66 void a68g_mode (int, char *, MOID_T **);
67 A68G_REF c_string_to_row_char (NODE_T *, char *, size_t);
68 A68G_REF c_to_a_string (NODE_T *, char *, size_t);
69 A68G_REF empty_row (NODE_T *, MOID_T *);
70 A68G_REF empty_string (NODE_T *);
71 A68G_REF genie_make_row (NODE_T *, MOID_T *, int, ADDR_T);
72 A68G_REF genie_store (NODE_T *, MOID_T *, A68G_REF *, A68G_REF *);
73 A68G_REF heap_generator_2 (NODE_T *, MOID_T *, int, size_t);
74 A68G_REF heap_generator_3 (NODE_T *, MOID_T *, int, int, size_t);
75 A68G_REF heap_generator (NODE_T *, MOID_T *, size_t);
76 A68G_REF tmp_to_a68g_string (NODE_T *, char *);
77 ADDR_T calculate_internal_index (A68G_TUPLE *, int);
78 BOOL_T close_device (NODE_T *, A68G_FILE *);
79 BOOL_T genie_int_case_unit (NODE_T *, int, int *);
80 BOOL_T increment_internal_index (A68G_TUPLE *, int);
81 BOOL_T moid_needs_colouring (MOID_T *);
82 char *a_to_c_string (NODE_T *, char *, A68G_REF);
83 char *propagator_name (const PROP_PROC * p);
84 FILE *a68g_fopen (char *, char *, char *);
85 GPROC get_global_level;
86 GPROC initialise_frame;
87 int a68g_finite_real (REAL_T);
88 int a68g_isinf_real (REAL_T);
89 int a68g_isnan_real (REAL_T);
90 int a68g_string_size (NODE_T *, A68G_REF);
91 int char_value (int);
92 int grep_in_string (char *, char *, int *, int *);
93 INT_T a68g_round (REAL_T);
94 PROP_T genie_generator (NODE_T *);
95 REAL_T seconds (void);
96 REAL_T ten_up (int);
97 REAL_T wall_seconds (void);
98 ssize_t io_read_conv (FILE_T, void *, size_t);
99 ssize_t io_read (FILE_T, void *, size_t);
100 ssize_t io_write_conv (FILE_T, const void *, size_t);
101 ssize_t io_write (FILE_T, const void *, size_t);
102 unt heap_available (void);
103 void a68g_div_complex (A68G_REAL *, A68G_REAL *, A68G_REAL *);
104 void a68g_exit (int);
105 void a68g_exp_real_complex (A68G_REAL *, A68G_REAL *);
106 void change_breakpoints (NODE_T *, unt, int, BOOL_T *, char *);
107 void change_masks (NODE_T *, unt, BOOL_T);
108 void colour_object (BYTE_T *, MOID_T *);
109 void deltagammainc (REAL_T *, REAL_T *, REAL_T, REAL_T, REAL_T, REAL_T);
110 void exit_genie (NODE_T *, int);
111 void gc_heap (NODE_T *, ADDR_T);
112 void genie_call_event_routine (NODE_T *, MOID_T *, A68G_PROCEDURE *, ADDR_T, ADDR_T);
113 void genie_call_operator (NODE_T *, ADDR_T);
114 void genie_call_procedure (NODE_T *, MOID_T *, MOID_T *, MOID_T *, A68G_PROCEDURE *, ADDR_T, ADDR_T);
115 void genie_check_initialisation (NODE_T *, BYTE_T *, MOID_T *);
116 void genie_f_and_becomes (NODE_T *, MOID_T *, GPROC *);
117 void genie_find_proc_op (NODE_T *, int *);
118 void genie_free (NODE_T *);
119 void genie_generator_internal (NODE_T *, MOID_T *, TAG_T *, LEAP_T, ADDR_T);
120 void genie_generator_stowed (NODE_T *, BYTE_T *, NODE_T **, ADDR_T *);
121 void genie_init_rng (void);
122 void genie_preprocess (NODE_T *, int *, void *);
123 void genie_push_undefined (NODE_T *, MOID_T *);
124 void genie_read_standard_format (NODE_T *, MOID_T *, BYTE_T *, A68G_REF, int *);
125 void genie_read_standard (NODE_T *, MOID_T *, BYTE_T *, A68G_REF);
126 void genie_serial_clause (NODE_T *, jmp_buf *);
127 void genie_serial_units (NODE_T *, NODE_T **, jmp_buf *, ADDR_T);
128 void genie_string_to_value (NODE_T *, MOID_T *, BYTE_T *, A68G_REF);
129 void genie_subscript (NODE_T *, A68G_TUPLE **, INT_T *, NODE_T **);
130 void genie_value_to_string (NODE_T *, MOID_T *, BYTE_T *, int);
131 void genie_variable_dec (NODE_T *, NODE_T **, ADDR_T);
132 void genie_write_standard_format (NODE_T *, MOID_T *, BYTE_T *, A68G_REF, int *);
133 void genie_write_standard (NODE_T *, MOID_T *, BYTE_T *, A68G_REF);
134 void initialise_internal_index (A68G_TUPLE *, int);
135 void io_close_tty_line (void);
136 void io_write_string (FILE_T, const char *);
137 void monitor_error (char *, char *);
138 void mp_strtou (NODE_T *, MP_T *, char *, MOID_T *);
139 void open_format_frame (NODE_T *, A68G_REF, A68G_FORMAT *, BOOL_T, BOOL_T);
140 void print_internal_index (FILE_T, A68G_TUPLE *, int);
141 void print_item (NODE_T *, FILE_T, BYTE_T *, MOID_T *);
142 void purge_format_read (NODE_T *, A68G_REF);
143 void purge_format_write (NODE_T *, A68G_REF);
144 void single_step (NODE_T *, unt);
145 void skip_nl_ff (NODE_T *, int *, A68G_REF);
146 void stack_dump (FILE_T, ADDR_T, int, int *);
147 void value_sign_error (NODE_T *, MOID_T *, A68G_REF);
148 void where_in_source (FILE_T, NODE_T *);
149
150 // Standard prelude RTS
151
152 GPROC genie_a68g_argc;
153 GPROC genie_a68g_argv;
154 GPROC genie_abend;
155 GPROC genie_abs_bits;
156 GPROC genie_abs_bool;
157 GPROC genie_abs_char;
158 GPROC genie_abs_complex;
159 GPROC genie_abs_int;
160 GPROC genie_abs_real;
161 GPROC genie_acos_complex;
162 GPROC genie_acosdg_real;
163 GPROC genie_acosh_complex;
164 GPROC genie_acosh_real;
165 GPROC genie_acos_real;
166 GPROC genie_acotdg_real;
167 GPROC genie_acot_real;
168 GPROC genie_acsc_real;
169 GPROC genie_acscdg_real;
170 GPROC genie_add_bits;
171 GPROC genie_add_bytes;
172 GPROC genie_add_char;
173 GPROC genie_add_complex;
174 GPROC genie_add_int;
175 GPROC genie_add_long_bytes;
176 GPROC genie_add_mp_int;
177 GPROC genie_add_real;
178 GPROC genie_add_string;
179 GPROC genie_and_bits;
180 GPROC genie_and_bool;
181 GPROC genie_argc;
182 GPROC genie_arg_complex;
183 GPROC genie_argv;
184 GPROC genie_asec_real;
185 GPROC genie_asecdg_real;
186 GPROC genie_asin_complex;
187 GPROC genie_asindg_real;
188 GPROC genie_asinh_complex;
189 GPROC genie_asinh_real;
190 GPROC genie_asin_real;
191 GPROC genie_associate;
192 GPROC genie_atan2dg_real;
193 GPROC genie_atan2_real;
194 GPROC genie_atan_complex;
195 GPROC genie_atandg_real;
196 GPROC genie_atanh_complex;
197 GPROC genie_atanh_real;
198 GPROC genie_atan_real;
199 GPROC genie_backspace;
200 GPROC genie_backtrace;
201 GPROC genie_beta_inc_cf_real;
202 GPROC genie_beta_real;
203 GPROC genie_bin_int;
204 GPROC genie_bin_possible;
205 GPROC genie_bits;
206 GPROC genie_bits_lengths;
207 GPROC genie_bits_pack;
208 GPROC genie_bits_shorths;
209 GPROC genie_bits_width;
210 GPROC genie_blank_char;
211 GPROC genie_block;
212 GPROC genie_break;
213 GPROC genie_bytes_lengths;
214 GPROC genie_bytespack;
215 GPROC genie_bytes_shorths;
216 GPROC genie_bytes_width;
217 GPROC genie_cd;
218 GPROC genie_char_in_string;
219 GPROC genie_choose_real;
220 GPROC genie_clear_bits;
221 GPROC genie_clear_long_bits;
222 GPROC genie_close;
223 GPROC genie_columns;
224 GPROC genie_complex_lengths;
225 GPROC genie_complex_shorths;
226 GPROC genie_compressible;
227 GPROC genie_conj_complex;
228 GPROC genie_cas_real;
229 GPROC genie_cos_complex;
230 GPROC genie_cosdg_real;
231 GPROC genie_cosh_complex;
232 GPROC genie_cosh_real;
233 GPROC genie_cospi_real;
234 GPROC genie_cos_real;
235 GPROC genie_cotdg_real;
236 GPROC genie_cotpi_real;
237 GPROC genie_cot_real;
238 GPROC genie_cputime;
239 GPROC genie_create;
240 GPROC genie_create_pipe;
241 GPROC genie_csc_real;
242 GPROC genie_cscdg_real;
243 GPROC genie_curt_real;
244 GPROC genie_r128mach;
245 GPROC genie_debug;
246 GPROC genie_declaration;
247 GPROC genie_directory;
248 GPROC genie_divab_complex;
249 GPROC genie_divab_real;
250 GPROC genie_div_complex;
251 GPROC genie_div_int;
252 GPROC genie_div_real;
253 GPROC genie_draw_possible;
254 GPROC genie_dyad_elems;
255 GPROC genie_dyad_lwb;
256 GPROC genie_dyad_upb;
257 GPROC genie_elem_bits;
258 GPROC genie_elem_bytes;
259 GPROC genie_elem_long_bits;
260 GPROC genie_elem_long_bits;
261 GPROC genie_elem_long_bytes;
262 GPROC genie_elem_string;
263 GPROC genie_enquiry_clause;
264 GPROC genie_entier_real;
265 GPROC genie_eof;
266 GPROC genie_eoln;
267 GPROC genie_eq_bits;
268 GPROC genie_eq_bool;
269 GPROC genie_eq_bytes;
270 GPROC genie_eq_char;
271 GPROC genie_eq_complex;
272 GPROC genie_eq_int;
273 GPROC genie_eq_long_bytes;
274 GPROC genie_eq_real;
275 GPROC genie_eq_string;
276 GPROC genie_erase;
277 GPROC genie_erfc_real;
278 GPROC genie_erf_real;
279 GPROC genie_errno;
280 GPROC genie_error_char;
281 GPROC genie_establish;
282 GPROC genie_evaluate;
283 GPROC genie_exec;
284 GPROC genie_exec_sub;
285 GPROC genie_exec_sub_output;
286 GPROC genie_exec_sub_pipeline;
287 GPROC genie_exp_char;
288 GPROC genie_exp_complex;
289 GPROC genie_exp_real;
290 GPROC genie_exp_width;
291 GPROC genie_fact_real;
292 GPROC genie_file_is_block_device;
293 GPROC genie_file_is_char_device;
294 GPROC genie_file_is_directory;
295 GPROC genie_file_is_regular;
296 GPROC genie_file_mode;
297 GPROC genie_first_random;
298 GPROC genie_flip_char;
299 GPROC genie_flop_char;
300 GPROC genie_fork;
301 GPROC genie_formfeed_char;
302 GPROC genie_gamma_inc_f_real;
303 GPROC genie_gamma_inc_gf_real;
304 GPROC genie_gamma_inc_g_real;
305 GPROC genie_gamma_inc_h_real;
306 GPROC genie_gamma_real;
307 GPROC genie_garbage_collections;
308 GPROC genie_garbage_freed;
309 GPROC genie_garbage_refused;
310 GPROC genie_garbage_seconds;
311 GPROC genie_gc_heap;
312 GPROC genie_ge_bits;
313 GPROC genie_ge_bytes;
314 GPROC genie_ge_char;
315 GPROC genie_ge_int;
316 GPROC genie_ge_long_bits;
317 GPROC genie_ge_long_bytes;
318 GPROC genie_generator_bounds;
319 GPROC genie_ge_real;
320 GPROC genie_ge_string;
321 GPROC genie_get_bits;
322 GPROC genie_get_bool;
323 GPROC genie_get_char;
324 GPROC genie_get_complex;
325 GPROC genie_getenv;
326 GPROC genie_get_int;
327 GPROC genie_get_long_bits;
328 GPROC genie_get_long_int;
329 GPROC genie_get_long_real;
330 GPROC genie_get_possible;
331 GPROC genie_get_real;
332 GPROC genie_get_sound;
333 GPROC genie_get_string;
334 GPROC genie_get_text;
335 GPROC genie_getf_text;
336 GPROC genie_grep_in_string;
337 GPROC genie_grep_in_substring;
338 GPROC genie_gt_bytes;
339 GPROC genie_gt_char;
340 GPROC genie_gt_int;
341 GPROC genie_gt_long_bytes;
342 GPROC genie_gt_real;
343 GPROC genie_gt_string;
344 GPROC genie_i32mach;
345 GPROC genie_i_complex;
346 GPROC genie_identity_dec;
347 GPROC genie_idf;
348 GPROC genie_idle;
349 GPROC genie_i_int_complex;
350 GPROC genie_im_complex;
351 GPROC genie_infinity_real;
352 GPROC genie_init_heap;
353 GPROC genie_init_transput;
354 GPROC genie_int_lengths;
355 GPROC genie_int_shorths;
356 GPROC genie_int_width;
357 GPROC genie_inverfc_real;
358 GPROC genie_inverf_real;
359 GPROC genie_is_alnum;
360 GPROC genie_is_alpha;
361 GPROC genie_is_cntrl;
362 GPROC genie_is_digit;
363 GPROC genie_is_graph;
364 GPROC genie_is_lower;
365 GPROC genie_is_print;
366 GPROC genie_is_punct;
367 GPROC genie_is_space;
368 GPROC genie_is_upper;
369 GPROC genie_is_xdigit;
370 GPROC genie_last_char_in_string;
371 GPROC genie_le_bits;
372 GPROC genie_le_bytes;
373 GPROC genie_le_char;
374 GPROC genie_le_int;
375 GPROC genie_le_long_bits;
376 GPROC genie_le_long_bytes;
377 GPROC genie_leng_bytes;
378 GPROC genie_lengthen_long_bits_to_row_bool;
379 GPROC genie_le_real;
380 GPROC genie_le_string;
381 GPROC genie_lj_e_12_6;
382 GPROC genie_lj_f_12_6;
383 GPROC genie_ln1p_real;
384 GPROC genie_ln_beta_real;
385 GPROC genie_ln_choose_real;
386 GPROC genie_ln_complex;
387 GPROC genie_ln_fact_real;
388 GPROC genie_ln_gamma_real;
389 GPROC genie_ln_real;
390 GPROC genie_localtime;
391 GPROC genie_lock;
392 GPROC genie_log_real;
393 GPROC genie_long_bits_pack;
394 GPROC genie_long_bits_width;
395 GPROC genie_long_bytespack;
396 GPROC genie_long_bytes_width;
397 GPROC genie_long_exp_width;
398 GPROC genie_long_int_width;
399 GPROC genie_long_max_bits;
400 GPROC genie_long_max_int;
401 GPROC genie_long_max_real;
402 GPROC genie_long_min_real;
403 GPROC genie_long_next_random;
404 GPROC genie_long_real_width;
405 GPROC genie_long_small_real;
406 GPROC genie_lt_bytes;
407 GPROC genie_lt_char;
408 GPROC genie_lt_int;
409 GPROC genie_lt_long_bytes;
410 GPROC genie_lt_real;
411 GPROC genie_lt_string;
412 GPROC genie_make_term;
413 GPROC genie_max_abs_char;
414 GPROC genie_max_bits;
415 GPROC genie_max_int;
416 GPROC genie_max_real;
417 GPROC genie_min_real;
418 GPROC genie_minusab_complex;
419 GPROC genie_minusab_int;
420 GPROC genie_minusab_mp_int;
421 GPROC genie_minusab_real;
422 GPROC genie_minus_complex;
423 GPROC genie_minus_infinity_real;
424 GPROC genie_minus_int;
425 GPROC genie_minus_real;
426 GPROC genie_modab_int;
427 GPROC genie_mod_bits;
428 GPROC genie_mod_int;
429 GPROC genie_monad_elems;
430 GPROC genie_monad_lwb;
431 GPROC genie_monad_upb;
432 GPROC genie_mp_radix;
433 GPROC genie_mul_complex;
434 GPROC genie_mul_int;
435 GPROC genie_mul_mp_int;
436 GPROC genie_mul_real;
437 GPROC genie_ne_bits;
438 GPROC genie_ne_bool;
439 GPROC genie_ne_bytes;
440 GPROC genie_ne_char;
441 GPROC genie_ne_complex;
442 GPROC genie_ne_int;
443 GPROC genie_ne_long_bytes;
444 GPROC genie_ne_real;
445 GPROC genie_ne_string;
446 GPROC genie_new_line;
447 GPROC genie_newline_char;
448 GPROC genie_new_page;
449 GPROC genie_new_sound;
450 GPROC genie_next_random;
451 GPROC genie_next_rnd;
452 GPROC genie_not_bits;
453 GPROC genie_not_bool;
454 GPROC genie_null_char;
455 GPROC genie_odd_int;
456 GPROC genie_on_file_end;
457 GPROC genie_on_format_end;
458 GPROC genie_on_format_error;
459 GPROC genie_on_gc_event;
460 GPROC genie_on_line_end;
461 GPROC genie_on_open_error;
462 GPROC genie_on_page_end;
463 GPROC genie_on_transput_error;
464 GPROC genie_on_value_error;
465 GPROC genie_open;
466 GPROC genie_operator_dec;
467 GPROC genie_or_bits;
468 GPROC genie_or_bool;
469 GPROC genie_overab_int;
470 GPROC genie_over_bits;
471 GPROC genie_over_int;
472 GPROC genie_pi;
473 GPROC genie_plusab_bytes;
474 GPROC genie_plusab_complex;
475 GPROC genie_plusab_int;
476 GPROC genie_plusab_long_bytes;
477 GPROC genie_plusab_mp_int;
478 GPROC genie_plusab_real;
479 GPROC genie_plusab_string;
480 GPROC genie_plusto_bytes;
481 GPROC genie_plusto_long_bytes;
482 GPROC genie_plusto_string;
483 GPROC genie_pow_complex_int;
484 GPROC genie_pow_int;
485 GPROC genie_pow_real;
486 GPROC genie_pow_real_int;
487 GPROC genie_preemptive_gc_heap;
488 GPROC genie_print_bits;
489 GPROC genie_print_bool;
490 GPROC genie_print_char;
491 GPROC genie_print_complex;
492 GPROC genie_print_int;
493 GPROC genie_print_long_bits;
494 GPROC genie_print_long_int;
495 GPROC genie_print_long_real;
496 GPROC genie_print_real;
497 GPROC genie_print_string;
498 GPROC genie_print_string;
499 GPROC genie_proc_variable_dec;
500 GPROC genie_program_idf;
501 GPROC genie_put_bits;
502 GPROC genie_put_bool;
503 GPROC genie_put_char;
504 GPROC genie_put_complex;
505 GPROC genie_put_int;
506 GPROC genie_put_long_bits;
507 GPROC genie_put_long_int;
508 GPROC genie_put_long_real;
509 GPROC genie_put_possible;
510 GPROC genie_put_real;
511 GPROC genie_put_string;
512 GPROC genie_put_text;
513 GPROC genie_putf_text;
514 GPROC genie_pwd;
515 GPROC genie_read;
516 GPROC genie_read_bin;
517 GPROC genie_read_bin_file;
518 GPROC genie_read_bits;
519 GPROC genie_read_bool;
520 GPROC genie_read_char;
521 GPROC genie_read_complex;
522 GPROC genie_read_file;
523 GPROC genie_read_file_format;
524 GPROC genie_read_format;
525 GPROC genie_read_int;
526 GPROC genie_read_line;
527 GPROC genie_read_long_bits;
528 GPROC genie_read_long_int;
529 GPROC genie_read_long_real;
530 GPROC genie_read_real;
531 GPROC genie_read_string;
532 GPROC genie_real_lengths;
533 GPROC genie_realpath;
534 GPROC genie_real_shorths;
535 GPROC genie_real_width;
536 GPROC genie_re_complex;
537 GPROC genie_reidf_possible;
538 GPROC genie_repr_char;
539 GPROC genie_reset;
540 GPROC genie_reset_errno;
541 GPROC genie_reset_possible;
542 GPROC genie_rol_bits;
543 GPROC genie_ror_bits;
544 GPROC genie_round_real;
545 GPROC genie_rows;
546 GPROC genie_sec_real;
547 GPROC genie_secdg_real;
548 GPROC genie_set;
549 GPROC genie_set_bits;
550 GPROC genie_set_long_bits;
551 GPROC genie_set_possible;
552 GPROC genie_set_return_code;
553 GPROC genie_set_sound;
554 GPROC genie_shl_bits;
555 GPROC genie_shorten_bytes;
556 GPROC genie_shr_bits;
557 GPROC genie_sign_int;
558 GPROC genie_sign_real;
559 GPROC genie_sin_complex;
560 GPROC genie_sindg_real;
561 GPROC genie_sinh_complex;
562 GPROC genie_sinh_real;
563 GPROC genie_sinpi_real;
564 GPROC genie_sin_real;
565 GPROC genie_sleep;
566 GPROC genie_small_real;
567 GPROC genie_sort_row_string;
568 GPROC genie_sound_channels;
569 GPROC genie_sound_rate;
570 GPROC genie_sound_resolution;
571 GPROC genie_sound_samples;
572 GPROC genie_space;
573 GPROC genie_sqrt_complex;
574 GPROC genie_sqrt_real;
575 GPROC genie_stack_pointer;
576 GPROC genie_stand_back;
577 GPROC genie_stand_back_channel;
578 GPROC genie_stand_draw_channel;
579 GPROC genie_stand_error;
580 GPROC genie_stand_error_channel;
581 GPROC genie_stand_in;
582 GPROC genie_stand_in_channel;
583 GPROC genie_stand_out;
584 GPROC genie_stand_out_channel;
585 GPROC genie_strerror;
586 GPROC genie_string;
587 GPROC genie_stringf;
588 GPROC genie_string_in_string;
589 GPROC genie_sub_bits;
590 GPROC genie_sub_complex;
591 GPROC genie_sub_in_string;
592 GPROC genie_sub_int;
593 GPROC genie_sub_mp_int;
594 GPROC genie_sub_real;
595 GPROC genie_system;
596 GPROC genie_system_heap_pointer;
597 GPROC genie_system_stack_pointer;
598 GPROC genie_system_stack_size;
599 GPROC genie_tab_char;
600 GPROC genie_tan_complex;
601 GPROC genie_tandg_real;
602 GPROC genie_tanh_complex;
603 GPROC genie_tanh_real;
604 GPROC genie_tanpi_real;
605 GPROC genie_tan_real;
606 GPROC genie_term;
607 GPROC genie_timesab_complex;
608 GPROC genie_timesab_int;
609 GPROC genie_timesab_mp_int;
610 GPROC genie_timesab_real;
611 GPROC genie_timesab_string;
612 GPROC genie_times_bits;
613 GPROC genie_times_char_int;
614 GPROC genie_times_int_char;
615 GPROC genie_times_int_string;
616 GPROC genie_times_string_int;
617 GPROC genie_to_lower;
618 GPROC genie_to_upper;
619 GPROC genie_unimplemented;
620 GPROC genie_utctime;
621 GPROC genie_walltime;
622 GPROC genie_waitpid;
623 GPROC genie_whole;
624 GPROC genie_write;
625 GPROC genie_write_bin;
626 GPROC genie_write_bin_file;
627 GPROC genie_write_file;
628 GPROC genie_write_file_format;
629 GPROC genie_write_format;
630 GPROC genie_xor_bits;
631 GPROC genie_xor_bool;
632
633 #if defined (S_ISFIFO)
634 GPROC genie_file_is_fifo;
635 #endif
636
637 #if defined (S_ISLNK)
638 GPROC genie_file_is_link;
639 #endif
640
641 #if defined (BUILD_PARALLEL_CLAUSE)
642 GPROC genie_down_sema;
643 GPROC genie_level_int_sema;
644 GPROC genie_level_sema_int;
645 GPROC genie_up_sema;
646 #endif
647
648 #if defined (HAVE_CURL)
649 GPROC genie_http_content;
650 GPROC genie_https_content;
651 #endif
652
653 #if defined (HAVE_CURSES)
654 GPROC genie_curses_clear;
655 GPROC genie_curses_del_char;
656 GPROC genie_curses_green;
657 GPROC genie_curses_cyan;
658 GPROC genie_curses_white;
659 GPROC genie_curses_red;
660 GPROC genie_curses_yellow;
661 GPROC genie_curses_magenta;
662 GPROC genie_curses_blue;
663 GPROC genie_curses_green_inverse;
664 GPROC genie_curses_cyan_inverse;
665 GPROC genie_curses_white_inverse;
666 GPROC genie_curses_red_inverse;
667 GPROC genie_curses_yellow_inverse;
668 GPROC genie_curses_magenta_inverse;
669 GPROC genie_curses_blue_inverse;
670 GPROC genie_curses_columns;
671 GPROC genie_curses_end;
672 GPROC genie_curses_getchar;
673 GPROC genie_curses_lines;
674 GPROC genie_curses_move;
675 GPROC genie_curses_putchar;
676 GPROC genie_curses_refresh;
677 GPROC genie_curses_start;
678 #endif
679
680 #if defined (HAVE_POSTGRESQL)
681 GPROC genie_pq_backendpid;
682 GPROC genie_pq_cmdstatus;
683 GPROC genie_pq_cmdtuples;
684 GPROC genie_pq_connectdb;
685 GPROC genie_pq_db;
686 GPROC genie_pq_errormessage;
687 GPROC genie_pq_exec;
688 GPROC genie_pq_fformat;
689 GPROC genie_pq_finish;
690 GPROC genie_pq_fname;
691 GPROC genie_pq_fnumber;
692 GPROC genie_pq_getisnull;
693 GPROC genie_pq_getvalue;
694 GPROC genie_pq_host;
695 GPROC genie_pq_nfields;
696 GPROC genie_pq_ntuples;
697 GPROC genie_pq_options;
698 GPROC genie_pq_parameterstatus;
699 GPROC genie_pq_pass;
700 GPROC genie_pq_port;
701 GPROC genie_pq_protocolversion;
702 GPROC genie_pq_reset;
703 GPROC genie_pq_resulterrormessage;
704 GPROC genie_pq_serverversion;
705 GPROC genie_pq_socket;
706 GPROC genie_pq_tty;
707 GPROC genie_pq_user;
708 #endif
709
710 #if defined (HAVE_GNU_PLOTUTILS)
711 GPROC genie_draw_aspect;
712 GPROC genie_draw_atom;
713 GPROC genie_draw_background_colour;
714 GPROC genie_draw_background_colour_name;
715 GPROC genie_draw_circle;
716 GPROC genie_draw_clear;
717 GPROC genie_draw_colour;
718 GPROC genie_draw_colour_name;
719 GPROC genie_draw_fillstyle;
720 GPROC genie_draw_fontname;
721 GPROC genie_draw_fontsize;
722 GPROC genie_draw_get_colour_name;
723 GPROC genie_draw_line;
724 GPROC genie_draw_linestyle;
725 GPROC genie_draw_linewidth;
726 GPROC genie_draw_move;
727 GPROC genie_draw_point;
728 GPROC genie_draw_rect;
729 GPROC genie_draw_show;
730 GPROC genie_draw_star;
731 GPROC genie_draw_text;
732 GPROC genie_draw_textangle;
733 GPROC genie_make_device;
734 #endif
735
736 #if defined (BUILD_PARALLEL_CLAUSE)
737 PROP_T genie_parallel (NODE_T *);
738 BOOL_T is_main_thread (void);
739 void genie_abend_all_threads (NODE_T *, jmp_buf *, NODE_T *);
740 void genie_set_exit_from_threads (int);
741 #define SAME_THREAD(p, q) (pthread_equal((p), (q)) != 0)
742 #define OTHER_THREAD(p, q) (pthread_equal((p), (q)) == 0)
743 #endif
744
745 #if defined (BUILD_LINUX)
746 GPROC genie_sigsegv;
747 #endif
748
749 #endif
© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)
|