ulong FPcontrol(ulong,ulong); ulong FPstatus(ulong,ulong); void FPsave(void*); void FPrestore(void*); void Sleep(Rendez*, int (*)(void*), void*); int Wakeup(Rendez*); void FPinit(void); void addprog(Proc*); Block* adjustblock(Block*, int); Block* allocb(int); Block* bl2mem(uchar*, Block*, int); int blocklen(Block*); char* c2name(Chan*); int canlock(Lock*); int canqlock(QLock*); void cclose(Chan*); void chandevinit(void); void chanfree(Chan*); Dir* chandirstat(Chan*); void cinit(void); char* clipread(void); int clipwrite(char*); void (*coherence)(void); void copen(Chan*); void cmderror(Cmdbuf*, char*); Block* concatblock(Block*); int cread(Chan*, uchar*, int, vlong); void cwrite(Chan*, uchar*, int, vlong); Chan* cunique(Chan*); void cupdate(Chan*, uchar*, int, vlong); char* cleanname(char*); Chan* cclone(Chan*); void closeegrp(Egrp*); void closefgrp(Fgrp*); void closepgrp(Pgrp*); void closesigs(Skeyset*); int cmount(Chan*, Chan*, int, char*); Chan* createdir(Chan*, Mhead*); void cunmount(Chan*, Chan*); int decref(Ref*); long devbwrite(Chan*, Block*, ulong); void devcreate(Chan*, char*, int, ulong); void devdir(Chan*, Qid, char*, long, char*, long, Dir*); long devdirread(Chan*, char*, long, Dirtab*, int, Devgen*); void devinit(void); int devno(int, int); Dev* devbyname(char*); void devpermcheck(char*, ulong, int); void devremove(Chan*); int devstat(Chan*, uchar*, int, Dirtab*, int, Devgen*); long devtabread(Chan*, void*, long, vlong); int devwstat(Chan*, uchar*, int); Chan* devattach(int, char*); Block* devbread(Chan*, long, ulong); Chan* devclone(Chan*); Devgen devgen; Chan* devopen(Chan*, int, Dirtab*, int, Devgen*); Walkqid* devwalk(Chan*, Chan*, char**, int, Dirtab*, int, Devgen*); void disfault(void*, char*); void disinit(void*); int domount(Chan**, Mhead**); void drawqlock(void); void drawqunlock(void); Fgrp* dupfgrp(Fgrp*); void egrpcpy(Egrp*, Egrp*); int emptystr(char*); void emuinit(void*); int eqchan(Chan*, Chan*, int); int eqqid(Qid, Qid); void error(char*); void errorf(char*, ...); #pragma varargck argpos errorf 1 void excinit(void); void exhausted(char*); int export(int, char*, int); Chan* fdtochan(Fgrp*, int, int, int, int); int findmount(Chan**, Mhead**, int, int, Qid); void freeb(Block*); void freeblist(Block*); void freeskey(Signerkey*); ulong getcallerpc(void*); ulong getFPcontrol(void); ulong getFPstatus(void); void gkbdputc(Queue*, int); int incref(Ref*); int iprint(char*, ...); void isdir(Chan*); int isdotdot(char*); int iseve(void); int kannounce(char*, char*); int kdial(char*, char*, char*, int*); void kproc(char*, void (*)(void*), void*, int); void kprocinit(Proc*); int kfgrpclose(Fgrp*, int); void ksetenv(char*, char*, int); void kstrcpy(char*, char*, int); void kstrdup(char**, char*); long latin1(uchar*, int); void libinit(char*); void links(void); void lock(Lock*); Cmdtab* lookupcmd(Cmdbuf*, Cmdtab*, int); Block* mem2bl(uchar*, int); int memusehigh(void); int memlow(void); void mkqid(Qid*, vlong, ulong, int); Qid mkuqid(Chan*, Uqid*); Chan* mntauth(Chan*, char*); long mntversion(Chan*, char*, int, int); void mountfree(Mount*); void mousetrack(int, int, int, int); void muxclose(Mnt*); Chan* namec(char*, int, int, ulong); Chan* newchan(void); Cname* newcname(char*); Egrp* newegrp(void); Fgrp* newfgrp(Fgrp*); Mount* newmount(Mhead*, Chan*, int, char*); Pgrp* newpgrp(void); Proc* newproc(void); void nexterror(void); void nofence(void); void notkilled(void); int openmode(ulong); void osblock(void); void* oscmd(char**, int, char*, int*); int oscmdwait(void*, char*, int); int oscmdkill(void*); void oscmdfree(void*); void oserror(void); void oserrstr(char*, uint); void oslongjmp(void*, osjmpbuf, int); long osmillisec(void); int osmillisleep(ulong); void osready(Proc*); int limbosleep(ulong); vlong osusectime(void); Block* packblock(Block*); Block* padblock(Block*, int); void panic(char*, ...); Cmdbuf* parsecmd(char*, int); void pexit(char*, int); void pgrpcpy(Pgrp*, Pgrp*); int progfdprint(Chan*, int, int, char*, int); void putenvq(char*, char*, int); void putenvqv(char*, char**, int, int); void putmhead(Mhead*); Block* pullupblock(Block*, int); Block* pullupqueue(Queue*, int); void qaddlist(Queue*, Block*); Block* qbread(Queue*, int); long qbwrite(Queue*, Block*); Queue* qbypass(void (*)(void*, Block*), void*); int qcanread(Queue*); void qclose(Queue*); int qisclosed(Queue*); int qconsume(Queue*, void*, int); Block* qcopy(Queue*, int, ulong); int qdiscard(Queue*, int); void qflush(Queue*); void qfree(Queue*); int qfull(Queue*); Block* qget(Queue*); void qhangup(Queue*, char*); int qiwrite(Queue*, void*, int); int qlen(Queue*); void qlock(QLock*); void qnoblock(Queue*, int); Queue* qopen(int, int, void (*)(void*), void*); int qpass(Queue*, Block*); int qproduce(Queue*, void*, int); void qputback(Queue*, Block*); long qread(Queue*, void*, int); Block* qremove(Queue*); void qreopen(Queue*); void qsetlimit(Queue*, int); int qstate(Queue*); void qunlock(QLock*); int qwindow(Queue*); int qwrite(Queue*, void*, int); ulong randomread(void *xp, ulong n); void randominit(void); int readkbd(void); int readnum(ulong, char*, ulong, ulong, int); int readnum_vlong(ulong, char*, ulong, vlong, int); int readstr(ulong, char*, ulong, char*); #define seconds() (osusectime()/1000000) void seterror(char*, ...); void setid(char*, int); void setpointer(int, int); char* skipslash(char*); void srvrtinit(void); void swiproc(Proc*, int); Block* trimblock(Block*, int, int); long unionread(Chan*, void*, long); void unlock(Lock*); Uqid* uqidalloc(Uqidtab*, Chan*); void uqidinit(Uqidtab*); void freeuqid(Uqidtab*, Uqid*); void validname(char*, int); void validstat(uchar*, int); void validwstatname(char*); void vmachine(void*); int walk(Chan**, char**, int, int, int*); void cleanexit(int); void oshostintr(Proc*); void osenter(void); void osleave(void); void oslopri(void); void ospause(void); void osyield(void); void osreboot(char*, char**); ulong poolmaxsize(void); Pool* poolmk(char*, int, int, int); void hnputv(void*, vlong); void hnputl(void*, ulong); void hnputs(void*, ushort); vlong nhgetv(void*); ulong nhgetl(void*); ushort nhgets(void*); void* smalloc(size_t); void* kmalloc(size_t); /* Namespace Emulation */ int kbind(char*, char*, int); int kclose(int); int kcreate(char*, int, ulong); int kdup(int, int); int kfstat(int, uchar*, int); int kfwstat(int, uchar*, int); int kmount(int, int, char*, int, char*); int kunmount(char*, char*); int kopen(char*, int); long kread(int, void*, long); int kremove(char*); vlong kseek(int, vlong, int); int kstat(char*, uchar*, int); long kwrite(int, void*, long); int kwstat(char*, uchar*, int); Dir* kdirstat(char*); Dir* kdirfstat(int); int kdirwstat(char*, Dir*); int kdirfwstat(int, Dir*); long kdirread(int, Dir**); int klisten(char*, char*); Cname* addelem(Cname*, char*); void cleancname(Cname*); void cnameclose(Cname*); #pragma varargck argpos iprint 1