1.\" 2.\" $FreeBSD$ 3.\" 4.Dd September 24, 2022 5.Dt SNP 4 6.Os 7.Sh NAME 8.Nm snp 9.Nd tty snoop interface 10.Sh SYNOPSIS 11.In sys/snoop.h 12.Ft int 13.Fn ioctl fd SNPSTTY &dev 14.Ft int 15.Fn ioctl fd SNPGTTY &dev 16.Ft int 17.Fn ioctl fd FIONREAD &result 18.Sh DESCRIPTION 19.Pa /dev/snp 20is a snoop device which allows users to attach to any tty 21and watch activities on it. 22The kernel must be compiled with 23.Cd "device snp" , 24or the 25.Nm 26module must be loaded, 27for these devices to be available. 28.Pp 29To associate a given 30.Nm 31device with a tty to be observed, open the 32.Nm 33device and a tty device, and then issue the 34.Dv SNPSTTY 35ioctl on 36.Nm 37device. 38The argument passed to the 39.Xr ioctl 2 40is the address of a variable of type 41.Vt int , 42holding the file descriptor of a tty device. 43To detach the 44.Nm 45device from a tty use a pointer to a value of 46\-1. 47.Pp 48The 49.Dv SNPGTTY 50ioctl returns information about the current tty attached to 51the open 52.Nm 53device. 54.Pp 55The 56.Dv FIONREAD 57ioctl returns a positive value equal to the number of characters 58in a read buffer. 59Special values defined are: 60.Bl -tag -width ".Dv SNP_TTYCLOSE" 61.It Dv SNP_TTYCLOSE 62tty not attached. 63.It Dv SNP_DETACH 64.Nm 65device has been detached by user or tty device has been closed 66and detached. 67.El 68.Sh SEE ALSO 69.Xr pty 4 , 70.Xr kldload 8 , 71.Xr watch 8 72.Sh HISTORY 73The 74.Nm 75device first appeared in 76.Fx 2.1 . 77In 78.Fx 8.0 79the 80.Nm 81driver was rewritten to work with the replaced TTY subsystem. 82.Sh AUTHORS 83.An -nosplit 84The author of the current implementation is 85.An \&Ed Schouten Aq Mt ed@FreeBSD.org . 86Previous versions of 87.Nm 88were based on code written by 89.An Ugen J.S. Antsilevich Aq Mt ugen@NetVision.net.il . 90