From owner-freebsd-hackers Thu Apr 20 9: 9:12 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from mail.hiwaay.net (fly.HiWAAY.net [208.147.154.56]) by hub.freebsd.org (Postfix) with ESMTP id 0C48837B575 for ; Thu, 20 Apr 2000 09:09:10 -0700 (PDT) (envelope-from sprice@hiwaay.net) Received: from localhost (sprice@localhost) by mail.hiwaay.net (8.10.1/8.10.1) with ESMTP id e3KG98q19461; Thu, 20 Apr 2000 11:09:08 -0500 (CDT) Date: Thu, 20 Apr 2000 11:09:07 -0500 (CDT) From: Steve Price To: Anatoly Vorobey Cc: hackers@freebsd.org Subject: Re: sigjmp_buf question In-Reply-To: <20000420055849.A66104@happy.checkpoint.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Thu, 20 Apr 2000, Anatoly Vorobey wrote: # Look into src/lib/libc/i386/gen/_setjmp.S and other files in # the same directory for setjmp() and sigsetmp(). Basically, it'll store # edx, ebx, esp, ebp, esi, edi, and the CPU control word, in that order. Now I finally understand why trying to use the following construct to get the signalmask no longer works with version >= 4.0. int signalmask = my_sigjmp_buf._sjb[6]; The status control word is there now and the signalmask comes after because its size can vary. In theory at least I should be able to get the signalmask now with something along the following lines. memcpy(signalmask, &(my_sigjmp_buf._sjb[7]), sizeof(sigset_t)); Thanks. -steve To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message