Lines Matching defs:pmptr

63 fork_tmchild(pmptr)
64 struct pmtab *pmptr;
75 pmptr->p_inservice = FALSE;
95 pmptr->p_status = VALID;
96 pmptr->p_pid = 0;
107 * Close all file descriptors except pmptr->p_fd
110 pcsync_close(pcpipe0, pcpipe1, pid, pmptr->p_fd);
112 tmchild(pmptr);
114 fatal("tmchild for <%s> returns unexpected", pmptr->p_device);
118 pmptr->p_status = VALID;
119 pmptr->p_pid = 0;
126 pmptr->p_pid = pid;
128 if (pmptr->p_fd > 0) {
129 (void)close(pmptr->p_fd);
130 pmptr->p_fd = 0;
136 pcsync_close(pcpipe0, pcpipe1, pid, pmptr->p_fd);
148 got_carrier(pmptr)
149 struct pmtab *pmptr;
151 flush_input(pmptr->p_fd);
153 if (pmptr->p_ttyflags & R_FLAG) {
159 else if ((pmptr->p_ttyflags & (C_FLAG|B_FLAG)) &&
161 (!(pmptr->p_flags & X_FLAG))) {
162 fork_tmchild(pmptr);
164 else if (pmptr->p_ttyflags & A_FLAG) {
170 else if (pmptr->p_timeout) {
171 fork_tmchild(pmptr);
173 else if ( ! (pmptr->p_ttyflags & X_FLAG) ) {
174 write_prompt(pmptr->p_fd,pmptr,TRUE,TRUE);
182 got_data(pmptr)
183 struct pmtab *pmptr;
187 if (tm_checklock(pmptr->p_fd) != 0) {
188 pmptr->p_status = LOCKED;
189 (void)close(pmptr->p_fd);
190 pmptr->p_fd = 0;
201 fork_tmchild(pmptr);
207 got_hup(pmptr)
208 struct pmtab *pmptr;
213 (void)close(pmptr->p_fd);
214 pmptr->p_fd = 0;
215 pmptr->p_inservice = 0;
231 struct pmtab *pmptr;
245 if ((pmptr = find_fd(fdp->fd)) == NULL) {
251 got_hup(pmptr);
257 got_data(pmptr);
276 struct pmtab *pmptr;
310 if ((pmptr = find_pid(pid)) == NULL) {
321 if (pmptr->p_flags & U_FLAG)
323 pmptr->p_status = VALID;
324 pmptr->p_fd = 0;
325 pmptr->p_pid = 0;
326 pmptr->p_inservice = 0;
348 struct pmtab *pmptr;
368 for (pmptr = PMtab; pmptr; pmptr = pmptr->p_next) {
369 if ((pmptr->p_fd > 0) && (pmptr->p_pid == 0)) {
370 (void)close(pmptr->p_fd);
371 pmptr->p_fd = 0;
426 struct pmtab *pmptr;
428 for (pmptr = PMtab; pmptr; pmptr = pmptr->p_next) {
429 if (pmptr->p_pid == pid) {
430 return(pmptr);
443 struct pmtab *pmptr;
445 for (pmptr = PMtab; pmptr; pmptr = pmptr->p_next) {
446 if (pmptr->p_fd == fd) {
447 return(pmptr);
461 struct pmtab *pmptr;
462 for (pmptr = PMtab; pmptr; pmptr = pmptr->p_next) {
463 if (pmptr->p_status == VALID)
465 if ((pmptr->p_fd > 0) && (pmptr->p_pid == 0)) {
466 (void)close(pmptr->p_fd);
467 pmptr->p_fd = 0;
469 else if ((pmptr->p_fd == 0) && (pmptr->p_pid > 0)
470 && (pmptr->p_inservice == FALSE)) {
471 (void)kill(pmptr->p_pid, SIGTERM);
480 struct pmtab *pmptr;
484 if ((pmptr = find_pid(pid)) == NULL) {
488 pmptr->p_inservice = TRUE;
553 struct pmtab *pmptr;
561 for (pmptr = PMtab; pmptr; pmptr = pmptr->p_next) {
562 if ((pmptr->p_status == LOCKED) && (pmptr->p_fd == 0)) {
563 if ((fd=open(pmptr->p_device,O_RDWR|O_NONBLOCK)) == -1){
564 log("open (%s) failed: %s", pmptr->p_device,
566 pmptr->p_status = VALID;
573 pmptr->p_fd = fd;
580 else if ((pmptr->p_status == SESSION) && (pmptr->p_fd == 0)) {
581 if ((fd=open(pmptr->p_device,O_RDWR|O_NONBLOCK)) == -1){
582 log("open (%s) failed: %s", pmptr->p_device,
584 pmptr->p_status = VALID;
591 pmptr->p_fd = fd;
598 else if ((pmptr->p_status == UNACCESS) && (pmptr->p_fd == 0)) {
599 if ((fd=open(pmptr->p_device,O_RDWR|O_NONBLOCK)) == -1){
600 log("open (%s) failed: %s", pmptr->p_device,
602 pmptr->p_status = VALID;
608 pmptr->p_fd = fd;