X-Git-Url: http://git.roojs.org/?p=gitlive;a=blobdiff_plain;f=fanotify%2Ffanotify.vapi;fp=fanotify%2Ffanotify.vapi;h=988b0fe0136f9bed7d2d5c69a510aebe58fc9903;hp=0000000000000000000000000000000000000000;hb=1589bfa91396101e4c50942efa57b2f162e74c15;hpb=7f173a17ed57f133fa4985f18ce645d1fd957f1d diff --git a/fanotify/fanotify.vapi b/fanotify/fanotify.vapi new file mode 100644 index 00000000..988b0fe0 --- /dev/null +++ b/fanotify/fanotify.vapi @@ -0,0 +1,146 @@ +/* + * + * Whats needed? + * + * + * fan_open() // returns file handle.. + * fan_mark(... foler) + * fan_close(fh) + * + * // and a callback.. + + * ?/ jsu tdo it as a vapi? + * + * vapi example + * https://github.com/apmasell/vapis/blob/master/transmission-2.0.vapi + * https://wiki.gnome.org/Projects/Vala/ManualBindings + */ + +[CCode (cheader_filename = "sys/fanotify.h", lower_case_cprefix = "fanotify_", cprefix = "FAN_")] +namespace Fanotify { + + + [CCode (cname = "int", cprefix = "FAN_", has_type_id = false)] + [Flags] + public enum EventType { + ACCESS, + MODIFY, + ATTRIB, + CLOSE_WRITE, + CLOSE_NOWRITE, + OPEN, + MOVED_FROM, + MOVED_TO, + CREATE, + DELETE, + DELETE_SELF, + MOVE_SELF, + OPEN_EXEC, + Q_OVERFLOW, + FS_ERROR, + OPEN_PERM, + ACCESS_PERM, + OPEN_EXEC_PERM, + EVENT_ON_CHILD, + RENAME, + ONDIR, + CLOSE, + MOVE + + + } + [CCode (cname = "int", cprefix = "FAN_", has_type_id = false)] + [Flags] + public enum InitFlag { + CLOEXEC, + NONBLOCK, + CLASS_NOTIF, + CLASS_CONTENT, + CLASS_PRE_CONTENT, + REPORT_FID, + REPORT_DIR_FID, + REPORT_NAME, + REPORT_TARGET_FID + } + + [CCode (cname = "int", cprefix = "FAN_MARK_", has_type_id = false)] + [Flags] + public enum Mark { + ADD, + REMOVE, + DONT_FOLLOW, + ONLYDIR, + IGNORED_MASK, + IGNORED_SURV_MODIFY, + FLUSH, + EVICTABLE, + IGNORE, + + INODE, + MOUNT, + FILESYSTEM + } + + + [CCode (cname = "struct fanotify_event_metadata", has_destroy_function = false, has_copy_function = false, has_type_id = false)] + public struct EventMetadata { + [CCode (cname = "event_len")] + public uint32 event_len; + + [CCode (cname = "vers")] + public uint8 vers; + + [CCode (cname = "reserved")] + public uint8 reserved; + + [CCode (cname = "metadata_len")] + public uint16 metadata_len; + + [CCode (cname = "mask")] + public uint64 mask; + + [CCode (cname = "fd")] + public uint32 fd; + + [CCode (cname = "pid")] + public uint32 pid; + + } + [CCode (cname = "struct kernel_fsid_t", has_destroy_function = false, has_copy_function = false, has_type_id = false)] + public struct KernelFsid { + [CCode (cname = "val")] + public int val[2]; + } + + [CCode (cname = "struct fanotify_event_info_header", has_destroy_function = false, has_copy_function = false, has_type_id = false)] + public struct EventInfoHeader { + [CCode (cname = "info_type")] + public uint8 info_type; + + [CCode (cname = "pad")] + public uint8 pad; + + [CCode (cname = "len")] + public uint16 len; + } + + [CCode (cname = "struct fanotify_event_info_fid", has_destroy_function = false, has_copy_function = false, has_type_id = false)] + public struct EventInfoFid { + [CCode (cname = "hdr")] + public EventInfoHeader hdr; + [CCode (cname = "fsid")] + public KernelFsid fsid; + + [CCode (cname = "handle")] + public uchar[] handle; + } + + + + [CCode (cname = "fanotify_init")] + public int init (uint __flags, uint __event_f_flags); + + [CCode (cname = "fanotify_mark")] + public int mark (int __fanotify_fd, uint __flags, uint64 __mask, int __dfd, string __pathname); + +} \ No newline at end of file