Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_exec.c
Show First 20 Lines • Show All 168 Lines • ▼ Show 20 Lines | #endif | ||||
error = SYSCTL_OUT(req, &p->p_sysent->sv_psstrings, | error = SYSCTL_OUT(req, &p->p_sysent->sv_psstrings, | ||||
sizeof(p->p_sysent->sv_psstrings)); | sizeof(p->p_sysent->sv_psstrings)); | ||||
return error; | return error; | ||||
} | } | ||||
static int | static int | ||||
sysctl_kern_usrstack(SYSCTL_HANDLER_ARGS) | sysctl_kern_usrstack(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
vm_offset_t stackaddr; | |||||
struct proc *p; | struct proc *p; | ||||
int error; | int error; | ||||
p = curproc; | p = curproc; | ||||
#ifdef SCTL_MASK32 | #ifdef SCTL_MASK32 | ||||
if (req->flags & SCTL_MASK32) { | if (req->flags & SCTL_MASK32) { | ||||
unsigned int val; | unsigned int val; | ||||
val = (unsigned int)p->p_sysent->sv_usrstack; | val = (unsigned int)p->p_sysent->sv_usrstack | ||||
- p->p_vmspace->vm_stkgap; | |||||
error = SYSCTL_OUT(req, &val, sizeof(val)); | error = SYSCTL_OUT(req, &val, sizeof(val)); | ||||
} else | } else | ||||
#endif | #endif | ||||
error = SYSCTL_OUT(req, &p->p_sysent->sv_usrstack, | { | ||||
sizeof(p->p_sysent->sv_usrstack)); | stackaddr = p->p_sysent->sv_usrstack - p->p_vmspace->vm_stkgap; | ||||
error = SYSCTL_OUT(req, &stackaddr, sizeof(stackaddr)); | |||||
} | |||||
return error; | return error; | ||||
} | } | ||||
static int | static int | ||||
sysctl_kern_stackprot(SYSCTL_HANDLER_ARGS) | sysctl_kern_stackprot(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
struct proc *p; | struct proc *p; | ||||
▲ Show 20 Lines • Show All 1,839 Lines • Show Last 20 Lines |