linux/include/uapi/linux/watch_queue.h

/* 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 */