summaryrefslogtreecommitdiffstats
path: root/share/man/man4/snp.4
blob: df70cb2707ca536c2df5ee5cf71d31b18c226fdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
.\"
.\" $FreeBSD$
.\"
.Dd September 18, 2005
.Dt SNP 4
.Os
.Sh NAME
.Nm snp
.Nd tty snoop interface
.Sh SYNOPSIS
.In sys/snoop.h
.Ft int
.Fn ioctl fd SNPSTTY &dev
.Ft int
.Fn ioctl fd SNPGTTY &dev
.Ft int
.Fn ioctl fd FIONREAD &result
.Sh DESCRIPTION
.Pa /dev/snp?
are snoop devices which allow users to attach to any tty
and watch activities on it.
The kernel must be compiled with
.Cd "device snp" ,
or the
.Nm
module must be loaded,
for these devices to be available.
.Pp
To associate a given
.Nm
device with a tty to be observed, open the
.Nm
device and a tty device, and then issue the
.Dv SNPSTTY
ioctl on
.Nm
device.
The argument passed to the
.Xr ioctl 2
is the address of a variable of type
.Vt int ,
holding the file descriptor of a tty device.
To detach the
.Nm
device from a tty use a pointer to a value of
\-1.
.Pp
The
.Dv SNPGTTY
ioctl returns information about the current tty attached to
the open
.Nm
device.
.Pp
The
.Dv FIONREAD
ioctl returns a positive value equal to the number of characters
in a read buffer.
Special values defined are:
.Bl -tag -width ".Dv SNP_TTYCLOSE"
.It Dv SNP_OFLOW
device overflow occurred, device detached.
.It Dv SNP_TTYCLOSE
tty not attached.
.It Dv SNP_DETACH
.Nm
device has been detached by user or tty device has been closed
and detached.
.El
.Sh SEE ALSO
.Xr pty 4 ,
.Xr sio 4 ,
.Xr kldload 8 ,
.Xr watch 8
.Sh HISTORY
The
.Nm
device first appeared in
.Fx 2.1 .
.Sh AUTHORS
.An Ugen J.S. Antsilevich Aq ugen@NetVision.net.il
.Sh BUGS
Caveat emptor!
This manual page is horribly stale and wildly inaccurate in some places.
.Pp
While in line mode, user input cannot be seen.
No signals may be sent to the observed tty.
OpenPOWER on IntegriCloud