Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/tty_tty.c
| Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| struct proc *p; | struct proc *p; | ||||
| if (*dev != NULL) | if (*dev != NULL) | ||||
| return; | return; | ||||
| if (strcmp(name, "tty")) | if (strcmp(name, "tty")) | ||||
| return; | return; | ||||
| p = curproc; | p = curproc; | ||||
| sx_sunlock(&clone_drain_lock); | |||||
| sx_slock(&proctree_lock); | sx_slock(&proctree_lock); | ||||
| sx_slock(&clone_drain_lock); | |||||
| dev_lock(); | dev_lock(); | ||||
| if (!(p->p_flag & P_CONTROLT)) | if (!(p->p_flag & P_CONTROLT)) | ||||
| *dev = ctty; | *dev = ctty; | ||||
| else if (p->p_session->s_ttyvp == NULL) | else if (p->p_session->s_ttyvp == NULL) | ||||
| *dev = ctty; | *dev = ctty; | ||||
| else if (p->p_session->s_ttyvp->v_type == VBAD || | else if (p->p_session->s_ttyvp->v_type == VBAD || | ||||
| p->p_session->s_ttyvp->v_rdev == NULL) { | p->p_session->s_ttyvp->v_rdev == NULL) { | ||||
| /* e.g. s_ttyvp was revoked */ | /* e.g. s_ttyvp was revoked */ | ||||
| Show All 18 Lines | |||||