int chanclose(Channel*);
int chanclosing(Channel *c);
Channel*chancreate(int elemsize, int bufsize);
-int chaninit(Channel *c, int elemsize, int elemcnt);
void chanfree(Channel *c);
int chanprint(Channel *, char *, ...);
long decref(Ref *r); /* returns 0 iff value is now zero */
int threadsetgrp(int); /* set thread group, return old */
void threadsetname(char *fmt, ...);
Channel*threadwaitchan(void);
-int tprivalloc(void);
-void tprivfree(int);
-void **tprivaddr(int);
void yield(void);
+#pragma varargck argpos threadsetname 1
+
extern int mainstacksize;
/* slave I/O processes */
long ioreadn(Ioproc*, int, void*, long);
long iowrite(Ioproc*, int, void*, long);
int iosleep(Ioproc*, long);
+int ioflush(Ioproc*);
long iocall(Ioproc*, long (*)(va_list*), ...);
-void ioret(Ioproc*, int);