Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jul 2002 18:57:45 +1000
From:      Peter Grehan <peterg@ptree32.com.au>
To:        obrien@FreeBSD.ORG
Cc:        freebsd-ppc@FreeBSD.ORG
Subject:   Re: success level with peter g's patch..
Message-ID:  <3D37D489.49997C26@ptree32.com.au>
References:  <1027050508.3d378c0c98e84@www.wantpackets.com> <3D37BB53.D5486D0B@ptree32.com.au> <20020719080635.GA70923@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi David,

> How do other FreeBSD platforms handle this?  That is more important.

 From a high-level view, it shouldn't matter: there is no non-error return
from execve(), and all arch's handle EJUSTRETURN in syscall() for sigreturn.

 i386 doesn't get a register trash because the startup params are on the
stack. For alpha, it looks like the ps_strings param is overwritten:

machdep.c:setreg()
   tfp->tf_regs[FRAME_A3] = PS_STRINGS;            /* a3 = ps_strings */

trap.c:syscall()
        switch (error) {
        case 0:
                ...
                framep->tf_regs[FRAME_A3] = 0;    <- overwrite PS_STRINGS

 sparc64 already uses the td_retval[] trick, and does anyone really understand
ia64 assembler ? :-)

later,

Peter.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ppc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D37D489.49997C26>