From owner-cvs-all Sun Feb 20 5:36:29 2000 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id E0CF037BB5E; Sun, 20 Feb 2000 05:36:26 -0800 (PST) (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id FAA50581; Sun, 20 Feb 2000 05:36:26 -0800 (PST) (envelope-from peter@FreeBSD.org) Message-Id: <200002201336.FAA50581@freefall.freebsd.org> From: Peter Wemm Date: Sun, 20 Feb 2000 05:36:26 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sys types.h src/sys/kern sys_generic.c Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk peter 2000/02/20 05:36:26 PST Modified files: sys/sys types.h sys/kern sys_generic.c Log: Fix select(2) for the Alpha. (!!) It was never returning true for fd's in the range of 32-63, 96-127 etc. The first problem was the FD_*() macros were shifting a 32 bit integer "1" left by more than 32 bits. The same problem happened in selscan(). ffs() also takes an int argument and causes failure. For cases where int == long (ie: the usual case for x86, but not always as gcc can have long being a 64 bit quantity) ffs() could be used. Reported by: Marian Stagarescu Reviewed by: dfr, gallatin (sys/types.h only) Approved by: jkh Revision Changes Path 1.39 +5 -4 src/sys/sys/types.h 1.55 +9 -7 src/sys/kern/sys_generic.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message