return 0;
}
+/*===========================================================================*
+ * tab2ops *
+ *===========================================================================*/
PRIVATE int tab2ops(int fd, struct selectentry *e)
{
return (FD_ISSET(fd, &e->readfds) ? SEL_RD : 0) |
(FD_ISSET(fd, &e->errorfds) ? SEL_ERR : 0);
}
+/*===========================================================================*
+ * ops2tab *
+ *===========================================================================*/
PRIVATE void ops2tab(int ops, int fd, struct selectentry *e)
{
if ((ops & SEL_RD) && e->vir_readfds && FD_ISSET(fd, &e->readfds)
return;
}
+/*===========================================================================*
+ * copy_fdsets *
+ *===========================================================================*/
PRIVATE void copy_fdsets(struct selectentry *e)
{
if (e->vir_readfds)
return SUSPEND;
}
+/*===========================================================================*
+ * select_cancel_all *
+ *===========================================================================*/
PRIVATE void select_cancel_all(struct selectentry *e)
{
int fd;
return;
}
+/*===========================================================================*
+ * select_wakeup *
+ *===========================================================================*/
PRIVATE void select_wakeup(struct selectentry *e)
{
/* Open Group:
revive(e->req_procnr, e->nreadyfds);
}
+/*===========================================================================*
+ * select_reevaluate *
+ *===========================================================================*/
PRIVATE int select_reevaluate(struct filp *fp)
{
int s, remain_ops = 0, fd, type = -1;
return;
}
-