summaryrefslogtreecommitdiffstats
path: root/sys/kern/imgact_aout.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/imgact_aout.c')
-rw-r--r--sys/kern/imgact_aout.c30
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;
{
OpenPOWER on IntegriCloud