/*
 * rproto.h -- prototypes for run-time functions.
 */


int	bfunc		Params((noargs));
int	coswitch	Params((word *old, word *new, int first));
int	dup2		Params((int h1, int h2));
char	*ecvt		Params((double value, int count, int *dec, int* sign));

#if IntBits == 16
novalue	llqsort		Params((char *base, int nel, int width, int (*cmp)()));
#endif					/* IntBits == 16 */

int	printable	Params((int c));

#define Fargs dptr cargp

#define FncDef(p,n) int Cat(X,p) 	Params((Fargs));
#define FncDefV(p) int Cat(X,p) 	Params((int nargs,Fargs));
#include "..\h\fdefs.h"
#undef FncDef
#undef FncDefV
#define OpDef(p,n,s) int Cat(O,p) 	Params((Fargs));
#include "..\h\odefs.h"
#undef OpDef

int	Ahgener			Params((dptr cargp));

novalue	addmem Params((struct b_set *ps,struct b_selem *pe, union block **pl));
novalue	adjust			Params((char *source,char *dest));
struct	astkblk *alcactiv	Params((noargs));
struct	b_coexpr *alccoexp	Params((noargs));
struct	b_cset *alccset		Params((noargs));
struct	b_external *alcextrnl	Params((int n));
struct	b_file *alcfile		Params((FILE *fd,int status,dptr name));
union	block *alchash		Params((int tcode));
struct	b_list *alclist		Params((uword size));
struct	b_lelem *alclstb	Params((uword nslots,uword first,uword nused));
struct	b_real *alcreal		Params((double val));
struct	b_record *alcrecd	Params((int nflds,union block **recptr));
struct	b_refresh *alcrefresh	Params((word *entryx,int na,int nl));
struct	b_slots *alcsegment	Params((word nslots));
struct	b_selem *alcselem	Params((dptr mbr,uword hn));
char	*alcstr			Params((char *s,word slen));
struct	b_tvsubs *alcsubs	Params((word len,word pos,dptr var));
struct	b_telem *alctelem	Params((noargs));
struct	b_tvtbl *alctvtbl	Params((dptr tbl,dptr ref,uword hashnum));
int	anycmp			Params((dptr dp1,dptr dp2));
novalue	atrace			Params((dptr sptr));
int	blkreq			Params((uword bytes));
int	Obscan			Params((int nargs,Fargs));
novalue	c_exit			Params((int i));
novalue	coacttrace Params((struct b_coexpr *ccp, struct b_coexpr *ncp));
novalue	cofailtrace Params((struct b_coexpr *ccp, struct b_coexpr *ncp));
novalue	cofree			Params((noargs));
novalue	collect			Params((int region));
novalue	compact			Params((char *source));
novalue	corettrace Params((struct b_coexpr *ccp, struct b_coexpr *ncp));
int	cplist			Params((dptr dp1,dptr dp2,word i,word j));
int	cpset			Params((dptr dp1,dptr dp2,word size));
int	Ocreate			Params((word *entryp,Fargs));
int	csetcmp			Params((unsigned int *cs1,unsigned int *cs2));
novalue	ctrace			Params((dptr sptr,int nargs,dptr arg));
int	cvcset			Params((dptr dp,int * *cs,int *csbuf));
int	cvint			Params((dptr dp));
int	cvnum			Params((dptr dp));
word	cvpos			Params((long pos,long len));
int	cvreal			Params((dptr dp));
int	cvstr			Params((dptr dp,char *sbuf));
novalue	datainit		Params((noargs));
int	defcset			Params((dptr dp,int * *cp,int *buf,int *def));
int	deffile			Params((dptr dp,dptr def));
int	defint			Params((dptr dp,long *lp,word def));
int	defshort		Params((dptr dp,int def));
int	defstr			Params((dptr dp,char *buf,dptr def));
int	deref			Params((dptr dp));
int	doasgn			Params((dptr dp1,dptr dp2));
int	doimage			Params((int c,int q));

