From owner-freebsd-hackers Thu Jun 27 11:35:44 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id LAA15851 for hackers-outgoing; Thu, 27 Jun 1996 11:35:44 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id LAA15841 for ; Thu, 27 Jun 1996 11:35:40 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id LAA05478; Thu, 27 Jun 1996 11:33:41 -0700 From: Terry Lambert Message-Id: <199606271833.LAA05478@phaeton.artisoft.com> Subject: Re: POSIX.4 signals + other POSIX.4 stuff to FreeBSD... To: bde@zeta.org.au (Bruce Evans) Date: Thu, 27 Jun 1996 11:33:41 -0700 (MST) Cc: hackers@freebsd.com, jau@jau.csc.fi In-Reply-To: <199606271240.WAA10241@godzilla.zeta.org.au> from "Bruce Evans" at Jun 27, 96 10:40:19 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > > the kernel though. The kernel seems still to be infested with > > fragments of code that assume sigset_t is a simple integer > > type ANDing and ORing bits in the sigset_t variables instead > > of using the POSIX.1 macros to manipulate the signal sets. > > The kernel is allowed to do this as an optimization since it knows > that sigset_t is an unsigned int in the "machine-independent" file > . The POSIX macros require the sigset_t to be indirect > so they are likely to be unnecessarily inefficient. > > > containing such an array. I have now more or less figured out > > all these code fragments within the kernel itself, but it seems > > that also the Linux application binary interface etc. LKMs have > > More importantly, the size of a sigset_t is appart of the BSD binary > interface. The kernel would have to support variably-sized sigset_t's > to support old binaries :-(. There is no such thing as a variably-sized > struct, and the current sigset_t doesn't encode its size, this isn't > easy. Use the extended structure size only in the extension interfaces, and assume defaults for the non-extension interfaces (you will have to do this as part of the ABI mapping in any case). I did something similar to this for the fcntl() calls for NFS server locking, which requires system and process ID's for the proxy. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.