/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _UAPI_LINUX_WATCH_QUEUE_H #define _UAPI_LINUX_WATCH_QUEUE_H #include <linux/types.h> #include <linux/fcntl.h> #include <linux/ioctl.h> #define O_NOTIFICATION_PIPE … #define IOC_WATCH_QUEUE_SET_SIZE … #define IOC_WATCH_QUEUE_SET_FILTER … enum watch_notification_type { … }; enum watch_meta_notification_subtype { … }; /* * Notification record header. This is aligned to 64-bits so that subclasses * can contain __u64 fields. */ struct watch_notification { … }; /* * Notification filtering rules (IOC_WATCH_QUEUE_SET_FILTER). */ struct watch_notification_type_filter { … }; struct watch_notification_filter { … }; /* * Extended watch removal notification. This is used optionally if the type * wants to indicate an identifier for the object being watched, if there is * such. This can be distinguished by the length. * * type -> WATCH_TYPE_META * subtype -> WATCH_META_REMOVAL_NOTIFICATION */ struct watch_notification_removal { … }; /* * Type of key/keyring change notification. */ enum key_notification_subtype { … }; /* * Key/keyring notification record. * - watch.type = WATCH_TYPE_KEY_NOTIFY * - watch.subtype = enum key_notification_type */ struct key_notification { … }; #endif /* _UAPI_LINUX_WATCH_QUEUE_H */