/*->c.xsymtab  */


#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <ctype.h>
#include <time.h>
#include <locale.h>



#include "h.os"
#include "h.wimp"
#include "h.sprite"
#include "h.werr"
#include "h.wimpt"
#include "h.bbc"
#include "h.akbd"
#include "h.flex"
#include "h.Drawlevel0"

#include "h.wos"


#include "h.pr"
#include "h.file"
#include "h.main"


#include "h.strdef"
#include "h.serialdev"
#include "h.serial"
#include "h.script"
#include "h.dir"
#include "h.batch"
#include "h.rxfax"
#include "h.txfax"
#include "h.config"
#include "h.vx"
#include "h.ftpglue"
#include "h.ser"
#include "h.con"
#include "h.log"
#include "h.replay"
#include "h.state"
#include "h.ident"
#include "h.band"


#include "h.xext"
#include "h.xsymtab"


extern int  fileopen(int fp);
extern int  fileclose(int fp);
extern int  filewrites(int fp);
extern int  filewritei(int fp);
extern int  fileerror(int fp);
extern int  fileeof(int fp);
extern int  filereadi(int fp);
extern int  filereads(int fp);
extern int  fileputc(int fp);
extern int  filegetc(int fp);
extern int  fileseek(int fp);
extern int  filetell(int fp);
extern void xerrorbox(int fp);
extern int  xconfirm(int fp);
extern void xexit(int fp);
extern int  xobjectexists(int fp);
extern void xstartscan(int fp);
extern int  xnextobject(int fp);

extern void printi(int fp);
extern void prints(int fp);
extern int  stoi(int fp);
extern int  itos(int fp);
extern int  itoxs(int fp);
extern int  schar(int fp);
extern int  chars(int fp);
extern int  slen(int fp);
extern int  mids(int fp);
extern void bbcvdu(int fp);
extern int  bbcinkey(int fp);
extern int  bbcadval(int fp);
extern int  bbcget(int fp);
extern int  getenvs(int fp);
extern int  osclis(int fp);
extern int  systems(int fp);
extern void ourfx(int fp);
extern int  ourswi13(int fp);
extern int  osversion(int fp);




/*****************************************************************************/



#define XFNS 127

