Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 147470 | Differences between
and this patch

Collapse All | Expand All

(-)tracker-orig/src/trackerd/linux-inotify.h (+110 lines)
Line 0 Link Here
1
/*
2
 * Inode based directory notification for Linux
3
 *
4
 * Copyright (C) 2005 John McCutchan
5
 */
6
7
#ifndef _LINUX_INOTIFY_H
8
#define _LINUX_INOTIFY_H
9
10
#include <linux/types.h>
11
12
/*
13
 * struct inotify_event - structure read from the inotify device for each event
14
 *
15
 * When you are watching a directory, you will receive the filename for events
16
 * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd.
17
 */
18
struct inotify_event {
19
	__s32		wd;		/* watch descriptor */
20
	__u32		mask;		/* watch mask */
21
	__u32		cookie;		/* cookie to synchronize two events */
22
	__u32		len;		/* length (including nulls) of name */
23
	char		name[0];	/* stub for possible name */
24
};
25
26
/* the following are legal, implemented events that user-space can watch for */
27
#define IN_ACCESS		0x00000001	/* File was accessed */
28
#define IN_MODIFY		0x00000002	/* File was modified */
29
#define IN_ATTRIB		0x00000004	/* Metadata changed */
30
#define IN_CLOSE_WRITE		0x00000008	/* Writtable file was closed */
31
#define IN_CLOSE_NOWRITE	0x00000010	/* Unwrittable file closed */
32
#define IN_OPEN			0x00000020	/* File was opened */
33
#define IN_MOVED_FROM		0x00000040	/* File was moved from X */
34
#define IN_MOVED_TO		0x00000080	/* File was moved to Y */
35
#define IN_CREATE		0x00000100	/* Subfile was created */
36
#define IN_DELETE		0x00000200	/* Subfile was deleted */
37
#define IN_DELETE_SELF		0x00000400	/* Self was deleted */
38
#define IN_MOVE_SELF		0x00000800	/* Self was moved */
39
40
/* the following are legal events.  they are sent as needed to any watch */
41
#define IN_UNMOUNT		0x00002000	/* Backing fs was unmounted */
42
#define IN_Q_OVERFLOW		0x00004000	/* Event queued overflowed */
43
#define IN_IGNORED		0x00008000	/* File was ignored */
44
45
/* helper events */
46
#define IN_CLOSE		(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */
47
#define IN_MOVE			(IN_MOVED_FROM | IN_MOVED_TO) /* moves */
48
49
/* special flags */
50
#define IN_ISDIR		0x40000000	/* event occurred against dir */
51
#define IN_ONESHOT		0x80000000	/* only send event once */
52
53
/*
54
 * All of the events - we build the list by hand so that we can add flags in
55
 * the future and not break backward compatibility.  Apps will get only the
56
 * events that they originally wanted.  Be sure to add new events here!
57
 */
58
#define IN_ALL_EVENTS	(IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
59
			 IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
60
			 IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
61
			 IN_MOVE_SELF)
62
63
#ifdef __KERNEL__
64
65
#include <linux/dcache.h>
66
#include <linux/fs.h>
67
#include <linux/config.h>
68
69
#ifdef CONFIG_INOTIFY
70
71
extern void inotify_inode_queue_event(struct inode *, __u32, __u32,
72
				      const char *);
73
extern void inotify_dentry_parent_queue_event(struct dentry *, __u32, __u32,
74
					      const char *);
75
extern void inotify_unmount_inodes(struct list_head *);
76
extern void inotify_inode_is_dead(struct inode *);
77
extern u32 inotify_get_cookie(void);
78
79
#else
80
81
static inline void inotify_inode_queue_event(struct inode *inode,
82
					     __u32 mask, __u32 cookie,
83
					     const char *filename)
84
{
85
}
86
87
static inline void inotify_dentry_parent_queue_event(struct dentry *dentry,
88
						     __u32 mask, __u32 cookie,
89
						     const char *filename)
90
{
91
}
92
93
static inline void inotify_unmount_inodes(struct list_head *list)
94
{
95
}
96
97
static inline void inotify_inode_is_dead(struct inode *inode)
98
{
99
}
100
101
static inline u32 inotify_get_cookie(void)
102
{
103
	return 0;
104
}
105
106
#endif	/* CONFIG_INOTIFY */
107
108
#endif	/* __KERNEL __ */
109
110
#endif	/* _LINUX_INOTIFY_H */
(-)tracker-orig/src/trackerd/tracker-inotify.h (-1 / +1 lines)
Lines 20-26 Link Here
20
#include "config.h"
20
#include "config.h"
21
21
22
#ifdef HAVE_INOTIFY_LINUX
22
#ifdef HAVE_INOTIFY_LINUX
23
#include <linux/inotify.h>
23
#include "linux-inotify.h"
24
#include "linux-inotify-syscalls.h"
24
#include "linux-inotify-syscalls.h"
25
#else
25
#else
26
#include <sys/inotify.h>
26
#include <sys/inotify.h>
(-)tracker-orig/configure.in (-21 / +6 lines)
Lines 97-128 Link Here
97
AM_CONDITIONAL(HAVE_FAM, false)
97
AM_CONDITIONAL(HAVE_FAM, false)
98
98
99
##################################################################
99
##################################################################
100
# check for inotify
100
# we do not check as the ebuild checks all this
101
# and gentoo does not provide current linux headers
101
##################################################################
102
##################################################################
102
103
103
inotify_support=no
104
inotify_support=yes
104
inotify_linux=no
105
inotify_linux=yes
105
inotify_header=none
106
inotify_header="linux-inotify.h"
106
fs_monitor_backends=""
107
fs_monitor_backends=""
107
primary_backend="polling only"
108
primary_backend="polling only"
108
109
109
AC_CHECK_HEADERS([linux/inotify.h],
110
AC_DEFINE(HAVE_INOTIFY_LINUX, [], [Define if we have inotify and header is linux/inotify.h])
110
		 [
111
		 inotify_linux=yes
112
		 inotify_support=yes
113
		 AC_DEFINE(HAVE_INOTIFY_LINUX, [], [Define if we have inotify and header is linux/inotify.h])
114
		 AM_CONDITIONAL(HAVE_INOTIFY_LINUX, true)
115
		 inotify_header=linux/inotify.h
116
		 ])
117
118
AC_CHECK_HEADERS([sys/inotify.h],
119
		 [
120
		 inotify_support=yes
121
		 inotify_linux=no
122
		 inotify_header=sys/inotify.h
123
		 ])
124
125
126
111
127
AC_ARG_ENABLE(inotify, [  --disable-inotify          build without enabling inotify for file monitoring],
112
AC_ARG_ENABLE(inotify, [  --disable-inotify          build without enabling inotify for file monitoring],
128
			 [
113
			 [

Return to bug 147470