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