summaryrefslogtreecommitdiffstats
path: root/man2/ioctl_pipe.2
blob: 995e896de7ecb8535a3c8b56233ddd8d70847232 (plain) (blame)
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
.\" Copyright (c) 2022 by Cyril Hrubis <chrubi@suse.cz>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH ioctl_pipe 2 (date) "Linux man-pages (unreleased)"
.SH NAME
ioctl_pipe \- ioctl() operations for General notification mechanism
.SH SYNOPSIS
.nf
.BR "#include <linux/watch_queue.h>" "  /* Definition of " IOC_WATCH_QUEUE_ "* */"
.B #include <sys/ioctl.h>
.PP
.BI "int ioctl(int " pipefd "[1], IOC_WATCH_QUEUE_SET_SIZE, int " size );
.BI "int ioctl(int " pipefd "[1], IOC_WATCH_QUEUE_SET_FILTER,"
.BI "          struct watch_notification_filter *" filter );
.fi
.SH DESCRIPTION
The following
.BR ioctl (2)
operations are provided to set up general notification queue parameters.
The notification queue is built on the top of a
.BR pipe (2)
opened with the
.B O_NOTIFICATION_PIPE
flag.
.TP
.BR IOC_WATCH_QUEUE_SET_SIZE " (since Linux 5.8)"
.\" commit c73be61cede5882f9605a852414db559c0ebedfd
Preallocates the pipe buffer memory so that
it can fit
.I size
notification messages.
Currently,
.I size
must be between 1 and 512.
.TP
.BR IOC_WATCH_QUEUE_SET_FILTER " (since Linux 5.8)"
.\" commit c73be61cede5882f9605a852414db559c0ebedfd
Watch queue filter can limit events that are received.
Filters are passed in a
.I struct watch_notification_filter
and each filter is described by a
.I struct watch_notification_type_filter
structure.
.IP
.in +4n
.EX
struct watch_notification_filter {
        __u32   nr_filters;
        __u32   __reserved;
        struct watch_notification_type_filter filters[];
};
\&
struct watch_notification_type_filter {
        __u32   type;
        __u32   info_filter;
        __u32   info_mask;
        __u32   subtype_filter[8];
};
.EE
.in
.SH SEE ALSO
.BR pipe (2),
.BR ioctl (2)