Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_proc.c
Show First 20 Lines • Show All 3,091 Lines • ▼ Show 20 Lines | #endif | ||||
if (error != 0) | if (error != 0) | ||||
return (error); | return (error); | ||||
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 = PROC_SIGCODE(p); | ||||
kst32.ksigtramp_end = sv->sv_sigcode_base + | kst32.ksigtramp_end = kst32.ksigtramp_start + | ||||
((sv->sv_flags & SV_DSO_SIG) == 0 ? | ((sv->sv_flags & SV_DSO_SIG) == 0 ? | ||||
*sv->sv_szsigcode : | *sv->sv_szsigcode : | ||||
(uintptr_t)sv->sv_szsigcode); | (uintptr_t)sv->sv_szsigcode); | ||||
} else { | } else { | ||||
kst32.ksigtramp_start = PROC_PS_STRINGS(p) - | kst32.ksigtramp_start = PROC_PS_STRINGS(p) - | ||||
*sv->sv_szsigcode; | *sv->sv_szsigcode; | ||||
kst32.ksigtramp_end = PROC_PS_STRINGS(p); | kst32.ksigtramp_end = PROC_PS_STRINGS(p); | ||||
} | } | ||||
} | } | ||||
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 *)PROC_SIGCODE(p); | ||||
kst.ksigtramp_end = (char *)sv->sv_sigcode_base + | kst.ksigtramp_end = (char *)kst.ksigtramp_start + | ||||
((sv->sv_flags & SV_DSO_SIG) == 0 ? *sv->sv_szsigcode : | ((sv->sv_flags & SV_DSO_SIG) == 0 ? *sv->sv_szsigcode : | ||||
(uintptr_t)sv->sv_szsigcode); | (uintptr_t)sv->sv_szsigcode); | ||||
} else { | } else { | ||||
kst.ksigtramp_start = (char *)PROC_PS_STRINGS(p) - | kst.ksigtramp_start = (char *)PROC_PS_STRINGS(p) - | ||||
*sv->sv_szsigcode; | *sv->sv_szsigcode; | ||||
kst.ksigtramp_end = (char *)PROC_PS_STRINGS(p); | kst.ksigtramp_end = (char *)PROC_PS_STRINGS(p); | ||||
} | } | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
▲ Show 20 Lines • Show All 430 Lines • Show Last 20 Lines |