Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_proc.c
Show First 20 Lines • Show All 3,093 Lines • ▼ Show 20 Lines | #endif | ||||
sv = p->p_sysent; | sv = p->p_sysent; | ||||
#ifdef COMPAT_FREEBSD32 | #ifdef COMPAT_FREEBSD32 | ||||
if ((req->flags & SCTL_MASK32) != 0) { | if ((req->flags & SCTL_MASK32) != 0) { | ||||
bzero(&kst32, sizeof(kst32)); | bzero(&kst32, sizeof(kst32)); | ||||
if (SV_PROC_FLAG(p, SV_ILP32)) { | if (SV_PROC_FLAG(p, SV_ILP32)) { | ||||
if (sv->sv_sigcode_base != 0) { | if (sv->sv_sigcode_base != 0) { | ||||
kst32.ksigtramp_start = sv->sv_sigcode_base; | kst32.ksigtramp_start = sv->sv_sigcode_base; | ||||
kst32.ksigtramp_end = sv->sv_sigcode_base + | kst32.ksigtramp_end = sv->sv_sigcode_base + | ||||
*sv->sv_szsigcode; | ((sv->sv_flags & SV_DSO_SIG) == 0 ? | ||||
*sv->sv_szsigcode : | |||||
(uintptr_t)sv->sv_szsigcode); | |||||
} else { | } else { | ||||
kst32.ksigtramp_start = sv->sv_psstrings - | kst32.ksigtramp_start = sv->sv_psstrings - | ||||
*sv->sv_szsigcode; | *sv->sv_szsigcode; | ||||
kst32.ksigtramp_end = sv->sv_psstrings; | kst32.ksigtramp_end = sv->sv_psstrings; | ||||
} | } | ||||
} | } | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
error = SYSCTL_OUT(req, &kst32, sizeof(kst32)); | error = SYSCTL_OUT(req, &kst32, sizeof(kst32)); | ||||
return (error); | return (error); | ||||
} | } | ||||
#endif | #endif | ||||
bzero(&kst, sizeof(kst)); | bzero(&kst, sizeof(kst)); | ||||
if (sv->sv_sigcode_base != 0) { | if (sv->sv_sigcode_base != 0) { | ||||
kst.ksigtramp_start = (char *)sv->sv_sigcode_base; | kst.ksigtramp_start = (char *)sv->sv_sigcode_base; | ||||
kst.ksigtramp_end = (char *)sv->sv_sigcode_base + | kst.ksigtramp_end = (char *)sv->sv_sigcode_base + | ||||
*sv->sv_szsigcode; | ((sv->sv_flags & SV_DSO_SIG) == 0 ? *sv->sv_szsigcode : | ||||
(uintptr_t)sv->sv_szsigcode); | |||||
} else { | } else { | ||||
kst.ksigtramp_start = (char *)sv->sv_psstrings - | kst.ksigtramp_start = (char *)sv->sv_psstrings - | ||||
*sv->sv_szsigcode; | *sv->sv_szsigcode; | ||||
kst.ksigtramp_end = (char *)sv->sv_psstrings; | kst.ksigtramp_end = (char *)sv->sv_psstrings; | ||||
} | } | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
error = SYSCTL_OUT(req, &kst, sizeof(kst)); | error = SYSCTL_OUT(req, &kst, sizeof(kst)); | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 330 Lines • Show Last 20 Lines |