summaryrefslogtreecommitdiff
path: root/os
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@sun.com>2009-06-18 09:49:12 -0700
committerAlan Coopersmith <alan.coopersmith@sun.com>2009-06-18 09:49:19 -0700
commit75c51c67b340548286efd41a53882e2acaf74ab5 (patch)
tree64819b635355465fb1b7f6b1b4b0dc44a7d7870a /os
parent128cd03eecacc6d5c5903d59a11966dcf3697bf1 (diff)
Clarify use of and need for mffs vs. ffs
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Diffstat (limited to 'os')
-rw-r--r--os/WaitFor.c4
-rw-r--r--os/connection.c4
-rw-r--r--os/osdep.h2
3 files changed, 6 insertions, 4 deletions
diff --git a/os/WaitFor.c b/os/WaitFor.c
index 9a204c7a7..4b5952565 100644
--- a/os/WaitFor.c
+++ b/os/WaitFor.c
@@ -92,6 +92,8 @@ SOFTWARE.
#define GetErrno() errno
#endif
+/* like ffs, but uses fd_mask instead of int as argument, so it works
+ when fd_mask is longer than an int, such as common 64-bit platforms */
/* modifications by raphael */
int
mffs(fd_mask mask)
@@ -336,7 +338,7 @@ WaitForSomething(int *pClientsReady)
{
int client_priority, client_index;
- curclient = ffs (clientsReadable.fds_bits[i]) - 1;
+ curclient = mffs (clientsReadable.fds_bits[i]) - 1;
client_index = /* raphael: modified */
ConnectionTranslation[curclient + (i * (sizeof(fd_mask) * 8))];
#else
diff --git a/os/connection.c b/os/connection.c
index 0c72b67eb..3ff93bbb6 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -827,7 +827,7 @@ EstablishNewConnections(ClientPtr clientUnused, pointer closure)
int status;
#ifndef WIN32
- curconn = ffs (readyconnections.fds_bits[i]) - 1;
+ curconn = mffs (readyconnections.fds_bits[i]) - 1;
readyconnections.fds_bits[i] &= ~((fd_mask)1 << curconn);
curconn += (i * (sizeof(fd_mask)*8));
#else
@@ -992,7 +992,7 @@ CheckConnections(void)
mask = AllClients.fds_bits[i];
while (mask)
{
- curoff = ffs (mask) - 1;
+ curoff = mffs (mask) - 1;
curclient = curoff + (i * (sizeof(fd_mask)*8));
FD_ZERO(&tmask);
FD_SET(curclient, &tmask);
diff --git a/os/osdep.h b/os/osdep.h
index e719f9a70..b0d30e9ee 100644
--- a/os/osdep.h
+++ b/os/osdep.h
@@ -204,7 +204,7 @@ extern Bool AnyClientsWriteBlocked;
extern WorkQueuePtr workQueue;
-/* added by raphael */
+/* in WaitFor.c */
#ifdef WIN32
typedef long int fd_mask;
#endif