[kdbus] sync with kdbus (commit: b078c757a3f9) 15/02/20
[platform/upstream/glib.git] / gio / inotify / inotify-kernel.h
1 /*
2    Copyright (C) 2005 John McCutchan
3
4    The Gnome Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Library General Public License as
6    published by the Free Software Foundation; either version 2 of the
7    License, or (at your option) any later version.
8
9    The Gnome 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    Library General Public License for more details.
13
14    You should have received a copy of the GNU Library General Public
15    License along with the Gnome Library; see the file COPYING.LIB.  If not,
16    see <http://www.gnu.org/licenses/>.
17
18    Authors:.
19                 John McCutchan <john@johnmccutchan.com>
20 */
21
22 #ifndef __INOTIFY_KERNEL_H
23 #define __INOTIFY_KERNEL_H
24
25 typedef struct ik_event_s {
26   gint32 wd;
27   guint32 mask;
28   guint32 original_mask;
29   guint32 cookie;
30   guint32 len;
31   char *  name;
32   /* TRUE if this event is the last element of a pair
33    * (e.g., MOVE_TO in a pair of MOVE_FROM, MOVE_TO events) */
34   gboolean is_second_in_pair;
35   /* if event1 and event2 are two paired events
36    * (e.g., MOVE_FROM and MOVE_TO events related to the same file move),
37    * then event1->pair == event2 and event2->pair == NULL.
38    * It will result also in event1->pair->is_second_in_pair == TRUE */
39   struct ik_event_s *pair;
40 } ik_event_t;
41
42 gboolean _ik_startup (void (*cb) (ik_event_t *event));
43
44 ik_event_t *_ik_event_new_dummy (const char *name,
45                                  gint32      wd,
46                                  guint32     mask);
47 void        _ik_event_free      (ik_event_t *event);
48
49 gint32      _ik_watch           (const char *path,
50                                  guint32     mask,
51                                  int        *err);
52 int         _ik_ignore          (const char *path,
53                                  gint32      wd);
54
55
56 /* The miss count will probably be enflated */
57 void        _ik_move_stats     (guint32 *matches,
58                                 guint32 *misses);
59 const char *_ik_mask_to_string (guint32  mask);
60
61
62 #endif