/* * fns.h: generated by the following command: * * tail -n +1 sys/src/9/*.c wasm/sys/src/9/devproc.c wasm/sys/src/9/os.c | tr '.fns.h * * (then some further manual editing required to format filename headings) */ /* alloc */ int memusehigh(void); int memlow(void); int poolsetsize(char *s, int size); void poolimmutable(void *v); void poolmutable(void *v); char* poolname(Pool *p); Bhdr* poolchain(Pool *p); void pooldel(Pool *p, Bhdr *t); void pooladd(Pool *p, Bhdr *q); void* poolalloc(Pool *p, ulong asize); void poolfree(Pool *p, void *v); void* poolrealloc(Pool *p, void *v, ulong size); ulong poolmsize(Pool *p, void *v); ulong poolmaxsize(void); int poolread(char *va, int count, ulong offset); void* vmalloc(size_t size, const char *type, char *data); void* vsmalloc(size_t size, const char *type, char *data); void* vkmalloc(size_t size, const char *type, char *data); void* malloc(size_t size); void* mallocz(ulong size, int clr); void kfree(void *v, const char *type, char *data); void free(void *v); void* realloc(void *v, size_t size); void setmalloctag(void *v, ulong pc); ulong getmalloctag(void *v); void setrealloctag(void *v, ulong pc); ulong getrealloctag(void *v); ulong msize(void *v); void* calloc(size_t n, size_t szelem); void pooldump(Pool *p); void poolsetcompact(Pool *p, void (*move)(void*, void*)); int poolcompact(Pool *pool); char* poolaudit(char*(*audit)(int, Bhdr *)); /* cache */ void cinit(void); void copen(Chan *c); int cread(Chan *c, uchar *b, int n, vlong off); void cwrite(Chan *c, uchar *buf, int n, vlong off); void cupdate(Chan *c, uchar *buf, int n, vlong off); /* chan */ char* c2name(Chan *c); int isdotdot(char *p); int incref(Ref *r); int decref(Ref *r); void kstrcpy(char *s, char *t, int ns); int emptystr(char *s); void kstrdup(char **p, char *s); void chandevinit(void); Chan* newchan(void); Cname* newcname(char *s); void cnameclose(Cname *n); Cname* addelem(Cname *n, char *s); void chanfree(Chan *c); void cclose(Chan *c); Chan* cunique(Chan *c); int eqqid(Qid a, Qid b); int eqchan(Chan *a, Chan *b, int pathonly); int eqchantdqid(Chan *a, int type, int dev, Qid qid, int pathonly); Mhead* newmhead(Chan *from); int cmount(Chan *new, Chan *old, int flag, char *spec); void cunmount(Chan *mnt, Chan *mounted); Chan* cclone(Chan *c); int findmount(Chan **cp, Mhead **mp, int type, int dev, Qid qid); int domount(Chan **cp, Mhead **mp); Chan* undomount(Chan *c, Cname *name); int walk(Chan **cp, char **names, int nnames, int nomount, int *nerror); Chan* createdir(Chan *c, Mhead *m); void cleancname(Cname *n); Chan* namec(char *aname, int amode, int omode, ulong perm); char* skipslash(char *name); void validname(char *aname, int slashok); void isdir(Chan *c); void putmhead(Mhead *m); /* dev */ void mkqid(Qid *q, vlong path, ulong vers, int type); int devno(int c, int user); void devdir(Chan *c, Qid qid, char *n, long length, char *user, long perm, Dir *db); int devgen(Chan *c, char *name, Dirtab *tab, int ntab, int i, Dir *dp); void devinit(void); void devshutdown(void); Chan* devattach(int tc, char *spec); Chan* devclone(Chan *c); Walkqid* devwalk(Chan *c, Chan *nc, char **name, int nname, Dirtab *tab, int ntab, Devgen *gen); int devstat(Chan *c, uchar *db, int n, Dirtab *tab, int ntab, Devgen *gen); long devdirread(Chan *c, char *d, long n, Dirtab *tab, int ntab, Devgen *gen); void devpermcheck(char *fileuid, ulong perm, int omode); Chan* devopen(Chan *c, int omode, Dirtab *tab, int ntab, Devgen *gen); Block* devbread(Chan *c, long n, ulong offset); long devbwrite(Chan *c, Block *bp, ulong offset); void devcreate(Chan *c, char *name, int mode, ulong perm); void devremove(Chan *c); int devwstat(Chan *c, uchar *dp, int n); int readstr(ulong off, char *buf, ulong n, char *str); int readnum(ulong off, char *buf, ulong n, ulong val, int size); void validwstatname(char *name); Dev* devbyname(char *name); /* devcons */ void kbdslave(void *a); void gkbdputc(Queue *q, int ch); void consinit(void); int nrand(int n); int rand(void); ulong truerand(void); void _genrandomqlock(void); void _genrandomqunlock(void); /* devmnt */ long mntversion(Chan *c, char *version, int msize, int returnlen); Chan* mntauth(Chan *c, char *spec); Chan* mntchan(void); void muxclose(Mnt *m); void mntpntfree(Mnt *m); long mntrdwr(int type, Chan *c, void *buf, long n, vlong off); void mountrpc(Mnt *m, Mntrpc *r); void mountio(Mnt *m, Mntrpc *r); int mntrpcread(Mnt *m, Mntrpc *r); void mntgate(Mnt *m); void mountmux(Mnt *m, Mntrpc *r); Mntrpc* mntflushalloc(Mntrpc *r, ulong iounit); void mntflushfree(Mnt *m, Mntrpc *r); Mntrpc* mntralloc(Chan *c, ulong msize); void mntfree(Mntrpc *r); void mntqrm(Mnt *m, Mntrpc *r); Mnt* mntchk(Chan *c); void mntdirfix(uchar *dirbuf, Chan *c); int rpcattn(void *v); /* devproc */ int procfdprint(Chan *c, int fd, int w, char *s, int ns); /* devtab */ long devtabread(Chan *c, void* buf, long n, vlong off); /* env */ Egrp* newegrp(void); void closeegrp(Egrp *e); void egrpcpy(Egrp *to, Egrp *from); void ksetenv(char *var, char *val, int conf); /* errstr */ void kwerrstr(char *fmt, ...); void kerrstr(char *err, uint size); void kgerrstr(char *err, uint size); /* latin1 */ long latin1(uchar *k, int n); /* lock */ void lock(Lock *l); int canlock(Lock *l); void unlock(Lock *l); void qlock(QLock *q); int canqlock(QLock *q); void qunlock(QLock *q); void rlock(RWlock *l); int canrlock(RWlock *l); void runlock(RWlock *l); void wlock(RWlock *l); void wunlock(RWlock *l); /* main */ void putenvq(char *name, char *val, int conf); void putenvqv(char *name, char **v, int n, int conf); int kmain(int argc, char *argv[]); void links(void); void emuinit(void *imod); void errorf(char *fmt, ...); void error(char *err); void exhausted(char *resource); void nexterror(void); void* waserr(void); void poperr(void); char* enverror(void); void panic(char *fmt, ...); int kprint(int, const char *fmt, ...); void _assert(char *fmt); void sysfatal(char *fmt, ...); void oserror(void); void libinit(char *imod); /* parse */ Cmdbuf* parsecmd(char *p, int n); void cmderror(Cmdbuf *cb, char *s); Cmdtab* lookupcmd(Cmdbuf *cb, Cmdtab *ctab, int nctab); /* pgrp */ Pgrp* newpgrp(void); void closepgrp(Pgrp *p); void pgrpinsert(Mount **order, Mount *m); void pgrpcpy(Pgrp *to, Pgrp *from); Fgrp* newfgrp(Fgrp *old); Fgrp* dupfgrp(Fgrp *f); void closefgrp(Fgrp *f); Mount* newmount(Mhead *mh, Chan *to, int flag, char *spec); void mountfree(Mount *m); void closesigs(Skeyset *s); void freeskey(Signerkey *key); /* print */ void _fmtlock(void); void _fmtunlock(void); int _efgfmt(Fmt *f); /* proc */ Proc* newproc(void); void werrstr(char *fmt, ...); void Sleep(Rendez *r, int (*f)(void*), void *arg); int Wakeup(Rendez *r); void swiproc(Proc *p, int interp); void notkilled(void); void osenter(void); void osleave(void); void rptwakeup(void *o, void *ar); void* rptproc(char *s, int t, void *o, int (*active)(void*), int (*ck)(void*, int), void (*f)(void*)); void pexit(char *msg, int t); Proc* procpid(long pid); Proc* proctab(int i); void cleanexit(int s); void kproc(char *name, void (*func)(void*), void *arg, int flags); void oshostintr(Proc *p); void osyield(void); void osblock(void); void osready(Proc *p); int osmillisleep(ulong); void oslopri(void); void osreboot(char *, char**); void oslongjmp(void *regs, osjmpbuf env, int val); void acquire(void); void release(void); void addprog(Proc *p); vlong nsec(void); int _tas(int *l); /* qio */ void checkb(Block *b, char *msg); void freeb(Block *b); void freeblist(Block *b); Block* padblock(Block *bp, int size); int blocklen(Block *bp); int blockalloclen(Block *bp); Block* concatblock(Block *bp); Block* pullupblock(Block *bp, int n); Block* pullupqueue(Queue *q, int n); Block * trimblock(Block *bp, int offset, int len); Block* copyblock(Block *bp, int count); Block* adjustblock(Block* bp, int len); int pullblock(Block **bph, int count); Block* iallocb(int size); Block* allocb(int size); Block* qget(Queue *q); int qdiscard(Queue *q, int len); int qconsume(Queue *q, void *vp, int len); int qpass(Queue *q, Block *b); int qpassnolim(Queue *q, Block *b); Block* packblock(Block *bp); int qproduce(Queue *q, void *vp, int len); Block* qcopy(Queue *q, int len, ulong offset); Queue* qopen(int limit, int msg, void (*kick)(void*), void *arg); Queue* qbypass(void (*bypass)(void*, Block*), void *arg); void qaddlist(Queue *q, Block *b); Block* qremove(Queue *q); Block* bl2mem(uchar *p, Block *b, int n); Block* mem2bl(uchar *p, int len); void qputback(Queue *q, Block *b); Block* qbread(Queue *q, int len); long qread(Queue *q, void *vp, int len); long qbwrite(Queue *q, Block *b); int qwrite(Queue *q, void *vp, int len); int qiwrite(Queue *q, void *vp, int len); void qfree(Queue *q); void qclose(Queue *q); void qhangup(Queue *q, char *msg); int qisclosed(Queue *q); void qreopen(Queue *q); int qlen(Queue *q); int qwindow(Queue *q); int qcanread(Queue *q); void qsetlimit(Queue *q, int limit); void qnoblock(Queue *q, int onoff); void qflush(Queue *q); int qfull(Queue *q); int qstate(Queue *q); int qclosed(Queue *q); /* random */ void randominit(void); ulong randomread(void *xp, ulong n); /* sysfile */ Chan* fdtochan(Fgrp *f, int fd, int mode, int chkmnt, int iref); long kchanio(void *vc, void *buf, int n, int mode); int openmode(ulong o); int kchdir(char *path); int kfgrpclose(Fgrp *f, int fd); int kclose(int fd); int kcreate(char *path, int mode, ulong perm); int kdup(int old, int new); int kfstat(int fd, uchar *buf, int n); char* kfd2path(int fd); int kfauth(int fd, char *aname); int kfversion(int fd, uint msize, char *vers, uint arglen); int kpipe(int fd[2]); int kfwstat(int fd, uchar *buf, int n); long bindmount(Chan *c, char *old, int flag, char *spec); int kbind(char *new, char *old, int flags); int kmount(int fd, int afd, char *old, int flags, char *spec); int kunmount(char *old, char *new); int kopen(char *path, int mode); long unionread(Chan *c, void *va, long n); long kread(int fd, void *va, long n); long kpread(int fd, void *va, long n, vlong off); int kremove(char *path); vlong kseek(int fd, vlong off, int whence); void validstat(uchar *s, int n); int kstat(char *path, uchar *buf, int n); long kwrite(int fd, void *va, long n); long kpwrite(int fd, void *va, long n, vlong off); int kwstat(char *path, uchar *buf, int n); Dir* chandirstat(Chan *c); Dir* kdirstat(char *name); Dir* kdirfstat(int fd); int kdirwstat(char *name, Dir *dir); int kdirfwstat(int fd, Dir *dir); long kdirread(int fd, Dir **d); int kiounit(int fd); /* uqid */ void uqidinit(Uqidtab *tab); Uqid * uqidalloc(Uqidtab *tab, Chan *c); void freeuqid(Uqidtab *tab, Uqid *q); Qid mkuqid(Chan *c, Uqid *qid); /* auth */ int iseve(void); long sysfversion(ulong *arg); long sysfauth(ulong *arg); long userwrite(char *a, int n); long hostownerwrite(char *a, int n); long hostdomainwrite(char *a, int n);