• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/libkqueue-1.0.6/src/linux/

Lines Matching refs:kn

119 add_watch(struct filter *filt, struct knote *kn)
125 if (fd_to_path(&path[0], sizeof(path), kn->kev.ident) < 0)
130 if (kn->kev.fflags & NOTE_DELETE)
132 if (kn->kev.fflags & NOTE_WRITE)
134 if (kn->kev.fflags & NOTE_EXTEND)
136 if ((kn->kev.fflags & NOTE_ATTRIB) ||
137 (kn->kev.fflags & NOTE_LINK))
139 if (kn->kev.fflags & NOTE_RENAME)
141 if (kn->kev.flags & EV_ONESHOT)
146 kn->kev.data = inotify_add_watch(filt->kf_pfd, path, mask);
147 if (kn->kev.data < 0) {
155 delete_watch(struct filter *filt, struct knote *kn)
157 if (kn->kev.data < 0)
159 if (inotify_rm_watch(filt->kf_pfd, kn->kev.data) < 0) {
163 dbg_printf("wd %d removed", (int) kn->kev.data);
164 kn->kev.data = -1;
193 struct knote *kn;
204 kn = knote_lookup_data(filt, evt.wd);
205 if (kn == NULL) {
210 memcpy(dst, &kn->kev, sizeof(*dst));
216 && fstat(kn->kev.ident, &sb) == 0) {
217 if (sb.st_nlink == 0 && kn->kev.fflags & NOTE_DELETE)
219 if (sb.st_nlink != kn->data.vnode.nlink && kn->kev.fflags & NOTE_LINK)
222 if (sb.st_nsize == 0 && kn->kev.fflags & NOTE_TRUNCATE)
225 if (sb.st_size > kn->data.vnode.size && kn->kev.fflags & NOTE_WRITE)
227 kn->data.vnode.nlink = sb.st_nlink;
228 kn->data.vnode.size = sb.st_size;
231 if (evt.mask & IN_MODIFY && kn->kev.fflags & NOTE_WRITE)
233 if (evt.mask & IN_ATTRIB && kn->kev.fflags & NOTE_ATTRIB)
235 if (evt.mask & IN_MOVE_SELF && kn->kev.fflags & NOTE_RENAME)
237 if (evt.mask & IN_DELETE_SELF && kn->kev.fflags & NOTE_DELETE)
240 if (evt.mask & IN_MODIFY && kn->kev.fflags & NOTE_WRITE)
242 if (evt.mask & IN_ATTRIB && kn->kev.fflags & NOTE_ATTRIB)
244 if (evt.mask & IN_MOVE_SELF && kn->kev.fflags & NOTE_RENAME)
246 if (evt.mask & IN_DELETE_SELF && kn->kev.fflags & NOTE_DELETE)
249 if (kn->kev.flags & EV_DISPATCH) {
250 delete_watch(filt, kn); /* TODO: error checking */
251 KNOTE_DISABLE(kn);
252 } else if (kn->kev.flags & EV_ONESHOT) {
253 delete_watch(filt, kn); /* TODO: error checking */
254 knote_free(filt, kn);
261 evfilt_vnode_knote_create(struct filter *filt, struct knote *kn)
265 if (fstat(kn->kev.ident, &sb) < 0) {
269 kn->data.vnode.nlink = sb.st_nlink;
270 kn->data.vnode.size = sb.st_size;
271 kn->kev.data = -1;
273 return (add_watch(filt, kn));
277 evfilt_vnode_knote_modify(struct filter *filt, struct knote *kn,
284 evfilt_vnode_knote_delete(struct filter *filt, struct knote *kn)
286 return delete_watch(filt, kn);
290 evfilt_vnode_knote_enable(struct filter *filt, struct knote *kn)
292 return add_watch(filt, kn);
296 evfilt_vnode_knote_disable(struct filter *filt, struct knote *kn)
298 return delete_watch(filt, kn);