2 Copyright (C) 2005 John McCutchan
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this library; if not, see <http://www.gnu.org/licenses/>.
18 John McCutchan <john@johnmccutchan.com>
21 #ifndef __INOTIFY_KERNEL_H
22 #define __INOTIFY_KERNEL_H
24 typedef struct ik_event_s
{
27 guint32 original_mask
;
31 /* TRUE if this event is the last element of a pair
32 * (e.g., MOVE_TO in a pair of MOVE_FROM, MOVE_TO events) */
33 gboolean is_second_in_pair
;
34 /* if event1 and event2 are two paired events
35 * (e.g., MOVE_FROM and MOVE_TO events related to the same file move),
36 * then event1->pair == event2 and event2->pair == NULL.
37 * It will result also in event1->pair->is_second_in_pair == TRUE */
38 struct ik_event_s
*pair
;
39 gint64 timestamp
; /* monotonic time that this was created */
42 gboolean
_ik_startup (gboolean (*cb
) (ik_event_t
*event
));
44 ik_event_t
*_ik_event_new_dummy (const char *name
,
47 void _ik_event_free (ik_event_t
*event
);
49 gint32
_ik_watch (const char *path
,
52 int _ik_ignore (const char *path
,
56 /* The miss count will probably be enflated */
57 void _ik_move_stats (guint32
*matches
,
59 const char *_ik_mask_to_string (guint32 mask
);