diff options
Diffstat (limited to 'sys/kern/imgact_aout.c')
-rw-r--r-- | sys/kern/imgact_aout.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/sys/kern/imgact_aout.c b/sys/kern/imgact_aout.c index 9573928..b3beb9f9 100644 --- a/sys/kern/imgact_aout.c +++ b/sys/kern/imgact_aout.c @@ -57,28 +57,46 @@ #include <vm/vm_object.h> static int exec_aout_imgact(struct image_params *imgp); +static int aout_fixup(register_t **stack_base, struct image_params *imgp); struct sysentvec aout_sysvec = { SYS_MAXSYSCALL, sysent, 0, 0, + NULL, 0, - 0, - 0, - 0, - 0, + NULL, + NULL, + aout_fixup, sendsig, sigcode, &szsigcode, - 0, + NULL, "FreeBSD a.out", aout_coredump, NULL, - MINSIGSTKSZ + MINSIGSTKSZ, + PAGE_SIZE, + VM_MIN_ADDRESS, + VM_MAXUSER_ADDRESS, + USRSTACK, + PS_STRINGS, + VM_PROT_ALL, + exec_copyout_strings, + exec_setregs }; static int +aout_fixup(stack_base, imgp) + register_t **stack_base; + struct image_params *imgp; +{ + + return (suword(--(*stack_base), imgp->argc)); +} + +static int exec_aout_imgact(imgp) struct image_params *imgp; { |