Moving files to packaging and extracing new tarball.
[profile/ivi/glib2.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    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17    Boston, MA 02111-1307, USA.
18
19    Authors:.
20                 John McCutchan <john@johnmccutchan.com>
21 */
22
23 #ifndef __INOTIFY_KERNEL_H
24 #define __INOTIFY_KERNEL_H
25
26 typedef struct ik_event_s {
27   gint32 wd;
28   guint32 mask;
29   guint32 original_mask;
30   guint32 cookie;
31   guint32 len;
32   char *  name;
33   /* TRUE if this event is the last element of a pair
34    * (e.g., MOVE_TO in a pair of MOVE_FROM, MOVE_TO events) */
35   gboolean is_second_in_pair;
36   /* if event1 and event2 are two paired events
37    * (e.g., MOVE_FROM and MOVE_TO events related to the same file move),
38    * then event1->pair == event2 and event2->pair == NULL.
39    * It will result also in event1->pair->is_second_in_pair == TRUE */
40   struct ik_event_s *pair;
41 } ik_event_t;
42
43 gboolean _ik_startup (void (*cb) (ik_event_t *event));
44
45 ik_event_t *_ik_event_new_dummy (const char *name,
46                                  gint32      wd,
47                                  guint32     mask);
48 void        _ik_event_free      (ik_event_t *event);
49
50 gint32      _ik_watch           (const char *path,
51                                  guint32     mask,
52                                  int        *err);
53 int         _ik_ignore          (const char *path,
54                                  gint32      wd);
55
56
57 /* The miss count will probably be enflated */
58 void        _ik_move_stats     (guint32 *matches,
59                                 guint32 *misses);
60 const char *_ik_mask_to_string (guint32  mask);
61
62
63 #endif