struct fanotify [src]

Members

Source

pub const fanotify = struct { pub const InitFlags = packed struct(u32) { CLOEXEC: bool = false, NONBLOCK: bool = false, CLASS: enum(u2) { NOTIF = 0, CONTENT = 1, PRE_CONTENT = 2, } = .NOTIF, UNLIMITED_QUEUE: bool = false, UNLIMITED_MARKS: bool = false, ENABLE_AUDIT: bool = false, REPORT_PIDFD: bool = false, REPORT_TID: bool = false, REPORT_FID: bool = false, REPORT_DIR_FID: bool = false, REPORT_NAME: bool = false, REPORT_TARGET_FID: bool = false, _: u19 = 0, }; pub const MarkFlags = packed struct(u32) { ADD: bool = false, REMOVE: bool = false, DONT_FOLLOW: bool = false, ONLYDIR: bool = false, MOUNT: bool = false, /// Mutually exclusive with `IGNORE` IGNORED_MASK: bool = false, IGNORED_SURV_MODIFY: bool = false, FLUSH: bool = false, FILESYSTEM: bool = false, EVICTABLE: bool = false, /// Mutually exclusive with `IGNORED_MASK` IGNORE: bool = false, _: u21 = 0, }; pub const MarkMask = packed struct(u64) { /// File was accessed ACCESS: bool = false, /// File was modified MODIFY: bool = false, /// Metadata changed ATTRIB: bool = false, /// Writtable file closed CLOSE_WRITE: bool = false, /// Unwrittable file closed CLOSE_NOWRITE: bool = false, /// File was opened OPEN: bool = false, /// File was moved from X MOVED_FROM: bool = false, /// File was moved to Y MOVED_TO: bool = false, /// Subfile was created CREATE: bool = false, /// Subfile was deleted DELETE: bool = false, /// Self was deleted DELETE_SELF: bool = false, /// Self was moved MOVE_SELF: bool = false, /// File was opened for exec OPEN_EXEC: bool = false, reserved13: u1 = 0, /// Event queued overflowed Q_OVERFLOW: bool = false, /// Filesystem error FS_ERROR: bool = false, /// File open in perm check OPEN_PERM: bool = false, /// File accessed in perm check ACCESS_PERM: bool = false, /// File open/exec in perm check OPEN_EXEC_PERM: bool = false, reserved19: u8 = 0, /// Interested in child events EVENT_ON_CHILD: bool = false, /// File was renamed RENAME: bool = false, reserved30: u1 = 0, /// Event occurred against dir ONDIR: bool = false, reserved31: u33 = 0, }; pub const event_metadata = extern struct { event_len: u32, vers: u8, reserved: u8, metadata_len: u16, mask: MarkMask align(8), fd: i32, pid: i32, pub const VERSION = 3; }; pub const response = extern struct { fd: i32, response: u32, }; /// Unique file identifier info record. /// /// This structure is used for records of types `EVENT_INFO_TYPE.FID`. /// `EVENT_INFO_TYPE.DFID` and `EVENT_INFO_TYPE.DFID_NAME`. /// /// For `EVENT_INFO_TYPE.DFID_NAME` there is additionally a null terminated /// name immediately after the file handle. pub const event_info_fid = extern struct { hdr: event_info_header, fsid: kernel_fsid_t, /// Following is an opaque struct file_handle that can be passed as /// an argument to open_by_handle_at(2). handle: [0]u8, }; /// Variable length info record following event metadata. pub const event_info_header = extern struct { info_type: EVENT_INFO_TYPE, pad: u8, len: u16, }; pub const EVENT_INFO_TYPE = enum(u8) { FID = 1, DFID_NAME = 2, DFID = 3, PIDFD = 4, ERROR = 5, OLD_DFID_NAME = 10, OLD_DFID = 11, NEW_DFID_NAME = 12, NEW_DFID = 13, }; }