xref: /openbsd/share/man/man9/sigio_init.9 (revision 36b1b8b4)
1*36b1b8b4Svisa.\"	$OpenBSD: sigio_init.9,v 1.4 2020/01/08 16:27:40 visa Exp $
2c2679576Svisa.\"
3c2679576Svisa.\" Copyright (c) 2018 Visa Hankala
4c2679576Svisa.\"
5c2679576Svisa.\" Permission to use, copy, modify, and distribute this software for any
6c2679576Svisa.\" purpose with or without fee is hereby granted, provided that the above
7c2679576Svisa.\" copyright notice and this permission notice appear in all copies.
8c2679576Svisa.\"
9c2679576Svisa.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10c2679576Svisa.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11c2679576Svisa.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12c2679576Svisa.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13c2679576Svisa.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14c2679576Svisa.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15c2679576Svisa.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16c2679576Svisa.\"
17*36b1b8b4Svisa.Dd $Mdocdate: January 8 2020 $
18c2679576Svisa.Dt SIGIO_INIT 9
19c2679576Svisa.Os
20c2679576Svisa.Sh NAME
21c2679576Svisa.Nm sigio_init ,
22c2679576Svisa.Nm sigio_free ,
23c2679576Svisa.Nm sigio_copy ,
24c2679576Svisa.Nm sigio_setown ,
25c2679576Svisa.Nm sigio_getown
26c2679576Svisa.Nd asynchronous IO signal API
27c2679576Svisa.Sh SYNOPSIS
28c2679576Svisa.In sys/sigio.h
29c2679576Svisa.Ft void
30c2679576Svisa.Fn "sigio_init" "struct sigio_ref *sir"
31c2679576Svisa.Ft void
32c2679576Svisa.Fn "sigio_free" "struct sigio_ref *sir"
33c2679576Svisa.Ft void
34c2679576Svisa.Fn "sigio_copy" "struct sigio_ref *dst" "struct sigio_ref *src"
35c2679576Svisa.Ft int
36*36b1b8b4Svisa.Fn "sigio_setown" "struct sigio_ref *sir" "u_long cmd" "caddr_t data"
37c2679576Svisa.Ft pid_t
38*36b1b8b4Svisa.Fn "sigio_getown" "struct sigio_ref *sir" "u_long cmd" "caddr_t data"
39c2679576Svisa.Sh DESCRIPTION
408811ffe6SjmcThe asynchronous IO signal API provides a means to manage signal registrations.
418811ffe6SjmcIt associates a process or process group with a signal source.
42c2679576SvisaThe association is revoked automatically when the process or process group
43c2679576Svisais deleted.
44c2679576Svisa.Pp
45c2679576Svisa.Fn sigio_init
46c2679576Svisainitializes the sigio reference
47c2679576Svisa.Fa sir .
48c2679576Svisa.Pp
49c2679576Svisa.Fn sigio_free
50c2679576Svisaclears any process or process group associated with reference
51c2679576Svisa.Fa sir .
52c2679576Svisa.Pp
53c2679576Svisa.Fn sigio_copy
54c2679576Svisacopies registration from reference
55c2679576Svisa.Fa src
56c2679576Svisato reference
57c2679576Svisa.Fa dst .
58c2679576Svisa.Pp
59c2679576Svisa.Fn sigio_setown
60c2679576Svisaassociates the reference
61c2679576Svisa.Fa sir
62c2679576Svisawith a process or process group.
63*36b1b8b4Svisa.Fa cmd
64*36b1b8b4Svisais one of ioctl commands
65*36b1b8b4Svisa.Dv FIOSETOWN ,
66*36b1b8b4Svisa.Dv SIOCSPGRP
67*36b1b8b4Svisaand
68*36b1b8b4Svisa.Dv TIOCSPGRP .
69*36b1b8b4Svisa.Fa data
70*36b1b8b4Svisais a pointer to a signed integer that represents the ID of the owner
71*36b1b8b4Svisaof the registration.
72*36b1b8b4SvisaFor
73*36b1b8b4Svisa.Dv FIOSETOWN
74*36b1b8b4Svisaand
75*36b1b8b4Svisa.Dv SIOCSPGRP ,
76*36b1b8b4Svisaa positive ID is taken as a process ID,
77*36b1b8b4Svisaand a negative ID is taken as a process group ID.
78c2679576SvisaIf
79*36b1b8b4Svisa.Fa cmd
80*36b1b8b4Svisais
81*36b1b8b4Svisa.Dv TIOCSPGRP ,
82*36b1b8b4Svisaa positive ID is taken as a process group ID,
83*36b1b8b4Svisaand negative ID values are not allowed.
84*36b1b8b4SvisaFor all values of
85*36b1b8b4Svisa.Fa cmd ,
86*36b1b8b4Svisathe reference
87c2679576Svisa.Fa sir
88*36b1b8b4Svisais cleared if the ID is zero.
89c2679576Svisa.Pp
90c2679576SvisaWhen
91c2679576Svisa.Fn sigio_setown
92c2679576Svisais called, the invoking process' credentials are stored in the reference.
93c2679576SvisaThese credentials are checked when the reference is used with
94c2679576Svisa.Xr pgsigio 9 .
95c2679576Svisa.Pp
96c2679576Svisa.Fn sigio_getown
97*36b1b8b4Svisastores the ID of the process or process group associated with the reference
98*36b1b8b4Svisa.Fa sir
99*36b1b8b4Svisato the signed integer pointed by
100*36b1b8b4Svisa.Fa data .
101*36b1b8b4Svisa.Fa cmd
102*36b1b8b4Svisais one of ioctl commands
103*36b1b8b4Svisa.Dv FIOGETOWN ,
104*36b1b8b4Svisa.Dv SIOCGPGRP
105*36b1b8b4Svisaand
106*36b1b8b4Svisa.Dv TIOCGPGRP .
107*36b1b8b4SvisaFor
108*36b1b8b4Svisa.Dv FIOGETOWN
109*36b1b8b4Svisaand
110*36b1b8b4Svisa.Dv SIOCGPGRP ,
111*36b1b8b4Svisaa process ID is stored as a positive ID,
112*36b1b8b4Svisaand a process group ID is stored as a negative ID.
113*36b1b8b4SvisaFor
114*36b1b8b4Svisa.Dv TIOCGPGRP ,
115*36b1b8b4Svisaa process ID is stored as a negative ID,
116*36b1b8b4Svisaand a process group ID is stored as a positive ID.
117*36b1b8b4SvisaIf there is no registered owner, a zero is stored in the integer.
118c2679576Svisa.Sh CONTEXT
119c2679576Svisa.Fn sigio_init ,
120c2679576Svisa.Fn sigio_free ,
121c2679576Svisa.Fn sigio_copy ,
122c2679576Svisa.Fn sigio_setown
123c2679576Svisaand
124c2679576Svisa.Fn sigio_getown
125c2679576Svisacan be called during autoconf, or from process context.
1263a6489edSvisa.Sh RETURN VALUES
1273a6489edSvisa.Fn sigio_setown
1283a6489edSvisareturns 0 on success.
1293a6489edSvisaOtherwise, the following error values are returned:
130*36b1b8b4Svisa.Bl -tag -width [EINVAL]
131*36b1b8b4Svisa.It Bq Er EINVAL
132*36b1b8b4SvisaThe process group ID is invalid.
1333a6489edSvisa.It Bq Er EPERM
1343a6489edSvisaThe invoking process belongs to another session than the process
135*36b1b8b4Svisaor process group.
1363a6489edSvisa.It Bq Er ESRCH
137*36b1b8b4SvisaThe process or process group does not exist.
1383a6489edSvisa.It Bq Er ESRCH
139*36b1b8b4SvisaThe process is exiting.
1403a6489edSvisa.El
141c2679576Svisa.Sh SEE ALSO
142c2679576Svisa.Xr pgsigio 9
143c2679576Svisa.Sh HISTORY
144c2679576SvisaThe sigio routines were adapted from
145c2679576Svisa.Fx
146c2679576Svisaand first appeared in
147c2679576Svisa.Ox 6.5 .
148