closeioproc,
iocall,
ioclose,
+ioflush,
iointerrupt,
iodial,
ioopen,
ioproc,
ioread,
ioreadn,
+iosleep,
iowrite \- slave I/O processes for threaded programs
.SH SYNOPSIS
.PP
long ioread(Ioproc *io, int fd, void *a, long n);
long ioreadn(Ioproc *io, int fd, void *a, long n);
long iowrite(Ioproc *io, int fd, void *a, long n);
-int iodial(Ioproc *io, char *addr, char *local, char *dir, char *cdfp);
+int iodial(Ioproc *io, char *addr, char *local, char *dir, int *cdfp);
+int iosleep(Ioproc *io, long n);
.XX
+int ioflush(Ioproc *io);
void iointerrupt(Ioproc *io);
void closeioproc(Ioproc *io);
.XX
.IR ioread ,
.IR ioreadn ,
.IR iowrite ,
+.IR iosleep ,
and
.IR iodial
execute the
.IR dial (2))
in the slave process associated with
.IR io .
-It is an error to execute more than one call
-at a time in an I/O proc.
.PP
.I Iointerrupt
-interrupts the call currently executing in the I/O proc.
-If no call is executing,
+interrupts the next or currently executing call in the I/O proc. If
+there was no call executing, the interrupt will stay pending and the
+next I/O call will get interrupted.
+.PP
+.I Ioflush
+executes a non-op in the I/O proc. It is commonly called after
.IR iointerrupt
-is a no-op.
+to clear a pending interrupt.
.PP
.I Closeioproc
terminates the I/O proc and frees the associated
.IR dial (2),
.IR open (2),
.IR read (2),
+.IR sleep (2),
.IR thread (2)