From: Cyril Hrubis <chrubis@xxxxxxx> Signed-off-by: Cyril Hrubis <chrubis@xxxxxxx> --- man2/ioctl_pipe.2 | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 man2/ioctl_pipe.2 diff --git a/man2/ioctl_pipe.2 b/man2/ioctl_pipe.2 new file mode 100644 index 000000000..e60bc2134 --- /dev/null +++ b/man2/ioctl_pipe.2 @@ -0,0 +1,75 @@ +.\" Copyright (c) 2022 by Cyril Hrubis <chrubi@xxxxxxx> +.\" +.\" %%%LICENSE_START(VERBATIM) +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END +.\" +.\" +.TH IOCTL_PIPE 2 2022-08-06 "Linux" "Linux Programmer's Manual" +.SH NAME +ioctl_pipe \- ioctl() operations for General notification mechanism +.SH SYNOPSIS +.nf +.B #include <linux/watch_queue.h> +.PP +.BI "int ioctl(int " pipefd[1] ", IOC_WATCH_QUEUE_SET_SIZE, int " size "); +.PP +.BI "int ioctl(int " pipefd[1] ", IOC_WATCH_QUEUE_SET_FILTER, struct watch_notification_filter * " filter "); +.fi +.PP +.SH DESCRIPTION +The following +.BR ioctl (2) +operations are provided to set up a general notification queue parameters. +The notification queue is build on the top of a +.BR pipe (2) +opened with +.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 size notification messages. Currently the size must be between 1 and 512. +.TP +.BR IOC_WATCH_QUEUE_SET_FILTER " (since Linux 5.8)" +.\" commit c73be61cede5882f9605a852414db559c0ebedfd +Watch queue filter, if set, can limit events that are received. +Filters are passed in a \fIstruct watch_notification_filter\fP +and each filter is described by \fIstruct watch_notification_type_filter\fP structure. + +.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 + +.SH SEE ALSO +.BR pipe (2), +.BR ioctl (2) -- 2.35.1