Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_proc.c
Show First 20 Lines • Show All 1,137 Lines • ▼ Show 20 Lines | fill_kinfo_proc_only(struct proc *p, struct kinfo_proc *kp) | ||||
kp->ki_addr =/* p->p_addr; */0; /* XXX */ | kp->ki_addr =/* p->p_addr; */0; /* XXX */ | ||||
kp->ki_args = p->p_args; | kp->ki_args = p->p_args; | ||||
kp->ki_textvp = p->p_textvp; | kp->ki_textvp = p->p_textvp; | ||||
#ifdef KTRACE | #ifdef KTRACE | ||||
kp->ki_tracep = p->p_tracevp; | kp->ki_tracep = p->p_tracevp; | ||||
kp->ki_traceflag = p->p_traceflag; | kp->ki_traceflag = p->p_traceflag; | ||||
#endif | #endif | ||||
kp->ki_fd = p->p_fd; | kp->ki_fd = p->p_fd; | ||||
kp->ki_pd = p->p_pd; | |||||
kp->ki_vmspace = p->p_vmspace; | kp->ki_vmspace = p->p_vmspace; | ||||
kp->ki_flag = p->p_flag; | kp->ki_flag = p->p_flag; | ||||
kp->ki_flag2 = p->p_flag2; | kp->ki_flag2 = p->p_flag2; | ||||
cred = p->p_ucred; | cred = p->p_ucred; | ||||
if (cred) { | if (cred) { | ||||
kp->ki_uid = cred->cr_uid; | kp->ki_uid = cred->cr_uid; | ||||
kp->ki_ruid = cred->cr_ruid; | kp->ki_ruid = cred->cr_ruid; | ||||
kp->ki_svuid = cred->cr_svuid; | kp->ki_svuid = cred->cr_svuid; | ||||
▲ Show 20 Lines • Show All 1,808 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
static int | static int | ||||
sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS) | sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int *name = (int *)arg1; | int *name = (int *)arg1; | ||||
u_int namelen = arg2; | u_int namelen = arg2; | ||||
struct proc *p; | struct proc *p; | ||||
int error; | int error; | ||||
u_short fd_cmask; | u_short cmask; | ||||
pid_t pid; | pid_t pid; | ||||
if (namelen != 1) | if (namelen != 1) | ||||
return (EINVAL); | return (EINVAL); | ||||
pid = (pid_t)name[0]; | pid = (pid_t)name[0]; | ||||
p = curproc; | p = curproc; | ||||
if (pid == p->p_pid || pid == 0) { | if (pid == p->p_pid || pid == 0) { | ||||
fd_cmask = p->p_fd->fd_cmask; | cmask = p->p_pd->pd_cmask; | ||||
goto out; | goto out; | ||||
} | } | ||||
error = pget(pid, PGET_WANTREAD, &p); | error = pget(pid, PGET_WANTREAD, &p); | ||||
if (error != 0) | if (error != 0) | ||||
return (error); | return (error); | ||||
fd_cmask = p->p_fd->fd_cmask; | cmask = p->p_pd->pd_cmask; | ||||
PRELE(p); | PRELE(p); | ||||
out: | out: | ||||
error = SYSCTL_OUT(req, &fd_cmask, sizeof(fd_cmask)); | error = SYSCTL_OUT(req, &cmask, sizeof(cmask)); | ||||
return (error); | return (error); | ||||
} | } | ||||
/* | /* | ||||
* This sysctl allows a process to set and retrieve binary osreldate of | * This sysctl allows a process to set and retrieve binary osreldate of | ||||
* another process. | * another process. | ||||
*/ | */ | ||||
static int | static int | ||||
▲ Show 20 Lines • Show All 423 Lines • Show Last 20 Lines |