aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/sysent.h
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2019-12-03 23:17:54 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2019-12-03 23:17:54 +0000
commit31174518d2db4950b8bc8ab02e64cdb5e00d34c9 (patch)
tree2c830969197705d2f745734684051163c5b29ec5 /sys/sys/sysent.h
parentd00066a5f923073113bcb0213ca7a0a9a29b9561 (diff)
downloadsrc-31174518d2db4950b8bc8ab02e64cdb5e00d34c9.tar.gz
src-31174518d2db4950b8bc8ab02e64cdb5e00d34c9.zip
Use uintptr_t instead of register_t * for the stack base.
- Use ustringp for the location of the argv and environment strings and allow destp to travel further down the stack for the stackgap and auxv regions. - Update the Linux copyout_strings variants to move destp down the stack as was done for the native ABIs in r263349. - Stop allocating a space for a stack gap in the Linux ABIs. This used to hold translated system call arguments, but hasn't been used since r159992. Reviewed by: kib Tested on: md64 (amd64, i386, linux64), i386 (i386, linux) Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22501
Notes
Notes: svn path=/head/; revision=355373
Diffstat (limited to 'sys/sys/sysent.h')
-rw-r--r--sys/sys/sysent.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/sys/sysent.h b/sys/sys/sysent.h
index cc3924ded7d8..9ed77fd09bea 100644
--- a/sys/sys/sysent.h
+++ b/sys/sys/sysent.h
@@ -99,7 +99,7 @@ struct sysentvec {
const int *sv_errtbl; /* errno translation table */
int (*sv_transtrap)(int, int);
/* translate trap-to-signal mapping */
- int (*sv_fixup)(register_t **, struct image_params *);
+ int (*sv_fixup)(uintptr_t *, struct image_params *);
/* stack fixup function */
void (*sv_sendsig)(void (*)(int), struct ksiginfo *, struct __sigset *);
/* send signal */
@@ -109,17 +109,19 @@ struct sysentvec {
int (*sv_coredump)(struct thread *, struct vnode *, off_t, int);
/* function to dump core, or NULL */
int (*sv_imgact_try)(struct image_params *);
- void (*sv_stackgap)(struct image_params *, u_long *);
- int (*sv_copyout_auxargs)(struct image_params *, u_long *);
+ void (*sv_stackgap)(struct image_params *, uintptr_t *);
+ int (*sv_copyout_auxargs)(struct image_params *,
+ uintptr_t *);
int sv_minsigstksz; /* minimum signal stack size */
vm_offset_t sv_minuser; /* VM_MIN_ADDRESS */
vm_offset_t sv_maxuser; /* VM_MAXUSER_ADDRESS */
vm_offset_t sv_usrstack; /* USRSTACK */
vm_offset_t sv_psstrings; /* PS_STRINGS */
int sv_stackprot; /* vm protection for stack */
- int (*sv_copyout_strings)(struct image_params *, register_t **);
+ int (*sv_copyout_strings)(struct image_params *,
+ uintptr_t *);
void (*sv_setregs)(struct thread *, struct image_params *,
- u_long);
+ uintptr_t);
void (*sv_fixlimit)(struct rlimit *, int);
u_long *sv_maxssiz;
u_int sv_flags;