svn commit: r203218 - in projects/ppc64/sys: powerpc/powerpc sys
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Sat Jan 30 19:20:36 UTC 2010
Author: nwhitehorn
Date: Sat Jan 30 19:20:36 2010
New Revision: 203218
URL: http://svn.freebsd.org/changeset/base/203218
Log:
Fix argc passing in an alternative way by changing nargvstr and nenvstr to
be unsigned long instead of int. This preserves argument passing
conventions on sparc64, and eliminates hacks on powerpc64.
Modified:
projects/ppc64/sys/powerpc/powerpc/exec_machdep.c
projects/ppc64/sys/sys/exec.h
Modified: projects/ppc64/sys/powerpc/powerpc/exec_machdep.c
==============================================================================
--- projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Sat Jan 30 19:16:41 2010 (r203217)
+++ projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Sat Jan 30 19:20:36 2010 (r203218)
@@ -524,9 +524,9 @@ exec_setregs(struct thread *td, u_long e
* Emulate by setting the syscall return value cells. The
* registers still have to be set for init's fork trampoline.
*/
- td->td_retval[0] = *((register_t *)(&arginfo.ps_nargvstr));
+ td->td_retval[0] = arginfo.ps_nargvstr;
td->td_retval[1] = (register_t)arginfo.ps_argvstr;
- tf->fixreg[3] = *((register_t *)(&arginfo.ps_nargvstr));
+ tf->fixreg[3] = arginfo.ps_nargvstr;
tf->fixreg[4] = (register_t)arginfo.ps_argvstr;
tf->fixreg[5] = (register_t)arginfo.ps_envstr;
tf->fixreg[6] = 0; /* auxillary vector */
Modified: projects/ppc64/sys/sys/exec.h
==============================================================================
--- projects/ppc64/sys/sys/exec.h Sat Jan 30 19:16:41 2010 (r203217)
+++ projects/ppc64/sys/sys/exec.h Sat Jan 30 19:20:36 2010 (r203218)
@@ -48,9 +48,9 @@
*/
struct ps_strings {
char **ps_argvstr; /* first of 0 or more argument strings */
- unsigned int ps_nargvstr; /* the number of argument strings */
+ unsigned long ps_nargvstr; /* the number of argument strings */
char **ps_envstr; /* first of 0 or more environment strings */
- unsigned int ps_nenvstr; /* the number of environment strings */
+ unsigned long ps_nenvstr; /* the number of environment strings */
};
/*
More information about the svn-src-projects
mailing list