extern ulong FPcontrol(ulong,ulong); extern ulong FPstatus(ulong,ulong); extern void FPsave(void*); extern void FPrestore(void*); extern void Sleep(Rendez*, int (*)(void*), void*); extern void Wakeup(Rendez*); extern void FPinit(void); extern void addprog(Proc*); extern Block* allocb(int); extern int canlock(Lock*); extern int canqlock(QLock*); extern void cclose(Chan*); extern void chandevinit(void); extern void chanfree(Chan*); extern Chan* cclone(Chan*, Chan*); extern void closefgrp(Fgrp*); extern void closepgrp(Pgrp*); extern int cmount(Chan*, Chan*, int, char*); extern int convD2M(Dir*, char*); extern int convM2D(char*, Dir*); extern Chan* createdir(Chan*); extern void cunmount(Chan*, Chan*); extern int decref(Ref*); extern Chan* devattach(int, char*); extern Block* devbread(Chan*, long, ulong); extern long devbwrite(Chan*, Block*, ulong); extern Chan* devclone(Chan*, Chan*); extern void devdir(Chan*, Qid, char*, long, char*, long, Dir*); extern long devdirread(Chan*, char*, long, Dirtab*, int, Devgen*); extern int devgen(Chan*, Dirtab*, int, int, Dir*); extern int devno(int, int); extern Chan* devopen(Chan*, int, Dirtab*, int, Devgen*); extern void devstat(Chan*, char*, Dirtab*, int, Devgen*); extern int devwalk(Chan*, char*, Dirtab*, int, Devgen*); extern int dirmodeconv(va_list*, Fconv*); extern void disfault(void*, char*); extern void disinit(void*); extern Chan* domount(Chan*); extern Fgrp* dupfgrp(Fgrp*); extern void emuinit(void*); extern int eqchan(Chan*, Chan*, int); extern int eqqid(Qid, Qid); extern void exhausted(char *); extern int export(int, int, int); extern Chan* fdtochan(Fgrp*, int, int, int, int); extern void freeb(Block*); extern void freeblist(Block*); extern ulong getFPcontrol(void); extern ulong getFPstatus(void); extern void gkbdputc(Queue*, int); extern int incref(Ref*); extern long ipreadnew(Chan *, void *, long, ulong, int); extern long ipwritenew(Chan *, void *, long, ulong, int); extern void isdir(Chan*); extern int kannounce(char*, char*); extern int kdial(char*, char*, char*, int*); extern int kproc(char*, void (*)(void*), void*); extern int kfgrpclose(Fgrp*, int); extern void libinit(char*); extern void lock(Lock*); extern void mountfree(Mount*); extern Chan* namec(char*, int, int, ulong); extern void nameok(char*); extern Chan* newchan(void); extern Fgrp* newfgrp(void); extern Mount* newmount(Mhead*, Chan*, int, char*); extern Pgrp* newpgrp(void); extern Proc* newproc(void); extern char* nextelem(char*, char*); extern void nexterror(void); extern int openmode(ulong); extern int oscmd(char*, int*, int*); extern void oserrstr(char*); extern long osmillisec(void); extern int osmillisleep(ulong); extern vlong osusectime(void); extern Block* padblock(Block*, int); extern void panic(char*, ...); extern int parsefields(char*, char**, int, char*); extern void pexit(char*, int); extern void pgrpcpy(Pgrp*, Pgrp*); extern void ptclose(Pthash*); extern Path* ptenter(Pthash*, Path*, char*); extern int ptpath(Path*, char*, int); extern Block* pullupblock(Block*, int); extern Block* qbread(Queue*, int); extern long qbwrite(Queue*, Block*); extern int qcanread(Queue*); extern void qclose(Queue*); extern int qclosed(Queue*); extern int qconsume(Queue*, void*, int); extern Block* qcopy(Queue*, int, ulong); extern void qdiscard(Queue*, int); extern void qflush(Queue*); extern void qfree(Queue*); extern int qfull(Queue*); extern Block* qget(Queue*); extern void qhangup(Queue*, char*); extern int qiwrite(Queue*, void*, int); extern int qlen(Queue*); extern void qlock(QLock*); extern void qnoblock(Queue*, int); extern Queue* qopen(int, int, void (*)(void*), void*); extern int qpass(Queue*, Block*); extern int qproduce(Queue*, void*, int); extern long qread(Queue*, void*, int); extern void qreopen(Queue*); extern void qsetlimit(Queue*, int); extern int qstate(Queue*); extern void qunlock(QLock*); extern int qwindow(Queue*); extern long qwrite(Queue*, void*, int); extern int readkbd(void); extern int readnum(ulong, char*, ulong, ulong, int); extern int readnum_vlong(ulong, char*, ulong, vlong, int); extern int readstr(ulong, char*, ulong, char*); extern int rendezvous(void*, ulong); extern void rlock(RWlock*); extern void runlock(RWlock*); extern void* sbrk(int); extern void seterror(char*, ...); extern void setid(char*); extern char* skipslash(char*); extern void srvrtinit(void); extern void swiproc(Proc*); extern int unionread(Chan*, void*, long); extern void unlock(Lock*); extern void vmachine(void*); extern Chan* walk(Chan*, char*, int); extern void wlock(RWlock*); extern void wunlock(RWlock*); extern void cleanexit(int); extern void oshostintr(Proc*); extern void osenter(void); extern void osleave(void); extern void ospause(void); extern void osyield(void); extern void osspin(Rendez*); extern Rb* osraninit(void); extern void oswakeupproducer(Rendez*); extern Pool* poolmk(char*, int, int, int); /* malloc */ extern void* malloc(size_t); extern void free(void*); extern void* realloc(void*, size_t); /* Namespace Emulation */ extern int kbind(char*, char*, int); extern int kclose(int); extern int kcreate(char*, int, ulong); extern int kdup(int, int); extern int kfstat(int, char*); extern int kfwstat(int, char*); extern int kmount(int, char*, int, char*); extern int kunmount(char*, char*); extern int kopen(char*, int); extern long kread(int, void*, long); extern int kremove(char*); extern long kseek(int, long, int); extern int kstat(char*, char*); extern long kwrite(int, void*, long); extern int kwstat(char*, char*); extern int kdirstat(char*, Dir*); extern int kdirfstat(int, Dir*); extern int kdirwstat(char*, Dir*); extern int kdirfwstat(int, Dir*); extern long kdirread(int, Dir*, long); extern int klisten(char*, char*); extern void devcreate(Chan*, char*, int, ulong); extern void devremove(Chan*); extern void devwstat(Chan*, char*); extern void fsremove(Chan*);