/* * Remove the last character in a queue and return it. */ static int tty_unputc(struct tty_queue *tq) { if (ttyq_empty(tq)) return -1; int s = splhigh(); tq->tq_tail = ttyq_prev(tq->tq_tail); int c = tq->tq_buf[tq->tq_tail]; tq->tq_count--; splx(s); return c & 0xFF; }
/* * Remove the last character in a queue and return it. */ int ttyq_unputc(struct tty_queue *tq) { int c; if (ttyq_empty(tq)) return -1; irq_lock(); tq->tq_tail = ttyq_prev(tq->tq_tail); c = tq->tq_buf[tq->tq_tail]; tq->tq_count--; irq_unlock(); return c; }