aboutsummaryrefslogtreecommitdiff
path: root/sys/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'sys/alpha')
-rw-r--r--sys/alpha/linux/linux_sysvec.c8
-rw-r--r--sys/alpha/osf1/imgact_osf1.c7
-rw-r--r--sys/alpha/osf1/osf1_sysvec.c8
3 files changed, 9 insertions, 14 deletions
diff --git a/sys/alpha/linux/linux_sysvec.c b/sys/alpha/linux/linux_sysvec.c
index e3b91eeb2e56..a09dfdcd0abd 100644
--- a/sys/alpha/linux/linux_sysvec.c
+++ b/sys/alpha/linux/linux_sysvec.c
@@ -97,7 +97,7 @@ elf_linux_fixup(register_t **stack_base, struct image_params *imgp)
(curthread->td_proc->p_flag & P_SA) == 0,
("unsafe elf_linux_fixup(), should be curproc"));
args = (Elf64_Auxargs *)imgp->auxargs;
- pos = *stack_base + (imgp->argc + imgp->envc + 2);
+ pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2);
if (args->trace)
AUXARGS_ENTRY(pos, AT_DEBUG, 1);
@@ -120,7 +120,7 @@ elf_linux_fixup(register_t **stack_base, struct image_params *imgp)
imgp->auxargs = NULL;
(*stack_base)--;
- **stack_base = (register_t)imgp->argc;
+ **stack_base = (register_t)imgp->args->argc;
return 0;
}
@@ -154,8 +154,8 @@ exec_linux_imgact_try(imgp)
if ((error = exec_shell_imgact(imgp)) == 0) {
char *rpath = NULL;
- linux_emul_find(FIRST_THREAD_IN_PROC(imgp->proc), NULL,
- imgp->interpreter_name, &rpath, 0);
+ linux_emul_convpath(FIRST_THREAD_IN_PROC(imgp->proc),
+ imgp->interpreter_name, UIO_SYSSPACE, &rpath, 0);
if (rpath != imgp->interpreter_name) {
int len = strlen(rpath) + 1;
diff --git a/sys/alpha/osf1/imgact_osf1.c b/sys/alpha/osf1/imgact_osf1.c
index 40520a0dd792..451896f492c7 100644
--- a/sys/alpha/osf1/imgact_osf1.c
+++ b/sys/alpha/osf1/imgact_osf1.c
@@ -118,7 +118,7 @@ exec_osf1_imgact(struct image_params *imgp)
osf_auxargs = malloc(sizeof(Osf_Auxargs), M_TEMP, M_WAITOK | M_ZERO);
imgp->auxargs = osf_auxargs;
osf_auxargs->executable = osf_auxargs->exec_path;
- path_not_saved = copyinstr(imgp->fname, osf_auxargs->executable,
+ path_not_saved = copystr(imgp->args->fname, osf_auxargs->executable,
PATH_MAX, &bytes);
if (execp->f.f_flags & DYNAMIC_FLAG) {
if (path_not_saved) {
@@ -172,11 +172,6 @@ exec_osf1_imgact(struct image_params *imgp)
bsize = eap->bsize;
imgp->entry_addr = eap->entry;
- /* copy in arguments and/or environment from old process */
-
- error = exec_extract_strings(imgp);
- if (error)
- goto bail;
/*
* Destroy old process VM and create a new one (with a new stack).
diff --git a/sys/alpha/osf1/osf1_sysvec.c b/sys/alpha/osf1/osf1_sysvec.c
index 0dea307c9d91..818255368215 100644
--- a/sys/alpha/osf1/osf1_sysvec.c
+++ b/sys/alpha/osf1/osf1_sysvec.c
@@ -117,15 +117,15 @@ osf1_freebsd_fixup(long **stack_base, struct image_params *imgp)
Osf_Auxargs *args;
args = (Osf_Auxargs *)imgp->auxargs;
- pos = *stack_base + (imgp->argc + imgp->envc + 2);
+ pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2);
arginfo = (struct ps_strings *)PS_STRINGS;
sz = *(imgp->proc->p_sysent->sv_szsigcode);
destp = (caddr_t)arginfo - szsigcode - SPARE_USRSPACE -
- roundup((ARG_MAX - imgp->stringspace), sizeof(char *));
+ roundup((ARG_MAX - imgp->args->stringspace), sizeof(char *));
- destp -= imgp->stringspace;
+ destp -= imgp->args->stringspace;
destp -= strlen(args->executable)+2;
copyout(args->executable, destp, strlen(args->executable)+1);
@@ -143,6 +143,6 @@ osf1_freebsd_fixup(long **stack_base, struct image_params *imgp)
free(imgp->auxargs, M_TEMP);
imgp->auxargs = NULL;
(*stack_base)--;
- **stack_base = (long)imgp->argc;
+ **stack_base = (long)imgp->args->argc;
return 0;
}