CLEANUP: polling: rename "spec_e" to "state"
We're completely changing the way FDs will be polled. First, let's fix
a few field names which become confusing. "spec_e" was used to store a
speculative I/O event state. Now we'll store the whole R/W states for
the FD there.
diff --git a/include/proto/fd.h b/include/proto/fd.h
index 7fe616e..a67a320 100644
--- a/include/proto/fd.h
+++ b/include/proto/fd.h
@@ -131,7 +131,7 @@
*/
static inline int fd_ev_is_set(const int fd, int dir)
{
- return ((unsigned)fdtab[fd].spec_e >> dir) & FD_EV_STATUS;
+ return ((unsigned)fdtab[fd].state >> dir) & FD_EV_STATUS;
}
/* Disable processing of events on fd <fd> for direction <dir>. Note: this
@@ -139,10 +139,10 @@
*/
static inline void fd_ev_clr(const int fd, int dir)
{
- unsigned int i = ((unsigned int)fdtab[fd].spec_e) & (FD_EV_STATUS << dir);
+ unsigned int i = ((unsigned int)fdtab[fd].state) & (FD_EV_STATUS << dir);
if (i == 0)
return; /* already disabled */
- fdtab[fd].spec_e ^= i;
+ fdtab[fd].state ^= i;
updt_fd(fd); /* need an update entry to change the state */
}
@@ -151,10 +151,10 @@
*/
static inline void fd_ev_wai(const int fd, int dir)
{
- unsigned int i = ((unsigned int)fdtab[fd].spec_e) & (FD_EV_STATUS << dir);
+ unsigned int i = ((unsigned int)fdtab[fd].state) & (FD_EV_STATUS << dir);
if (i == (FD_EV_POLLED << dir))
return; /* already in desired state */
- fdtab[fd].spec_e ^= i ^ (FD_EV_POLLED << dir);
+ fdtab[fd].state ^= i ^ (FD_EV_POLLED << dir);
updt_fd(fd); /* need an update entry to change the state */
}
@@ -163,7 +163,7 @@
*/
static inline void fd_ev_set(int fd, int dir)
{
- unsigned int i = ((unsigned int)fdtab[fd].spec_e) & (FD_EV_STATUS << dir);
+ unsigned int i = ((unsigned int)fdtab[fd].state) & (FD_EV_STATUS << dir);
/* note that we don't care about disabling the polled state when
* enabling the active state, since it brings no benefit but costs
@@ -171,17 +171,17 @@
*/
if (i & (FD_EV_ACTIVE << dir))
return; /* already in desired state */
- fdtab[fd].spec_e |= (FD_EV_ACTIVE << dir);
+ fdtab[fd].state |= (FD_EV_ACTIVE << dir);
updt_fd(fd); /* need an update entry to change the state */
}
/* Disable processing of events on fd <fd> for both directions. */
static inline void fd_ev_rem(const int fd)
{
- unsigned int i = ((unsigned int)fdtab[fd].spec_e) & FD_EV_CURR_MASK;
+ unsigned int i = ((unsigned int)fdtab[fd].state) & FD_EV_CURR_MASK;
if (i == 0)
return; /* already disabled */
- fdtab[fd].spec_e ^= i;
+ fdtab[fd].state ^= i;
updt_fd(fd); /* need an update entry to change the state */
}
diff --git a/include/types/fd.h b/include/types/fd.h
index 701edfc..23550cb 100644
--- a/include/types/fd.h
+++ b/include/types/fd.h
@@ -46,7 +46,7 @@
#define FD_POLL_STICKY (FD_POLL_ERR | FD_POLL_HUP)
/* Event state for an FD in each direction, as found in the 4 lower bits of
- * fdtab[].spec_e, and in the 4 next bits.
+ * fdtab[].state, and in the 4 next bits.
*/
#define FD_EV_ACTIVE 1U
#define FD_EV_POLLED 4U
@@ -70,7 +70,7 @@
int (*iocb)(int fd); /* I/O handler, returns FD_WAIT_* */
void *owner; /* the connection or listener associated with this fd, NULL if closed */
unsigned int spec_p; /* speculative polling: position in spec list+1. 0=not in list. */
- unsigned char spec_e; /* speculative polling: read and write events status. 4 bits */
+ unsigned char state; /* FD state for read and write directions */
unsigned char ev; /* event seen in return of poll() : FD_POLL_* */
unsigned char new:1; /* 1 if this fd has just been created */
unsigned char updated:1; /* 1 if this fd is already in the update list */