fndefn fntable[XFNS]=
{
"addpollfunction",(extfn)addpollfunction,"R",PVOID,1,
"addtobatch",(extfn)addtobatch,"R",PINT,1,
"batchgetname",(extfn)batchgetname,"IIIR",PINT,4,
"bbc_adval",(extfn)bbcadval,"I",PINT,1,
"bbc_get",(extfn)bbcget,"",PINT,0,
"bbc_inkey",(extfn)bbcinkey,"I",PINT,1,
"bbc_vdu",(extfn)bbcvdu,"I",PVOID,1,
"callerid",(extfn)callerid,"R",PVOID,1,
"chars",(extfn)chars,"I",PSTR,1,
"claimdevice",(extfn)getdevice,"II",PINT,2,
"clock",(extfn)clock,"",PINT,0,
"configurefaxheader",(extfn)configurefaxheader,"IR",PVOID,2,
"confirm",(extfn)xconfirm,"R",PINT,1,
"debugclose",(extfn)debugclose,"",PVOID,0,
"debugopen",(extfn)debugopen,"R",PVOID,1,
"emptybatch",(extfn)emptybatch,"I",PVOID,1,
"errorbox",(extfn)xerrorbox,"R",PVOID,1,
"exit",(extfn)xexit,"I",PVOID,1,
"faxrxclosedocument",(extfn)faxrxclosedocument,"I",PINT,1,
"faxrxid",(extfn)faxrxid,"R",PVOID,1,
"faxrxopendocument",(extfn)faxrxopendocument,"",PINT,0,
"faxrxpage",(extfn)faxrxpage,"III",PINT,3,
"faxrxparams",(extfn)faxrxparams,"IIII",PVOID,4,
"faxrxscan",(extfn)faxrxscan,"II",PVOID,2,
"faxtxclosedocument",(extfn)faxtxclosedocument,"I",PINT,1,
"faxtxid",(extfn)faxtxid,"R",PVOID,1,
"faxtxopendocument",(extfn)faxtxopendocument,"",PINT,0,
"faxtxpage",(extfn)faxtxpage,"III",PINT,3,
"faxtxparams",(extfn)faxtxparams,"IIII",PVOID,4,
"faxtxscan",(extfn)faxtxscan,"II",PVOID,2,
"fileclose",(extfn)fileclose,"I",PINT,1,
"fileeof",(extfn)fileeof,"I",PINT,1,
"fileerror",(extfn)fileerror,"I",PINT,1,
"filegetc",(extfn)filegetc,"I",PINT,1,
"fileopen",(extfn)fileopen,"RR",PINT,2,
"fileputc",(extfn)fileputc,"II",PINT,2,
"filereadi",(extfn)filereadi,"I",PINT,1,
"filereads",(extfn)filereads,"RI",PINT,2,
"fileseek",(extfn)fileseek,"II",PINT,2,
"filetell",(extfn)filetell,"I",PINT,1,
"filewritei",(extfn)filewritei,"II",PINT,2,
"filewrites",(extfn)filewrites,"RI",PINT,2,
"ftpsendfiles",(extfn)ftpsendfiles,"",PINT,0,
"ftpgetfiles",(extfn)ftpgetfiles,"",PINT,0,
"fx",(extfn)ourfx,"III",PVOID,3,
"getallbytes",(extfn)getallbytes,"",PVOID,0,
"getdle",(extfn)getdle,"",PINT,0,
"getdlet",(extfn)getdlet,"I",PINT,1,
"getenvs",(extfn)getenvs,"R",PINT,1,
"getprompt",(extfn)ourgetprompt,"RI",PINT,2,
"itos",(extfn)itos,"I",PSTR,1,
"itoxs",(extfn)itoxs,"I",PSTR,1,
"linkpoll",(extfn)linkpoll,"I",PVOID,1,
"logreason",(extfn)logreason,"R",PVOID,1,
"maskdle",(extfn)maskdle,"I",PVOID,1,
"mids",(extfn)mids,"RII",PSTR,3,
"nextobject",(extfn)xnextobject,"RRR",PINT,3,
"objectexists",(extfn)xobjectexists,"R",PINT,1,
"osclis",(extfn)osclis,"R",PINT,1,
"osversion",(extfn)osversion,"",PINT,0,
"pause",(extfn)pause,"I",PVOID,1,
"printi",(extfn)printi,"I",PVOID,1,
"prints",(extfn)prints,"R",PVOID,1,
"recordmessage",(extfn)recordmessage,"I",PINT,1,
"rempollfunction",(extfn)addpollfunction,"R",PVOID,1,
"replaymessage",(extfn)replaymessage,"R",PINT,1,
"replaystop",(extfn)replaystop,"",PVOID,0,
"reversebyte",(extfn)reversebyte,"I",PINT,1,
"rxidok",(extfn)rxidok,"R",PINT,1,
"rzmodem",(extfn)rzmodem,"R",PINT,1,
"schar",(extfn)schar,"RI",PINT,2,
"serialdevcall",(extfn)serialdevcall,"IIII",PINT,4,
"serialdevinit",(extfn)serialdevinit,"I",PVOID,1,
"serialdevread",(extfn)serialdevread,"I",PINT,1,
"setautoredial",(extfn)setautoredial,"II",PVOID,2,
"setband",(extfn)setband,"RRR",PVOID,3,
"setbatch",(extfn)setbatch,"II",PVOID,2,
"setbatchconfig",(extfn)setbatchconfig,"IIIIII",PVOID,6,
"setbatchconfig2",(extfn)setbatchconfig2,"IR",PVOID,2,
"setbatchlimit",(extfn)setbatchlimit,"IIII",PVOID,4,
"setbatchnames",(extfn)setbatchnames,"RRRI",PVOID,4,
"setchannel",(extfn)setchannel,"IIII",PVOID,4,
"setcomms",(extfn)setcomms,"I",PVOID,1,
"setdlemode",(extfn)setdlemode,"I",PVOID,1,
"seterrors",(extfn)seterrors,"II",PVOID,2,
"setfaxheader",(extfn)setfaxheader,"IR",PVOID,2,
"setfaxident",(extfn)setfaxident,"IR",PVOID,2,
"setfaxparams",(extfn)setfaxparams,"IIII",PVOID,4,
"setfaxparams2",(extfn)setfaxparams2,"IIII",PVOID,4,
"setlogfile",(extfn)setlogfile,"IR",PVOID,2,
"setmodem",(extfn)setmodem,"IIIIII",PVOID,6,
"setnewfax",(extfn)setnewfax,"IIIIRI",PVOID,6,
"setpoll",(extfn)setpoll,"I",PVOID,1,
"setprint",(extfn)setvxprint,"IIIIII",PVOID,6,
"setprintoptions",(extfn)setprintoptions,"II",PVOID,2,
"setprocess",(extfn)setprocessx,"IIII",PVOID,4,
"setprocessmode",(extfn)setprocessmode,"IIIIII",PVOID,6,
"setprocessscale",(extfn)setprocessscale,"IIII",PVOID,4,
"setrxbor",(extfn)setrxbor,"I",PVOID,1,
"setserialdev",(extfn)setserialdev,"RI",PVOID,2,
"setserver",(extfn)setserver,"IRRR",PVOID,4,
"setstate",(extfn)xsetstate,"I",PVOID,1,
"settextoptions",(extfn)settextoptions,"IR",PVOID,2,
"settxbor",(extfn)settxbor,"I",PVOID,1,
"setvoiceparams",(extfn)setvoiceparams,"III",PVOID,3,
"setvoiceparams2",(extfn)setvoiceparams2,"II",PVOID,2,
"setzoom",(extfn)setzoomx,"III",PVOID,3,
"sgetc",(extfn)sgetc,"I",PINT,1,
"sgetframe",(extfn)sgetframe,"RI",PINT,2,
"sgetsid",(extfn)sgetsid,"RII",PINT,3,
"slen",(extfn)slen,"R",PINT,1,
"specifydriver",(extfn)specifydriver,"R",PVOID,1,
"sprinti",(extfn)sprinti,"I",PVOID,1,
"sprints",(extfn)sprints,"R",PVOID,1,
"sputc",(extfn)sputc,"I",PINT,1,
"sreads",(extfn)sreads,"RII",PINT,3,
"sreadtext",(extfn)sreadtext,"RII",PINT,3,
"ssendframe",(extfn)ssendframe,"R",PINT,1,
"startscan",(extfn)xstartscan,"",PVOID,0,
"stoi",(extfn)stoi,"R",PINT,1,
"swi13",(extfn)ourswi13,"IIII",PINT,4,
"systems",(extfn)systems,"R",PINT,1,
"szmodem",(extfn)szmodem,"R",PINT,1,
"terminate",(extfn)terminate,"",PVOID,0,
"txidok",(extfn)txidok,"R",PINT,1,
"writetodebug",(extfn)writetodebug,"R",PVOID,1,
"writetolog",(extfn)writetologx,"R",PVOID,1,
};




static int fncmp(const void * p1,const void * p2)
{
 return(strcmp(((fndefn *)p1)->name,((fndefn *)p2)->name));
}



/* called once boots symbol table */

int xsymtablestart(void)
{
 qsort(fntable,XFNS,sizeof(fndefn),fncmp);
 return(sizeof(fntable)/sizeof(fndefn));
}

