aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/ttydevsw.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/sys/ttydevsw.h')
-rw-r--r--sys/sys/ttydevsw.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/sys/ttydevsw.h b/sys/sys/ttydevsw.h
index a4f5afbbc572..63b2db468950 100644
--- a/sys/sys/ttydevsw.h
+++ b/sys/sys/ttydevsw.h
@@ -48,6 +48,7 @@ typedef int tsw_ioctl_t(struct tty *, u_long, caddr_t, struct thread *);
typedef int tsw_param_t(struct tty *, struct termios *);
typedef int tsw_modem_t(struct tty *, int, int);
typedef int tsw_mmap_t(struct tty *, vm_offset_t, vm_paddr_t *, int);
+typedef void tsw_pktnotify_t(struct tty *, char);
typedef void tsw_free_t(void *);
struct ttydevsw {
@@ -64,6 +65,7 @@ struct ttydevsw {
tsw_modem_t *tsw_modem; /* Modem sigon/sigoff. */
tsw_mmap_t *tsw_mmap; /* mmap() hooks. */
+ tsw_pktnotify_t *tsw_pktnotify; /* TIOCPKT events. */
tsw_free_t *tsw_free; /* Destructor. */
};
@@ -148,6 +150,15 @@ ttydevsw_mmap(struct tty *tp, vm_offset_t offset, vm_paddr_t *paddr, int nprot)
}
static __inline void
+ttydevsw_pktnotify(struct tty *tp, char event)
+{
+ tty_lock_assert(tp, MA_OWNED);
+ MPASS(!tty_gone(tp));
+
+ tp->t_devsw->tsw_pktnotify(tp, event);
+}
+
+static __inline void
ttydevsw_free(struct tty *tp)
{
MPASS(tty_gone(tp));