13e12c5d1SDavid du Colombier #define EOF (-1) 23e12c5d1SDavid du Colombier #define NBUF 512 3276e7d6dSDavid du Colombier 43e12c5d1SDavid du Colombier struct io{ 53e12c5d1SDavid du Colombier int fd; 6276e7d6dSDavid du Colombier uchar *bufp, *ebuf, *strp; 7276e7d6dSDavid du Colombier uchar buf[NBUF]; 83e12c5d1SDavid du Colombier }; 93e12c5d1SDavid du Colombier io *err; 10276e7d6dSDavid du Colombier 113e12c5d1SDavid du Colombier io *openfd(int), *openstr(void), *opencore(char *, int); 123e12c5d1SDavid du Colombier int emptybuf(io*); 137dd7cddfSDavid du Colombier void pchr(io*, int); 147dd7cddfSDavid du Colombier int rchr(io*); 15*85497287SDavid du Colombier int rutf(io*, char*, Rune*); 163e12c5d1SDavid du Colombier void closeio(io*); 173e12c5d1SDavid du Colombier void flush(io*); 183e12c5d1SDavid du Colombier int fullbuf(io*, int); 1973e742d7SDavid du Colombier void pdec(io*, int); 2073e742d7SDavid du Colombier void poct(io*, unsigned); 2173e742d7SDavid du Colombier void pptr(io*, void*); 223e12c5d1SDavid du Colombier void pquo(io*, char*); 233e12c5d1SDavid du Colombier void pwrd(io*, char*); 243e12c5d1SDavid du Colombier void pstr(io*, char*); 253e12c5d1SDavid du Colombier void pcmd(io*, tree*); 263e12c5d1SDavid du Colombier void pval(io*, word*); 273e12c5d1SDavid du Colombier void pfnc(io*, thread*); 283e12c5d1SDavid du Colombier void pfmt(io*, char*, ...); 29