Date: Thu, 13 Oct 2005 10:54:57 -0700 From: Brooks Davis <brooks@one-eyed-alien.net> To: John Baldwin <jhb@freebsd.org> Cc: David Xu <bsddiy@126.com>, freebsd-arch@freebsd.org Subject: Re: POSIX siginfo Message-ID: <20051013175457.GA27418@odin.ac.hmc.edu> In-Reply-To: <200510131031.53753.jhb@freebsd.org> References: <434DD327.7090200@126.com> <200510131031.53753.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--zhXaljGHf11kAtnf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Oct 13, 2005 at 10:31:50AM -0400, John Baldwin wrote: > On Wednesday 12 October 2005 11:23 pm, David Xu wrote: > > I am trying to implement POSIX sigqueue, while staring some code > > in machdep.c and trap.c, I found our si_code for siginfo structure > > is not in POSIX standard, all are machine dependent magical values > > pushed by CPU. POSIX lists all these standard codes: > > > > http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html > > > > /* codes for SIGILL */ > > ILL_ILLOPC > > ILL_ILLOPN > > ILL_ILLADR > > ILL_ILLTRP > > ILL_PRVOPC > > ILL_PRVREG > > ILL_COPROC > > ILL_BADSTK > > > > /* codes for SIGBUS */ > > BUS_ADRALN > > BUS_ADRERR > > BUS_OBJERR > > BUS_RESERVED > > > > /* codes for SIGSEGV */ > > SEGV_MAPERR > > SEGV_ACCERR > > > > /* codes for SIGFPE */ > > FPE_INTOVF 1 > > FPE_INTDIV 2 > > FPE_FLTDIV 3 > > FPE_FLTOVF 4 > > FPE_FLTUND 5 > > FPE_FLTRES 6 > > FPE_FLTINV 7 > > FPE_FLTSUB 8 > > > > /* codes for SIGTRAP */ > > TRAP_BRKPT > > TRAP_TRACE > > > > ... > > > > Note that, NetBSD and Linux had already used the POSIX codes, should we > > use them too? >=20 > Hmm, looks like we do use these values in some cases on i386 at least for= =20 > SIGFPE and possibly SIGBUS. I think you should fix all the archs to use= =20 > these codes. I would even go ahead and commit that on its own before the= =20 > POSIX sigqueue stuff. I agree. I ran into our lack of many of these just yesterday when working on porting Open MPI[0]. I've got patches that make us compile there that will be needed for the foreseeable future, but to be blunt the current status of si_code support is really lame. We don't even have a list of values we do return other then some vague allusions to values SI_ and FPE_ in sigaction(2). It would be nice if we could at least define the values POSIX says we should define and either implement them or document what we do implement. -- Brooks [0] Of course what Open MPI is doing with the values is utterly evil since it calls all sorts of non-signal safe functions in the signal handler, but that's another story. --=20 Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 --zhXaljGHf11kAtnf Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQFDTp9xXY6L6fI4GtQRAnjyAJ0VR6oDy03ZdsPto2erOqKp5BcvTwCfbfrU NeGUbqV7RAktO169pyGNeyg= =KuIS -----END PGP SIGNATURE----- --zhXaljGHf11kAtnf--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051013175457.GA27418>