/* Prototypes for functions defined in
alloc.c
 */

extern int consing_since_gc;

extern int gc_cons_threshold;

extern int gc_in_progress;

extern int undo_limit;

extern int undo_strong_limit;

extern int Vpurify_flag;

extern int * pure;

extern int puresize;

extern int pureptr;

extern char * pending_malloc_warning;

extern int memory_signal_data;

extern char * stack_copy;

extern int stack_copy_size;

extern int ignore_warnings;

int malloc_warning_1(int str);

int malloc_warning(char * str);

int display_malloc_warning(void);

int memory_full(void);

long * xmalloc(int size);

long * xrealloc(void * block,
                int size);

void xfree(void * block);

extern struct cons_block * cons_block;

extern int cons_block_index;

extern struct Lisp_Cons * cons_free_list;

void init_cons(void);

int free_cons(struct Lisp_Cons * ptr);

extern struct Lisp_Subr Scons;

int Fcons(int , int );

extern struct Lisp_Subr Slist;

int Flist(int , int * );

extern struct Lisp_Subr Smake_list;

int Fmake_list(int , int );

extern struct Lisp_Vector * all_vectors;

extern struct Lisp_Subr Smake_vector;

int Fmake_vector(int , int );

extern struct Lisp_Subr Svector;

int Fvector(int , int * );

extern struct Lisp_Subr Smake_byte_code;

int Fmake_byte_code(int , int * );

extern struct symbol_block * symbol_block;

extern int symbol_block_index;

extern struct Lisp_Symbol * symbol_free_list;

void init_symbol(void);

extern struct Lisp_Subr Smake_symbol;

int Fmake_symbol(int );

extern struct marker_block * marker_block;

extern int marker_block_index;

extern struct Lisp_Marker * marker_free_list;

void init_marker(void);

extern struct Lisp_Subr Smake_marker;

int Fmake_marker(void);

extern struct string_block * current_string_block;

extern struct string_block * first_string_block;

extern struct string_block * large_string_blocks;

void init_strings(void);

extern struct Lisp_Subr Smake_string;

int Fmake_string(int , int );

int make_string(char * contents,
                int length);

int build_string(char * str);

int make_uninit_string(int length);

int make_event_array(register int nargs,
                     int * args);

int make_pure_string(char * data,
                     int length);

int pure_cons(int car,
              int cdr);

int make_pure_vector(int len);

extern struct Lisp_Subr Spurecopy;

int Fpurecopy(int );

extern struct gcpro * gcprolist;

extern int * staticvec[512];

extern int staticidx;

void staticpro(int * varaddress);

extern int total_conses;

extern int total_markers;

extern int total_symbols;

extern int total_string_size;

extern int total_vector_size;

extern int total_free_conses;

extern int total_free_markers;

extern int total_free_symbols;

extern struct Lisp_Subr Sgarbage_collect;

int Fgarbage_collect(void);

extern int * last_marked[500];

extern int last_marked_index;

void mark_object(int * objptr);

void mark_buffer(int buf);

void gc_sweep(void);

void compact_strings(void);

extern struct Lisp_Subr Smemory_limit;

int Fmemory_limit(void);

int init_alloc_once(void);

int init_alloc(void);

void syms_of_alloc(void);

