From owner-cvs-src@FreeBSD.ORG Tue Oct 14 20:05:55 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 35B2216A4B3; Tue, 14 Oct 2003 20:05:55 -0700 (PDT) Received: from exchhz01.viatech.com.cn (ip-167-164-97-218.anlai.com [218.97.164.167]) by mx1.FreeBSD.org (Postfix) with ESMTP id BE2BD43FAF; Tue, 14 Oct 2003 20:05:49 -0700 (PDT) (envelope-from davidxu@viatech.com.cn) Received: from viatech.com.cn (ip-240-1-168-192.rev.dyxnet.com [192.168.1.240]) by exchhz01.viatech.com.cn with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id TZ2GVT34; Wed, 15 Oct 2003 10:46:39 +0800 Message-ID: <3F8CBAB3.4080105@viatech.com.cn> Date: Wed, 15 Oct 2003 11:10:43 +0800 From: David Xu User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030723 Thunderbird/0.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Peter Wemm References: <200310150204.h9F24rVO015517@repoman.freebsd.org> In-Reply-To: <200310150204.h9F24rVO015517@repoman.freebsd.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/amd64/amd64 exception.S trap.c src/sys/amd64/include frame.h signal.h ucontext.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Oct 2003 03:05:55 -0000 Peter Wemm wrote: >peter 2003/10/14 19:04:52 PDT > > FreeBSD src repository > > Modified files: > sys/amd64/amd64 exception.S trap.c > sys/amd64/include frame.h signal.h ucontext.h > Log: > Pull the tier-2 card one last time and break the get/setcontext and > sigreturn() ABI and the signal context on the stack. > > Make the trapframe (and its shadows in the ucontext and sigframe etc) > 8 bytes larger in order to preserve 16 byte stack alignment for the > following C code calls. I could have done some padding after the > trapframe was saved, but some of the C code still expects an argument of > 'struct trapframe'. Anyway, this gives me a spare field that can be used > to store things like 'partial trapframe' status or something else in > the future. > > The runtime impact is fairly small, *except* for threaded apps and things > that decode contexts and the signal stack (eg: cvsup binary). Signal > delivery isn't too badly affected because the kernel generates the > sigframe that sigreturn uses after the handler has been called. > > The size of mcontext_t and struct sigframe hasn't changed. Only > the last few fields (sc_eip etc) got moved a little and I eliminated > a spare field. mc_len/sc_len did change location though so the > sanity checks there will still trap it. > > Revision Changes Path > 1.113 +1 -1 src/sys/amd64/amd64/exception.S > 1.266 +9 -0 src/sys/amd64/amd64/trap.c > 1.25 +3 -0 src/sys/amd64/include/frame.h > 1.24 +2 -2 src/sys/amd64/include/signal.h > 1.16 +2 -2 src/sys/amd64/include/ucontext.h > > > The change you made to ucontext.h breaks libkse. :-( David Xu