Date: Fri, 26 Jan 2001 20:49:40 +0100 From: mouss <usebsd@free.fr> To: Matt Dillon <dillon@earth.backplane.com> Cc: hackers@FreeBSD.ORG Subject: Re: [kernel patch] fcntl(...) to close many descriptors Message-ID: <4.3.0.20010126204903.06d58910@pop.free.fr> In-Reply-To: <200101261833.f0QIXi434137@earth.backplane.com> References: <4.3.0.20010126193228.06e2a200@bluesun>
index | next in thread | previous in thread | raw e-mail
At 10:33 26/01/01 -0800, Matt Dillon wrote:
> I think it is worth doing. A quick google search shows that
> the linux folks discussed the AIX thingy in March 1999, but
> I don't think they actually implemented. From the discussion,
> it appears that the fcntl would be useful and (not having seen
> your patches), almost certainly trivial to implement.
you're right. (I can resend it as a tar file...)
*** kern_descrip.c Fri Jan 26 19:42:18 2001
--- kern_descrip.c.new Fri Jan 26 20:24:07 2001
***************
*** 364,369 ****
--- 364,387 ----
(caddr_t)(intptr_t)uap->arg, sizeof(fl));
}
return(error);
+
+ /* close all descriptors starting from a given value */
+ case F_CLOSEM:
+ {
+ i = uap->fd;
+
+ p->p_retval[0] = 0;
+ if ((unsigned)i >= fdp->fd_nfiles) {
+ return (EBADF);
+ }
+ for (; i<=fdp->fd_lastfile; i++) {
+ struct close_args uap; /* XXX. requires _SYS_SYSPROTO_H_ */
+ uap.fd = i;
+ close(p, &uap);
+ }
+ return 0;
+ }
+
default:
return (EINVAL);
}
The F_CLOSEM is added to <sys/fcntl.h>
fcntl.diff
*** fcntl.h Fri Jan 26 20:24:45 2001
--- fcntl.h.new Fri Jan 26 20:25:39 2001
***************
*** 156,161 ****
--- 156,162 ----
#define F_GETLK 7 /* get record locking
information */
#define F_SETLK 8 /* set record locking
information */
#define F_SETLKW 9 /* F_SETLK; wait if blocked */
+ #define F_CLOSEM 10 /* close open fd's larger >= arg
*/
/* file descriptor flags (F_GETFD, F_SETFD) */
#define FD_CLOEXEC 1 /* close-on-exec flag */
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4.3.0.20010126204903.06d58910>
