From owner-freebsd-arch Sun Dec 12 8:26:41 1999 Delivered-To: freebsd-arch@freebsd.org Received: from ns1.yes.no (ns1.yes.no [195.204.136.10]) by hub.freebsd.org (Postfix) with ESMTP id C0B1C14CE1 for ; Sun, 12 Dec 1999 08:26:36 -0800 (PST) (envelope-from eivind@bitbox.follo.net) Received: from bitbox.follo.net (bitbox.follo.net [195.204.143.218]) by ns1.yes.no (8.9.3/8.9.3) with ESMTP id RAA23356 for ; Sun, 12 Dec 1999 17:26:34 +0100 (CET) Received: (from eivind@localhost) by bitbox.follo.net (8.8.8/8.8.6) id RAA49732 for freebsd-arch@freebsd.org; Sun, 12 Dec 1999 17:26:33 +0100 (MET) Received: from knight.cons.org (knight.cons.org [194.233.237.195]) by hub.freebsd.org (Postfix) with ESMTP id 4ED3E14E33; Sun, 12 Dec 1999 08:26:06 -0800 (PST) (envelope-from cracauer@knight.cons.org) Received: (from cracauer@localhost) by knight.cons.org (8.9.3/8.9.3) id RAA10645; Sun, 12 Dec 1999 17:26:03 +0100 (CET) Date: Sun, 12 Dec 1999 17:26:02 +0100 From: Martin Cracauer To: arch@freebsd.org Cc: marcel@freebsd.org, bde@freebsd.org Subject: Concrete plans for ucontext/mcontext changes around 4.0 Message-ID: <19991212172602.A10611@cons.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.1i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Here's my summary what to do with signal handler arguments until 4.0: 1) Before feature freeze: get the size of ucontext/mcontext into what we can live with for a longer time (i.e. until 5.0 or serious other changes). - Correct the size of the FPU/FPU-emul reservation so that it is the size of struct save87 (4 bytes too much at this time). - Add space for SSE registers. - Add some more space that allows more flexible use of the SSE register space for other purposes (isn't this pretty equivalent to the 3dnow registers on AMD, BTW?). This will not be enough space for a whole new feature. - Add one int member to use as 32 bitwise booleans to indicate what the SSE/additional space is used for in this signal invocation. FPU state will unconditionally be there. 2) Actually implement the saving of FPU state over signal handlers, ASAP. I'm working on this, but the first review result by Bruce indicates I need some additional homework, so I won't be ready on 15th Dec. I don't consider this to be a new feature, it is required semantics for ANSI C compliance, so I hope its ok to do while the freeze is in effect. 3) Fix the FPU and other CPU feature set representation in struct ucontext/mcontext. As you might have noticed, I would prefer to have real structs, not byte arrays as it is now. However, this is hard to do without serious include file bloat and some people don't want it at all (other OS don't have it as well). The implementation of 1) and 2) as indicated above will have the FPU represented exactly like struct save87 (although it appears as plain array). Thus, people will be able to use the named struct field by just casting this space, not needing to count bytes. I think this is a reasonable compromise for now. When I feel an urgent need to fix this, I will work on a restructuring and unbloat of include files and see if it is considered OK. This may become irrelevant with [sg]etcontext and/or thread changes anyway. Any objections? Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer http://www.cons.org/cracauer/ Tel.: (private) +4940 5221829 Fax.: (private) +4940 5228536 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message