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 | |||||