Lines Matching refs:tp

75 static int kmoutput(struct tty *tp);
76 static void kmstart(struct tty *tp);
95 struct tty *tp;
103 tp = km_tty[unit];
105 tty_lock(tp);
107 tp->t_oproc = kmstart;
108 tp->t_param = NULL;
109 tp->t_dev = dev;
111 if ( !(tp->t_state & TS_ISOPEN) ) {
112 tp->t_iflag = TTYDEF_IFLAG;
113 tp->t_oflag = TTYDEF_OFLAG;
114 tp->t_cflag = (CREAD | CS8 | CLOCAL);
115 tp->t_lflag = TTYDEF_LFLAG;
116 tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
117 termioschars(&tp->t_termios);
118 ttsetwater(tp);
119 } else if ((tp->t_state & TS_XCLUDE) && proc_suser(pp)) {
124 tp->t_state |= TS_CARR_ON; /* lie and say carrier exists and is on. */
126 ret = ((*linesw[tp->t_line].l_open)(dev, tp));
129 wp = &tp->t_winsize;
137 tty_unlock(tp); /* XXX race window */
145 tty_lock(tp);
157 tty_unlock(tp);
166 struct tty *tp = km_tty[minor(dev)];
168 tty_lock(tp);
169 ret = (*linesw[tp->t_line].l_close)(tp,flag);
170 ttyclose(tp);
171 tty_unlock(tp);
180 struct tty *tp = km_tty[minor(dev)];
182 tty_lock(tp);
183 ret = (*linesw[tp->t_line].l_read)(tp, uio, ioflag);
184 tty_unlock(tp);
193 struct tty *tp = km_tty[minor(dev)];
195 tty_lock(tp);
196 ret = (*linesw[tp->t_line].l_write)(tp, uio, ioflag);
197 tty_unlock(tp);
206 struct tty *tp = km_tty[minor(dev)];
209 tty_lock(tp);
214 *wp = tp->t_winsize;
245 error = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag, p);
248 error = ttioctl_locked(tp, cmd, data, flag, p);
252 tty_unlock(tp);
263 * Locks: Assumes tp in the calling tty driver code is locked on
293 * Locks: Assumes tp is locked on entry, remains locked on exit
296 kmstart(struct tty *tp)
298 if (tp->t_state & (TS_TIMEOUT | TS_BUSY | TS_TTSTOP))
300 if (tp->t_outq.c_cc == 0)
302 tp->t_state |= TS_BUSY;
303 kmoutput(tp);
307 (*linesw[tp->t_line].l_start)(tp);
322 struct tty *tp = (struct tty *)arg;
324 tty_lock(tp);
325 (void)kmoutput(tp);
326 tty_unlock(tp);
332 * Locks: Assumes tp is locked on entry, remains locked on exit
341 kmoutput(struct tty *tp)
349 while (tp->t_outq.c_cc > 0) {
350 cc = ndqb(&tp->t_outq, 0);
359 (void) q_to_b(&tp->t_outq, buf, cc);
362 kmputc(tp->t_dev, *cp & 0x7f);
369 if (tp->t_outq.c_cc > 0) {
370 timeout(kmtimeout, tp, hz);
372 tp->t_state &= ~TS_BUSY;
374 (*linesw[tp->t_line].l_start)(tp);
388 * Locks: Assumes that the tty_lock() is NOT held on the tp, so a
397 struct tty *tp = km_tty[0]; /* XXX */
399 tty_lock(tp);
400 (*linesw[tp->t_line].l_rint) (ch, tp);
401 tty_unlock(tp);