1.\" 2.\" $FreeBSD$ 3.\" 4.Dd November 5, 2008 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_OFLOW 62device overflow occurred, device detached. 63.It Dv SNP_TTYCLOSE 64tty not attached. 65.It Dv SNP_DETACH 66.Nm 67device has been detached by user or tty device has been closed 68and detached. 69.El 70.Sh SEE ALSO 71.Xr pty 4 , 72.Xr sio 4 , 73.Xr kldload 8 , 74.Xr watch 8 75.Sh HISTORY 76The 77.Nm 78device first appeared in 79.Fx 2.1 . 80In 81.Fx 8.0 82the 83.Nm 84driver was rewritten to work with the replaced TTY subsystem. 85.Sh AUTHORS 86The author of the current implementation is 87.An Ed Schouten Aq ed@FreeBSD.org . 88Previous versions of 89.Nm 90were based on code written by 91.An Ugen J.S. Antsilevich Aq ugen@NetVision.net.il . 92.Sh BUGS 93This version of 94.Nm 95does not return proper error codes when calling 96.Dv FIONREAD . 97It also does not allow 98.Dv SNPSTTY 99to detach itself from the TTY. 100