#ifdef DeBugIconx
novalue	blkdump			Params((noargs));
novalue	descr			Params((dptr dp));
novalue	dumpact			Params((struct b_coexpr *cw));
#endif					/* DeBugIconx */

novalue	env_int Params((char *name,word *variable,int non_neg, uword limit));
novalue	envset			Params((noargs));
int	equiv			Params((dptr dp1,dptr dp2));
int	err			Params((noargs));
novalue	error			Params((char *s));
int	Oescan			Params((int nargs,Fargs));

#ifdef ExternalFunctions
dptr	extcall			Params((dptr dargv, int argc, int *ip));
#endif					/* ExternalFunctions */

novalue	fatalerr		Params((int n,dptr v));
int	Ofield			Params((int nargs,Fargs));
int	findipc			Params((int line));
char	*findfile		Params((word *ipc));
int	findline		Params((word *ipc));
novalue	fixtrap			Params((noargs));
novalue	fpetrap			Params((noargs));
novalue	failtrace		Params((dptr sptr));
int	getimage		Params((dptr dp1, dptr dp2));
int	getstrg			Params((char *buf,int maxi,FILE *fd));
int	getvar			Params((char *s, dptr dp));
uword	hash			Params((dptr dp));
union block **hchain		Params((union block *pb,uword hn));
novalue	hgrow			Params((dptr dp));
union block *hmake		Params((int tcode,word nslots,word nelem));
novalue	hshrink			Params((dptr dp));
char	*icon_gcvt		Params((double number,int ndigit,char *buf));
novalue	iconhost		Params((char *hostname));
novalue	icon_init		Params((char *name));
dptr	icon_call		Params((char *s, int argc, dptr dp));
novalue	icon_setup		Params((int argc, char **argv, int *ip));
novalue	initalloc		Params((word codesize));
novalue	inttrap			Params((noargs));

int	interp			Params((int fsig,dptr cargp));

int	invoke			Params((int nargs,dptr  *cargp,int *n));
long	ipow			Params((long n1,long n2));
int	keyref			Params((dptr dp1, dptr dp2));
int	Okeywd			Params((int nargs,Fargs));
int	lexcmp			Params((dptr dp1,dptr dp2));
int	Olimit			Params((int nargs,Fargs));
int	Ollist			Params((int nargs,Fargs));
word	longread		Params((char *s,int width,long len,FILE *fname));
int	makereal		Params((double r,dptr dp));
novalue	markblock		Params((dptr dp));
novalue	markptr			Params((union block **));
union block **memb Params((union block *pb,dptr x,uword hn, int *res));
int	Omkrec			Params((int nargs,Fargs));
novalue	mksubs Params((dptr var,dptr val,word i,word j, dptr result));
novalue	mvc			Params((uword n,char *src,char *dest));
int	numcmp			Params((dptr dp1,dptr dp2,dptr dp3));
int	order			Params((dptr dp));
novalue	outimage		Params((FILE *f,dptr dp,int restrict));
struct	b_coexpr *popact	Params((struct b_coexpr *ce));
novalue	postqual		Params((dptr dp));
word	prescan			Params((dptr d));
int	pushact Params((struct b_coexpr *ce, struct b_coexpr *actvtr));
int	putpos			Params((dptr dp,struct b_tvkywd *bp));
int	putrec			Params((FILE *fd,dptr d));
int	putstr			Params((FILE *f,dptr d));
int	putsub			Params((dptr dp,struct b_tvkywd *bp));
int	putint			Params((dptr dp,struct b_tvkywd *bp));
int	qlcmp			Params((dptr  *q1,dptr  *q2));
int	qtos			Params((dptr dp,char *sbuf));
novalue	resolve			Params((noargs));
int	rtos			Params((double n,dptr dp,char *s));
novalue	rtrace			Params((dptr sptr,dptr rval));
novalue	runerr			Params((int n,dptr v));
novalue	scollect		Params((word extra));
novalue	segvtrap		Params((noargs));
novalue	stkdump			Params((int));
novalue	strace			Params((dptr sptr,dptr rval));
int	strprc			Params((dptr dp,word n));
int	strreq			Params((uword n));
novalue	sweep			Params((struct b_coexpr *ce));
novalue	syserr			Params((char *s));
struct	b_coexpr *topact	Params((struct b_coexpr *ce));
novalue	ttrace			Params((noargs));
novalue	xdisp Params((struct pf_marker *fp,dptr dp,int count, FILE *f));
novalue	xtrace Params((struct b_proc *bp,word nargs,dptr arg, int pline,char *pfile));

