16typedef int (*repl_getc_fn)(
FILE *);
17typedef void (*repl_ungetc_fn)(int,
FILE *);
20extern repl_getc_fn siod_fancy_getc;
21extern repl_ungetc_fn siod_fancy_ungetc;
22extern "C" const char *repl_prompt;
25extern LISP heap,heap_end,heap_org;
27extern LISP open_files;
29extern LISP siod_docstrings;
30extern int siod_interactive;
31void sock_acknowledge_error();
33extern LISP unbound_marker;
34extern long gc_kind_copying;
36extern long gc_cells_allocated;
37extern int siod_server_socket;
68#define NEWCELL(_into,_type) \
69{if (gc_kind_copying == 1) \
70 {if ((_into = heap) >= heap_end) \
77 freelist = CDR(freelist); \
78 ++gc_cells_allocated;} \
79 (*_into).gc_mark = 0; \
80 (*_into).type = (short) _type;}
82#define NEWCELL(_into,_type) NNEWCELL(&_into,_type)
89#define INTERRUPT_CHECK() if (--ipoll_counter < 0) full_interrupt_poll(&ipoll_counter)
91#define INTERRUPT_CHECK()
94extern char *stack_limit_ptr;
96#define STACK_LIMIT(_ptr,_amt) (((char *)_ptr) - (_amt))
99#define STACK_CHECK(_ptr) \
100 if (((char *) (_ptr)) < stack_limit_ptr) err_stack((char *) _ptr);
104void err_stack(
char *);
106#if defined(VMS) && defined(VAX)
107#define SIG_restargs ,...
113void init_subrs_base(
void);
114void init_subrs_core(
void);
115void init_subrs_doc(
void);
116void init_subrs_file(
void);
117void init_subrs_format(
void);
118void init_subrs_list(
void);
119void init_subrs_math(
void);
120void init_subrs_sys(
void);
121void init_subrs_srv(
void);
122void init_subrs_str(
void);
123void init_subrs_xtr(
void);
125void need_n_cells(
int n);
127char *must_malloc(
unsigned long size);
130void gc_fatal_error(
void);
131void gc_for_newcell(
void);
133void gc_mark(
LISP ptr);
134LISP newcell(
long type);
136void put_st(
const char *
st);
138void f_ungetc(
int c,
FILE *f);
139long no_interrupt(
long n);
148void close_open_files(
void);
149void close_open_files_upto(
LISP end);
153void handle_sigfpe(
int sig SIG_restargs);
154void handle_sigint(
int sig SIG_restargs);
155void err_ctrl_c(
void);
156double myruntime(
void);
157void grepl_puts(
char *,
void (*)(
char *));
159void scan_registers(
void);
160void init_storage_1(
int heap_size);
161LISP get_newspace(
void);
163void free_oldspace(
LISP space,
LISP end);
164void gc_stop_and_copy(
void);
165void gc_mark_and_sweep(
void);
166void gc_ms_stats_start(
void);
167void gc_ms_stats_end(
void);
168void mark_protected_registers(
void);
169void mark_locations(
LISP *start,
LISP *end);
170void mark_locations_array(
LISP *
x,
long n);
192int rfs_getc(
unsigned char **p);
193void rfs_ungetc(
unsigned char c,
unsigned char **p);
196void file_gc_free(
LISP ptr);
198LISP fd_to_scheme_file(
int fd,
199 const char *name,
const char *
how,