#ifdef MemMon

novalue	MMInit			Params((char *name));
novalue	MMShow			Params((dptr dp, char *s));
novalue	MMTerm			Params((char *part1, char *part2));

novalue	MMAlc			Params((word len, int type));
novalue	MMBGC			Params((int region));
novalue	MMEGC			Params((noargs));
novalue	MMMark			Params((char *block, int type));
novalue	MMStat			Params((char *a, word n, int c));
novalue	MMStr			Params((word slen));
novalue	MMSMark			Params((char *saddr, word slen));
#endif					/* MemMon */


#if !(MACINTOSH && MPW)
double pow();			/* prototype problem */
#endif					/* !(MACINTOSH && MPW) */

word	add			Params((word a, word b));
word	sub			Params((word a, word b));
word	mul			Params((word a, word b));
word	neg			Params((word a));
#ifdef LargeInts
struct	b_bignum *alcbignum	Params((word n));
word	bigradix		Params((int sign, int r, char *s, dptr dx));
double	bigtoreal		Params((dptr da));
int	realtobig		Params((dptr da, dptr dx));
int	bigtos			Params((dptr da, dptr dx));
novalue	bigprint		Params((FILE *f, dptr da));
int	cpbignum		Params((dptr da, dptr db));
int	bigadd			Params((dptr da, dptr db, dptr dx));
int	bigsub			Params((dptr da, dptr db, dptr dx));
int	bigmul			Params((dptr da, dptr db, dptr dx));
int	bigdiv			Params((dptr da, dptr db, dptr dx));
int	bigmod			Params((dptr da, dptr db, dptr dx));
int	bigneg			Params((dptr da, dptr dx));
int	bigpow			Params((dptr da, dptr db, dptr dx));
int	bigand			Params((dptr da, dptr db, dptr dx));
int	bigor			Params((dptr da, dptr db, dptr dx));
int	bigxor			Params((dptr da, dptr db, dptr dx));
int	bigshift		Params((dptr da, dptr db, dptr dx));
word	bigcmp			Params((dptr da, dptr db));
int	bigrand			Params((dptr da, dptr dx));
#endif					/* LargeInts */

/*
 * Temprary fix
 */

#if ATARI_ST
char	*sbrk			Params((int incr));
#endif                                  /* ATARI_ST */

#if MACINTOSH
#if MPW
char	*brk			Params((char *addr));
char	*sbrk			Params((int incr));
novalue	free			Params((char* addr);
#endif					/* MPW */
#endif					/* MACINTOSH */

#if MSDOS
#if LATTICE
char	*sbrk			Params((int incr));
#endif                                  /* LATTICE */
#endif                                  /* MSDOS */

#if MVS || VM
#define brk(x) sbrk(((char *)(x))-sbrk(0))
char    *sbrk                   Params((int incr));
novalue free                    Params((void* addr));
#endif                                  /* MVS || VM */

#if UNIX || VMS
char	*brk			Params((char *addr));
char	*sbrk			Params((int incr));
FILE	*popen			Params((char * command, char *type));
#endif                                  /* UNIX || VMS */

#ifdef EvalTrace
novalue	TRInit			Params((char *name));
novalue	TRShow			Params((dptr dp, char *s));
#endif					/* EvalTrace */
