kn 101 arch/i386/i386/apm.c void filt_apmrdetach(struct knote *kn); kn 102 arch/i386/i386/apm.c int filt_apmread(struct knote *kn, long hint); kn 1138 arch/i386/i386/apm.c filt_apmrdetach(struct knote *kn) kn 1140 arch/i386/i386/apm.c struct apm_softc *sc = (struct apm_softc *)kn->kn_hook; kn 1143 arch/i386/i386/apm.c SLIST_REMOVE(&sc->sc_note, kn, knote, kn_selnext); kn 1148 arch/i386/i386/apm.c filt_apmread(struct knote *kn, long hint) kn 1151 arch/i386/i386/apm.c if (hint && !kn->kn_data) kn 1152 arch/i386/i386/apm.c kn->kn_data = (int)hint; kn 1157 arch/i386/i386/apm.c apmkqfilter(dev_t dev, struct knote *kn) kn 1166 arch/i386/i386/apm.c switch (kn->kn_filter) { kn 1168 arch/i386/i386/apm.c kn->kn_fop = &apmread_filtops; kn 1174 arch/i386/i386/apm.c kn->kn_hook = (caddr_t)sc; kn 1177 arch/i386/i386/apm.c SLIST_INSERT_HEAD(&sc->sc_note, kn, kn_selnext); kn 296 arch/i386/include/apmvar.h int apm_kqfilter(dev_t dev, struct knote *kn); kn 603 crypto/cryptodev.c cryptof_kqfilter(struct file *fp, struct knote *kn) kn 880 dev/acpi/acpi.c acpi_filtdetach(struct knote *kn) kn 882 dev/acpi/acpi.c struct acpi_softc *sc = kn->kn_hook; kn 885 dev/acpi/acpi.c SLIST_REMOVE(sc->sc_note, kn, knote, kn_selnext); kn 890 dev/acpi/acpi.c acpi_filtread(struct knote *kn, long hint) kn 893 dev/acpi/acpi.c if (hint & !kn->kn_data) kn 894 dev/acpi/acpi.c kn->kn_data = hint; kn 900 dev/acpi/acpi.c acpikqfilter(dev_t dev, struct knote *kn) kn 908 dev/acpi/acpi.c switch (kn->kn_filter) { kn 910 dev/acpi/acpi.c kn->kn_fop = &acpiread_filtops; kn 916 dev/acpi/acpi.c kn->kn_hook = sc; kn 919 dev/acpi/acpi.c SLIST_INSERT_HEAD(sc->sc_note, kn, kn_selnext); kn 2961 dev/audio.c audiokqfilter(dev_t dev, struct knote *kn) kn 2968 dev/audio.c switch (kn->kn_filter) { kn 2971 dev/audio.c kn->kn_fop = &audioread_filtops; kn 2975 dev/audio.c kn->kn_fop = &audiowrite_filtops; kn 2980 dev/audio.c kn->kn_hook = (void *)sc; kn 2983 dev/audio.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 2990 dev/audio.c filt_audiordetach(struct knote *kn) kn 2992 dev/audio.c struct audio_softc *sc = (struct audio_softc *)kn->kn_hook; kn 2995 dev/audio.c SLIST_REMOVE(&sc->sc_rsel.si_note, kn, knote, kn_selnext); kn 3000 dev/audio.c filt_audioread(struct knote *kn, long hint) kn 3002 dev/audio.c struct audio_softc *sc = (struct audio_softc *)kn->kn_hook; kn 3008 dev/audio.c filt_audiowdetach(struct knote *kn) kn 3010 dev/audio.c struct audio_softc *sc = (struct audio_softc *)kn->kn_hook; kn 3013 dev/audio.c SLIST_REMOVE(&sc->sc_wsel.si_note, kn, knote, kn_selnext); kn 3018 dev/audio.c filt_audiowrite(struct knote *kn, long hint) kn 3020 dev/audio.c struct audio_softc *sc = (struct audio_softc *)kn->kn_hook; kn 208 dev/cons.c cnkqfilter(dev_t dev, struct knote *kn) kn 222 dev/cons.c return ((*cdevsw[major(dev)].d_kqfilter)(dev, kn)); kn 197 dev/hotplug.c hotplugkqfilter(dev_t dev, struct knote *kn) kn 202 dev/hotplug.c switch (kn->kn_filter) { kn 205 dev/hotplug.c kn->kn_fop = &hotplugread_filtops; kn 212 dev/hotplug.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 218 dev/hotplug.c filt_hotplugrdetach(struct knote *kn) kn 223 dev/hotplug.c SLIST_REMOVE(&hotplug_sel.si_note, kn, knote, kn_selnext); kn 228 dev/hotplug.c filt_hotplugread(struct knote *kn, long hint) kn 230 dev/hotplug.c kn->kn_data = evqueue_count; kn 406 dev/rnd.c void filt_rndrdetach(struct knote *kn); kn 407 dev/rnd.c int filt_rndread(struct knote *kn, long hint); kn 412 dev/rnd.c void filt_rndwdetach(struct knote *kn); kn 413 dev/rnd.c int filt_rndwrite(struct knote *kn, long hint); kn 1037 dev/rnd.c randomkqfilter(dev_t dev, struct knote *kn) kn 1042 dev/rnd.c switch (kn->kn_filter) { kn 1045 dev/rnd.c kn->kn_fop = &rndread_filtops; kn 1049 dev/rnd.c kn->kn_fop = &rndwrite_filtops; kn 1054 dev/rnd.c kn->kn_hook = (void *)&random_state; kn 1057 dev/rnd.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 1064 dev/rnd.c filt_rndrdetach(struct knote *kn) kn 1068 dev/rnd.c SLIST_REMOVE(&rnd_rsel.si_note, kn, knote, kn_selnext); kn 1073 dev/rnd.c filt_rndread(struct knote *kn, long hint) kn 1075 dev/rnd.c struct random_bucket *rs = (struct random_bucket *)kn->kn_hook; kn 1077 dev/rnd.c kn->kn_data = (int)rs->entropy_count; kn 1082 dev/rnd.c filt_rndwdetach(struct knote *kn) kn 1086 dev/rnd.c SLIST_REMOVE(&rnd_wsel.si_note, kn, knote, kn_selnext); kn 1091 dev/rnd.c filt_rndwrite(struct knote *kn, long hint) kn 438 dev/systrace.c systracef_kqfilter(fp, kn) kn 440 dev/systrace.c struct knote *kn; kn 1361 dev/usb/ugen.c filt_ugenrdetach(struct knote *kn) kn 1363 dev/usb/ugen.c struct ugen_endpoint *sce = (void *)kn->kn_hook; kn 1367 dev/usb/ugen.c SLIST_REMOVE(&sce->rsel.si_note, kn, knote, kn_selnext); kn 1372 dev/usb/ugen.c filt_ugenread_intr(struct knote *kn, long hint) kn 1374 dev/usb/ugen.c struct ugen_endpoint *sce = (void *)kn->kn_hook; kn 1376 dev/usb/ugen.c kn->kn_data = sce->q.c_cc; kn 1377 dev/usb/ugen.c return (kn->kn_data > 0); kn 1381 dev/usb/ugen.c filt_ugenread_isoc(struct knote *kn, long hint) kn 1383 dev/usb/ugen.c struct ugen_endpoint *sce = (void *)kn->kn_hook; kn 1389 dev/usb/ugen.c kn->kn_data = sce->fill - sce->cur; kn 1391 dev/usb/ugen.c kn->kn_data = (sce->limit - sce->cur) + kn 1407 dev/usb/ugen.c ugenkqfilter(dev_t dev, struct knote *kn) kn 1424 dev/usb/ugen.c switch (kn->kn_filter) { kn 1429 dev/usb/ugen.c kn->kn_fop = &ugenread_intr_filtops; kn 1432 dev/usb/ugen.c kn->kn_fop = &ugenread_isoc_filtops; kn 1440 dev/usb/ugen.c kn->kn_fop = &ugen_seltrue_filtops; kn 1461 dev/usb/ugen.c kn->kn_fop = &ugen_seltrue_filtops; kn 1472 dev/usb/ugen.c kn->kn_hook = (void *)sce; kn 1475 dev/usb/ugen.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 575 dev/usb/uhid.c filt_uhidrdetach(struct knote *kn) kn 577 dev/usb/uhid.c struct uhid_softc *sc = (void *)kn->kn_hook; kn 581 dev/usb/uhid.c SLIST_REMOVE(&sc->sc_rsel.si_note, kn, knote, kn_selnext); kn 586 dev/usb/uhid.c filt_uhidread(struct knote *kn, long hint) kn 588 dev/usb/uhid.c struct uhid_softc *sc = (void *)kn->kn_hook; kn 590 dev/usb/uhid.c kn->kn_data = sc->sc_q.c_cc; kn 591 dev/usb/uhid.c return (kn->kn_data > 0); kn 601 dev/usb/uhid.c uhidkqfilter(dev_t dev, struct knote *kn) kn 612 dev/usb/uhid.c switch (kn->kn_filter) { kn 615 dev/usb/uhid.c kn->kn_fop = &uhidread_filtops; kn 620 dev/usb/uhid.c kn->kn_fop = &uhid_seltrue_filtops; kn 627 dev/usb/uhid.c kn->kn_hook = (void *)sc; kn 630 dev/usb/uhid.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 612 dev/usb/usb.c filt_usbrdetach(struct knote *kn) kn 617 dev/usb/usb.c SLIST_REMOVE(&usb_selevent.si_note, kn, knote, kn_selnext); kn 622 dev/usb/usb.c filt_usbread(struct knote *kn, long hint) kn 628 dev/usb/usb.c kn->kn_data = sizeof(struct usb_event); kn 636 dev/usb/usb.c usbkqfilter(dev_t dev, struct knote *kn) kn 641 dev/usb/usb.c switch (kn->kn_filter) { kn 646 dev/usb/usb.c kn->kn_fop = &usbread_filtops; kn 653 dev/usb/usb.c kn->kn_hook = NULL; kn 656 dev/usb/usb.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 658 dev/usb/uscanner.c filt_uscannerdetach(struct knote *kn) kn 660 dev/usb/uscanner.c struct uscanner_softc *sc = (void *)kn->kn_hook; kn 662 dev/usb/uscanner.c SLIST_REMOVE(&sc->sc_selq.si_note, kn, knote, kn_selnext); kn 669 dev/usb/uscanner.c uscannerkqfilter(dev_t dev, struct knote *kn) kn 679 dev/usb/uscanner.c switch (kn->kn_filter) { kn 688 dev/usb/uscanner.c kn->kn_fop = &uscanner_seltrue_filtops; kn 695 dev/usb/uscanner.c kn->kn_hook = (void *)sc; kn 697 dev/usb/uscanner.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 1370 dev/wscons/wsdisplay.c wsdisplaykqfilter(dev_t dev, struct knote *kn) kn 1382 dev/wscons/wsdisplay.c return (ttkqfilter(dev, kn)); kn 66 kern/kern_event.c int kqueue_kqfilter(struct file *fp, struct knote *kn); kn 81 kern/kern_event.c void knote_attach(struct knote *kn, struct filedesc *fdp); kn 82 kern/kern_event.c void knote_drop(struct knote *kn, struct proc *p, struct filedesc *fdp); kn 83 kern/kern_event.c void knote_enqueue(struct knote *kn); kn 84 kern/kern_event.c void knote_dequeue(struct knote *kn); kn 86 kern/kern_event.c #define knote_free(kn) pool_put(&knote_pool, (kn)) kn 88 kern/kern_event.c void filt_kqdetach(struct knote *kn); kn 89 kern/kern_event.c int filt_kqueue(struct knote *kn, long hint); kn 90 kern/kern_event.c int filt_procattach(struct knote *kn); kn 91 kern/kern_event.c void filt_procdetach(struct knote *kn); kn 92 kern/kern_event.c int filt_proc(struct knote *kn, long hint); kn 93 kern/kern_event.c int filt_fileattach(struct knote *kn); kn 95 kern/kern_event.c int filt_timerattach(struct knote *kn); kn 96 kern/kern_event.c void filt_timerdetach(struct knote *kn); kn 97 kern/kern_event.c int filt_timer(struct knote *kn, long hint); kn 113 kern/kern_event.c #define KNOTE_ACTIVATE(kn) do { \ kn 114 kern/kern_event.c kn->kn_status |= KN_ACTIVE; \ kn 115 kern/kern_event.c if ((kn->kn_status & (KN_QUEUED | KN_DISABLED)) == 0) \ kn 116 kern/kern_event.c knote_enqueue(kn); \ kn 153 kern/kern_event.c filt_fileattach(struct knote *kn) kn 155 kern/kern_event.c struct file *fp = kn->kn_fp; kn 157 kern/kern_event.c return ((*fp->f_ops->fo_kqfilter)(fp, kn)); kn 161 kern/kern_event.c kqueue_kqfilter(struct file *fp, struct knote *kn) kn 163 kern/kern_event.c struct kqueue *kq = (struct kqueue *)kn->kn_fp->f_data; kn 165 kern/kern_event.c if (kn->kn_filter != EVFILT_READ) kn 168 kern/kern_event.c kn->kn_fop = &kqread_filtops; kn 169 kern/kern_event.c SLIST_INSERT_HEAD(&kq->kq_sel.si_note, kn, kn_selnext); kn 174 kern/kern_event.c filt_kqdetach(struct knote *kn) kn 176 kern/kern_event.c struct kqueue *kq = (struct kqueue *)kn->kn_fp->f_data; kn 178 kern/kern_event.c SLIST_REMOVE(&kq->kq_sel.si_note, kn, knote, kn_selnext); kn 183 kern/kern_event.c filt_kqueue(struct knote *kn, long hint) kn 185 kern/kern_event.c struct kqueue *kq = (struct kqueue *)kn->kn_fp->f_data; kn 187 kern/kern_event.c kn->kn_data = kq->kq_count; kn 188 kern/kern_event.c return (kn->kn_data > 0); kn 192 kern/kern_event.c filt_procattach(struct knote *kn) kn 196 kern/kern_event.c p = pfind(kn->kn_id); kn 208 kern/kern_event.c kn->kn_ptr.p_proc = p; kn 209 kern/kern_event.c kn->kn_flags |= EV_CLEAR; /* automatically set */ kn 214 kern/kern_event.c if (kn->kn_flags & EV_FLAG1) { kn 215 kern/kern_event.c kn->kn_data = kn->kn_sdata; /* ppid */ kn 216 kern/kern_event.c kn->kn_fflags = NOTE_CHILD; kn 217 kern/kern_event.c kn->kn_flags &= ~EV_FLAG1; kn 221 kern/kern_event.c SLIST_INSERT_HEAD(&p->p_klist, kn, kn_selnext); kn 235 kern/kern_event.c filt_procdetach(struct knote *kn) kn 237 kern/kern_event.c struct proc *p = kn->kn_ptr.p_proc; kn 239 kern/kern_event.c if (kn->kn_status & KN_DETACHED) kn 243 kern/kern_event.c SLIST_REMOVE(&p->p_klist, kn, knote, kn_selnext); kn 247 kern/kern_event.c filt_proc(struct knote *kn, long hint) kn 259 kern/kern_event.c if (kn->kn_sfflags & event) kn 260 kern/kern_event.c kn->kn_fflags |= event; kn 266 kern/kern_event.c kn->kn_status |= KN_DETACHED; kn 267 kern/kern_event.c kn->kn_flags |= (EV_EOF | EV_ONESHOT); kn 276 kern/kern_event.c if ((event == NOTE_FORK) && (kn->kn_sfflags & NOTE_TRACK)) { kn 284 kern/kern_event.c kev.filter = kn->kn_filter; kn 285 kern/kern_event.c kev.flags = kn->kn_flags | EV_ADD | EV_ENABLE | EV_FLAG1; kn 286 kern/kern_event.c kev.fflags = kn->kn_sfflags; kn 287 kern/kern_event.c kev.data = kn->kn_id; /* parent */ kn 288 kern/kern_event.c kev.udata = kn->kn_kevent.udata; /* preserve udata */ kn 289 kern/kern_event.c error = kqueue_register(kn->kn_kq, &kev, NULL); kn 291 kern/kern_event.c kn->kn_fflags |= NOTE_TRACKERR; kn 294 kern/kern_event.c return (kn->kn_fflags != 0); kn 300 kern/kern_event.c struct knote *kn = knx; kn 304 kern/kern_event.c kn->kn_data++; kn 305 kern/kern_event.c KNOTE_ACTIVATE(kn); kn 307 kern/kern_event.c if ((kn->kn_flags & EV_ONESHOT) == 0) { kn 308 kern/kern_event.c tv.tv_sec = kn->kn_sdata / 1000; kn 309 kern/kern_event.c tv.tv_usec = (kn->kn_sdata % 1000) * 1000; kn 311 kern/kern_event.c timeout_add((struct timeout *)kn->kn_hook, tticks); kn 320 kern/kern_event.c filt_timerattach(struct knote *kn) kn 330 kern/kern_event.c tv.tv_sec = kn->kn_sdata / 1000; kn 331 kern/kern_event.c tv.tv_usec = (kn->kn_sdata % 1000) * 1000; kn 334 kern/kern_event.c kn->kn_flags |= EV_CLEAR; /* automatically set */ kn 336 kern/kern_event.c timeout_set(to, filt_timerexpire, kn); kn 338 kern/kern_event.c kn->kn_hook = to; kn 344 kern/kern_event.c filt_timerdetach(struct knote *kn) kn 348 kern/kern_event.c to = (struct timeout *)kn->kn_hook; kn 355 kern/kern_event.c filt_timer(struct knote *kn, long hint) kn 357 kern/kern_event.c return (kn->kn_data != 0); kn 367 kern/kern_event.c filt_seltrue(struct knote *kn, long hint) kn 375 kern/kern_event.c kn->kn_data = 0; kn 488 kern/kern_event.c struct knote *kn = NULL; kn 514 kern/kern_event.c SLIST_FOREACH(kn, &fdp->fd_knlist[kev->ident], kn_link) kn 515 kern/kern_event.c if (kq == kn->kn_kq && kn 516 kern/kern_event.c kev->filter == kn->kn_filter) kn 525 kern/kern_event.c SLIST_FOREACH(kn, list, kn_link) kn 526 kern/kern_event.c if (kev->ident == kn->kn_id && kn 527 kern/kern_event.c kq == kn->kn_kq && kn 528 kern/kern_event.c kev->filter == kn->kn_filter) kn 533 kern/kern_event.c if (kn == NULL && ((kev->flags & EV_ADD) == 0)) { kn 543 kern/kern_event.c if (kn == NULL) { kn 544 kern/kern_event.c kn = knote_alloc(); kn 545 kern/kern_event.c if (kn == NULL) { kn 549 kern/kern_event.c kn->kn_fp = fp; kn 550 kern/kern_event.c kn->kn_kq = kq; kn 551 kern/kern_event.c kn->kn_fop = fops; kn 561 kern/kern_event.c kn->kn_sfflags = kev->fflags; kn 562 kern/kern_event.c kn->kn_sdata = kev->data; kn 565 kern/kern_event.c kn->kn_kevent = *kev; kn 567 kern/kern_event.c knote_attach(kn, fdp); kn 568 kern/kern_event.c if ((error = fops->f_attach(kn)) != 0) { kn 569 kern/kern_event.c knote_drop(kn, p, fdp); kn 578 kern/kern_event.c kn->kn_sfflags = kev->fflags; kn 579 kern/kern_event.c kn->kn_sdata = kev->data; kn 580 kern/kern_event.c kn->kn_kevent.udata = kev->udata; kn 584 kern/kern_event.c if (kn->kn_fop->f_event(kn, 0)) kn 585 kern/kern_event.c KNOTE_ACTIVATE(kn); kn 589 kern/kern_event.c kn->kn_fop->f_detach(kn); kn 590 kern/kern_event.c knote_drop(kn, p, p->p_fd); kn 595 kern/kern_event.c ((kn->kn_status & KN_DISABLED) == 0)) { kn 597 kern/kern_event.c kn->kn_status |= KN_DISABLED; kn 601 kern/kern_event.c if ((kev->flags & EV_ENABLE) && (kn->kn_status & KN_DISABLED)) { kn 603 kern/kern_event.c kn->kn_status &= ~KN_DISABLED; kn 604 kern/kern_event.c if ((kn->kn_status & KN_ACTIVE) && kn 605 kern/kern_event.c ((kn->kn_status & KN_QUEUED) == 0)) kn 606 kern/kern_event.c knote_enqueue(kn); kn 623 kern/kern_event.c struct knote *kn, marker; kn 688 kern/kern_event.c kn = TAILQ_FIRST(&kq->kq_head); kn 689 kern/kern_event.c TAILQ_REMOVE(&kq->kq_head, kn, kn_tqe); kn 690 kern/kern_event.c if (kn == &marker) { kn 696 kern/kern_event.c if (kn->kn_status & KN_DISABLED) { kn 697 kern/kern_event.c kn->kn_status &= ~KN_QUEUED; kn 701 kern/kern_event.c if ((kn->kn_flags & EV_ONESHOT) == 0 && kn 702 kern/kern_event.c kn->kn_fop->f_event(kn, 0) == 0) { kn 703 kern/kern_event.c kn->kn_status &= ~(KN_QUEUED | KN_ACTIVE); kn 707 kern/kern_event.c *kevp = kn->kn_kevent; kn 710 kern/kern_event.c if (kn->kn_flags & EV_ONESHOT) { kn 711 kern/kern_event.c kn->kn_status &= ~KN_QUEUED; kn 714 kern/kern_event.c kn->kn_fop->f_detach(kn); kn 715 kern/kern_event.c knote_drop(kn, p, p->p_fd); kn 717 kern/kern_event.c } else if (kn->kn_flags & EV_CLEAR) { kn 718 kern/kern_event.c kn->kn_data = 0; kn 719 kern/kern_event.c kn->kn_fflags = 0; kn 720 kern/kern_event.c kn->kn_status &= ~(KN_QUEUED | KN_ACTIVE); kn 723 kern/kern_event.c TAILQ_INSERT_TAIL(&kq->kq_head, kn, kn_tqe); kn 813 kern/kern_event.c struct knote **knp, *kn, *kn0; kn 818 kern/kern_event.c kn = *knp; kn 819 kern/kern_event.c while (kn != NULL) { kn 820 kern/kern_event.c kn0 = SLIST_NEXT(kn, kn_link); kn 821 kern/kern_event.c if (kq == kn->kn_kq) { kn 822 kern/kern_event.c FREF(kn->kn_fp); kn 823 kern/kern_event.c kn->kn_fop->f_detach(kn); kn 824 kern/kern_event.c closef(kn->kn_fp, p); kn 825 kern/kern_event.c knote_free(kn); kn 828 kern/kern_event.c knp = &SLIST_NEXT(kn, kn_link); kn 830 kern/kern_event.c kn = kn0; kn 836 kern/kern_event.c kn = *knp; kn 837 kern/kern_event.c while (kn != NULL) { kn 838 kern/kern_event.c kn0 = SLIST_NEXT(kn, kn_link); kn 839 kern/kern_event.c if (kq == kn->kn_kq) { kn 840 kern/kern_event.c kn->kn_fop->f_detach(kn); kn 842 kern/kern_event.c knote_free(kn); kn 845 kern/kern_event.c knp = &SLIST_NEXT(kn, kn_link); kn 847 kern/kern_event.c kn = kn0; kn 878 kern/kern_event.c struct knote *kn; kn 880 kern/kern_event.c SLIST_FOREACH(kn, list, kn_selnext) kn 881 kern/kern_event.c if (kn->kn_fop->f_event(kn, hint)) kn 882 kern/kern_event.c KNOTE_ACTIVATE(kn); kn 891 kern/kern_event.c struct knote *kn; kn 893 kern/kern_event.c while ((kn = SLIST_FIRST(list)) != NULL) { kn 894 kern/kern_event.c kn->kn_fop->f_detach(kn); kn 895 kern/kern_event.c knote_drop(kn, p, p->p_fd); kn 912 kern/kern_event.c knote_attach(struct knote *kn, struct filedesc *fdp) kn 917 kern/kern_event.c if (! kn->kn_fop->f_isfd) { kn 921 kern/kern_event.c list = &fdp->fd_knhash[KN_HASH(kn->kn_id, fdp->fd_knhashmask)]; kn 925 kern/kern_event.c if (fdp->fd_knlistsize <= kn->kn_id) { kn 927 kern/kern_event.c while (size <= kn->kn_id) kn 940 kern/kern_event.c list = &fdp->fd_knlist[kn->kn_id]; kn 942 kern/kern_event.c SLIST_INSERT_HEAD(list, kn, kn_link); kn 943 kern/kern_event.c kn->kn_status = 0; kn 951 kern/kern_event.c knote_drop(struct knote *kn, struct proc *p, struct filedesc *fdp) kn 955 kern/kern_event.c if (kn->kn_fop->f_isfd) kn 956 kern/kern_event.c list = &fdp->fd_knlist[kn->kn_id]; kn 958 kern/kern_event.c list = &fdp->fd_knhash[KN_HASH(kn->kn_id, fdp->fd_knhashmask)]; kn 960 kern/kern_event.c SLIST_REMOVE(list, kn, knote, kn_link); kn 961 kern/kern_event.c if (kn->kn_status & KN_QUEUED) kn 962 kern/kern_event.c knote_dequeue(kn); kn 963 kern/kern_event.c if (kn->kn_fop->f_isfd) { kn 964 kern/kern_event.c FREF(kn->kn_fp); kn 965 kern/kern_event.c closef(kn->kn_fp, p); kn 967 kern/kern_event.c knote_free(kn); kn 972 kern/kern_event.c knote_enqueue(struct knote *kn) kn 974 kern/kern_event.c struct kqueue *kq = kn->kn_kq; kn 977 kern/kern_event.c KASSERT((kn->kn_status & KN_QUEUED) == 0); kn 979 kern/kern_event.c TAILQ_INSERT_TAIL(&kq->kq_head, kn, kn_tqe); kn 980 kern/kern_event.c kn->kn_status |= KN_QUEUED; kn 987 kern/kern_event.c knote_dequeue(struct knote *kn) kn 989 kern/kern_event.c struct kqueue *kq = kn->kn_kq; kn 992 kern/kern_event.c KASSERT(kn->kn_status & KN_QUEUED); kn 994 kern/kern_event.c TAILQ_REMOVE(&kq->kq_head, kn, kn_tqe); kn 995 kern/kern_event.c kn->kn_status &= ~KN_QUEUED; kn 1003 kern/kern_event.c struct knote *kn; kn 1005 kern/kern_event.c SLIST_FOREACH(kn, list, kn_selnext) { kn 1006 kern/kern_event.c kn->kn_status |= KN_DETACHED; kn 1007 kern/kern_event.c kn->kn_flags |= EV_EOF | EV_ONESHOT; kn 74 kern/kern_sig.c int filt_sigattach(struct knote *kn); kn 75 kern/kern_sig.c void filt_sigdetach(struct knote *kn); kn 76 kern/kern_sig.c int filt_signal(struct knote *kn, long hint); kn 1503 kern/kern_sig.c filt_sigattach(struct knote *kn) kn 1507 kern/kern_sig.c kn->kn_ptr.p_proc = p; kn 1508 kern/kern_sig.c kn->kn_flags |= EV_CLEAR; /* automatically set */ kn 1511 kern/kern_sig.c SLIST_INSERT_HEAD(&p->p_klist, kn, kn_selnext); kn 1517 kern/kern_sig.c filt_sigdetach(struct knote *kn) kn 1519 kern/kern_sig.c struct proc *p = kn->kn_ptr.p_proc; kn 1521 kern/kern_sig.c SLIST_REMOVE(&p->p_klist, kn, knote, kn_selnext); kn 1531 kern/kern_sig.c filt_signal(struct knote *kn, long hint) kn 1537 kern/kern_sig.c if (kn->kn_id == hint) kn 1538 kern/kern_sig.c kn->kn_data++; kn 1540 kern/kern_sig.c return (kn->kn_data != 0); kn 69 kern/subr_log.c void filt_logrdetach(struct knote *kn); kn 70 kern/subr_log.c int filt_logread(struct knote *kn, long hint); kn 211 kern/subr_log.c logkqfilter(dev_t dev, struct knote *kn) kn 216 kern/subr_log.c switch (kn->kn_filter) { kn 219 kern/subr_log.c kn->kn_fop = &logread_filtops; kn 225 kern/subr_log.c kn->kn_hook = (void *)msgbufp; kn 228 kern/subr_log.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 235 kern/subr_log.c filt_logrdetach(struct knote *kn) kn 239 kern/subr_log.c SLIST_REMOVE(&logsoftc.sc_selp.si_note, kn, knote, kn_selnext); kn 244 kern/subr_log.c filt_logread(struct knote *kn, long hint) kn 246 kern/subr_log.c struct msgbuf *p = (struct msgbuf *)kn->kn_hook; kn 248 kern/subr_log.c kn->kn_data = (int)(p->msg_bufx - p->msg_bufr); kn 55 kern/sys_pipe.c int pipe_kqfilter(struct file *fp, struct knote *kn); kn 64 kern/sys_pipe.c void filt_pipedetach(struct knote *kn); kn 65 kern/sys_pipe.c int filt_piperead(struct knote *kn, long hint); kn 66 kern/sys_pipe.c int filt_pipewrite(struct knote *kn, long hint); kn 766 kern/sys_pipe.c pipe_kqfilter(struct file *fp, struct knote *kn) kn 768 kern/sys_pipe.c struct pipe *rpipe = (struct pipe *)kn->kn_fp->f_data; kn 771 kern/sys_pipe.c switch (kn->kn_filter) { kn 773 kern/sys_pipe.c kn->kn_fop = &pipe_rfiltops; kn 774 kern/sys_pipe.c SLIST_INSERT_HEAD(&rpipe->pipe_sel.si_note, kn, kn_selnext); kn 780 kern/sys_pipe.c kn->kn_fop = &pipe_wfiltops; kn 781 kern/sys_pipe.c SLIST_INSERT_HEAD(&wpipe->pipe_sel.si_note, kn, kn_selnext); kn 791 kern/sys_pipe.c filt_pipedetach(struct knote *kn) kn 793 kern/sys_pipe.c struct pipe *rpipe = (struct pipe *)kn->kn_fp->f_data; kn 796 kern/sys_pipe.c switch (kn->kn_filter) { kn 798 kern/sys_pipe.c SLIST_REMOVE(&rpipe->pipe_sel.si_note, kn, knote, kn_selnext); kn 803 kern/sys_pipe.c SLIST_REMOVE(&wpipe->pipe_sel.si_note, kn, knote, kn_selnext); kn 810 kern/sys_pipe.c filt_piperead(struct knote *kn, long hint) kn 812 kern/sys_pipe.c struct pipe *rpipe = (struct pipe *)kn->kn_fp->f_data; kn 815 kern/sys_pipe.c kn->kn_data = rpipe->pipe_buffer.cnt; kn 819 kern/sys_pipe.c kn->kn_flags |= EV_EOF; kn 822 kern/sys_pipe.c return (kn->kn_data > 0); kn 827 kern/sys_pipe.c filt_pipewrite(struct knote *kn, long hint) kn 829 kern/sys_pipe.c struct pipe *rpipe = (struct pipe *)kn->kn_fp->f_data; kn 833 kern/sys_pipe.c kn->kn_data = 0; kn 834 kern/sys_pipe.c kn->kn_flags |= EV_EOF; kn 837 kern/sys_pipe.c kn->kn_data = wpipe->pipe_buffer.size - wpipe->pipe_buffer.cnt; kn 839 kern/sys_pipe.c return (kn->kn_data >= PIPE_BUF); kn 74 kern/tty.c int filt_ttyread(struct knote *kn, long hint); kn 75 kern/tty.c void filt_ttyrdetach(struct knote *kn); kn 76 kern/tty.c int filt_ttywrite(struct knote *kn, long hint); kn 77 kern/tty.c void filt_ttywdetach(struct knote *kn); kn 1078 kern/tty.c ttkqfilter(dev_t dev, struct knote *kn) kn 1084 kern/tty.c switch (kn->kn_filter) { kn 1087 kern/tty.c kn->kn_fop = &ttyread_filtops; kn 1091 kern/tty.c kn->kn_fop = &ttywrite_filtops; kn 1097 kern/tty.c kn->kn_hook = (caddr_t)((u_long)dev); kn 1100 kern/tty.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 1107 kern/tty.c filt_ttyrdetach(struct knote *kn) kn 1109 kern/tty.c dev_t dev = (dev_t)((u_long)kn->kn_hook); kn 1113 kern/tty.c SLIST_REMOVE(&tp->t_rsel.si_note, kn, knote, kn_selnext); kn 1118 kern/tty.c filt_ttyread(struct knote *kn, long hint) kn 1120 kern/tty.c dev_t dev = (dev_t)((u_long)kn->kn_hook); kn 1125 kern/tty.c kn->kn_data = ttnread(tp); kn 1128 kern/tty.c kn->kn_flags |= EV_EOF; kn 1131 kern/tty.c return (kn->kn_data > 0); kn 1135 kern/tty.c filt_ttywdetach(struct knote *kn) kn 1137 kern/tty.c dev_t dev = (dev_t)((u_long)kn->kn_hook); kn 1141 kern/tty.c SLIST_REMOVE(&tp->t_wsel.si_note, kn, knote, kn_selnext); kn 1146 kern/tty.c filt_ttywrite(struct knote *kn, long hint) kn 1148 kern/tty.c dev_t dev = (dev_t)((u_long)kn->kn_hook); kn 1151 kern/tty.c kn->kn_data = tp->t_outq.c_cc; kn 1152 kern/tty.c return (kn->kn_data <= tp->t_lowat); kn 656 kern/tty_pty.c filt_ptcrdetach(struct knote *kn) kn 658 kern/tty_pty.c struct pt_softc *pti = (struct pt_softc *)kn->kn_hook; kn 662 kern/tty_pty.c SLIST_REMOVE(&pti->pt_selr.si_note, kn, knote, kn_selnext); kn 667 kern/tty_pty.c filt_ptcread(struct knote *kn, long hint) kn 669 kern/tty_pty.c struct pt_softc *pti = (struct pt_softc *)kn->kn_hook; kn 673 kern/tty_pty.c kn->kn_data = 0; kn 677 kern/tty_pty.c kn->kn_data = tp->t_outq.c_cc; kn 680 kern/tty_pty.c kn->kn_data++; kn 682 kern/tty_pty.c return (kn->kn_data > 0); kn 686 kern/tty_pty.c filt_ptcwdetach(struct knote *kn) kn 688 kern/tty_pty.c struct pt_softc *pti = (struct pt_softc *)kn->kn_hook; kn 692 kern/tty_pty.c SLIST_REMOVE(&pti->pt_selw.si_note, kn, knote, kn_selnext); kn 697 kern/tty_pty.c filt_ptcwrite(struct knote *kn, long hint) kn 699 kern/tty_pty.c struct pt_softc *pti = (struct pt_softc *)kn->kn_hook; kn 703 kern/tty_pty.c kn->kn_data = 0; kn 708 kern/tty_pty.c kn->kn_data = tp->t_canq.c_cn; kn 710 kern/tty_pty.c kn->kn_data = tp->t_canq.c_cn - kn 714 kern/tty_pty.c return (kn->kn_data > 0); kn 723 kern/tty_pty.c ptckqfilter(dev_t dev, struct knote *kn) kn 729 kern/tty_pty.c switch (kn->kn_filter) { kn 732 kern/tty_pty.c kn->kn_fop = &ptcread_filtops; kn 736 kern/tty_pty.c kn->kn_fop = &ptcwrite_filtops; kn 742 kern/tty_pty.c kn->kn_hook = (caddr_t)pti; kn 745 kern/tty_pty.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 51 kern/uipc_socket.c void filt_sordetach(struct knote *kn); kn 52 kern/uipc_socket.c int filt_soread(struct knote *kn, long hint); kn 53 kern/uipc_socket.c void filt_sowdetach(struct knote *kn); kn 54 kern/uipc_socket.c int filt_sowrite(struct knote *kn, long hint); kn 55 kern/uipc_socket.c int filt_solisten(struct knote *kn, long hint); kn 1196 kern/uipc_socket.c soo_kqfilter(struct file *fp, struct knote *kn) kn 1198 kern/uipc_socket.c struct socket *so = (struct socket *)kn->kn_fp->f_data; kn 1202 kern/uipc_socket.c switch (kn->kn_filter) { kn 1205 kern/uipc_socket.c kn->kn_fop = &solisten_filtops; kn 1207 kern/uipc_socket.c kn->kn_fop = &soread_filtops; kn 1211 kern/uipc_socket.c kn->kn_fop = &sowrite_filtops; kn 1219 kern/uipc_socket.c SLIST_INSERT_HEAD(&sb->sb_sel.si_note, kn, kn_selnext); kn 1226 kern/uipc_socket.c filt_sordetach(struct knote *kn) kn 1228 kern/uipc_socket.c struct socket *so = (struct socket *)kn->kn_fp->f_data; kn 1231 kern/uipc_socket.c SLIST_REMOVE(&so->so_rcv.sb_sel.si_note, kn, knote, kn_selnext); kn 1239 kern/uipc_socket.c filt_soread(struct knote *kn, long hint) kn 1241 kern/uipc_socket.c struct socket *so = (struct socket *)kn->kn_fp->f_data; kn 1243 kern/uipc_socket.c kn->kn_data = so->so_rcv.sb_cc; kn 1245 kern/uipc_socket.c kn->kn_flags |= EV_EOF; kn 1246 kern/uipc_socket.c kn->kn_fflags = so->so_error; kn 1251 kern/uipc_socket.c if (kn->kn_sfflags & NOTE_LOWAT) kn 1252 kern/uipc_socket.c return (kn->kn_data >= kn->kn_sdata); kn 1253 kern/uipc_socket.c return (kn->kn_data >= so->so_rcv.sb_lowat); kn 1257 kern/uipc_socket.c filt_sowdetach(struct knote *kn) kn 1259 kern/uipc_socket.c struct socket *so = (struct socket *)kn->kn_fp->f_data; kn 1262 kern/uipc_socket.c SLIST_REMOVE(&so->so_snd.sb_sel.si_note, kn, knote, kn_selnext); kn 1270 kern/uipc_socket.c filt_sowrite(struct knote *kn, long hint) kn 1272 kern/uipc_socket.c struct socket *so = (struct socket *)kn->kn_fp->f_data; kn 1274 kern/uipc_socket.c kn->kn_data = sbspace(&so->so_snd); kn 1276 kern/uipc_socket.c kn->kn_flags |= EV_EOF; kn 1277 kern/uipc_socket.c kn->kn_fflags = so->so_error; kn 1285 kern/uipc_socket.c if (kn->kn_sfflags & NOTE_LOWAT) kn 1286 kern/uipc_socket.c return (kn->kn_data >= kn->kn_sdata); kn 1287 kern/uipc_socket.c return (kn->kn_data >= so->so_snd.sb_lowat); kn 1292 kern/uipc_socket.c filt_solisten(struct knote *kn, long hint) kn 1294 kern/uipc_socket.c struct socket *so = (struct socket *)kn->kn_fp->f_data; kn 1296 kern/uipc_socket.c kn->kn_data = so->so_qlen; kn 168 kern/vfs_default.c struct knote *kn = ap->a_kn; kn 170 kern/vfs_default.c switch (kn->kn_filter) { kn 173 kern/vfs_default.c kn->kn_fop = &generic_filtops; kn 183 kern/vfs_default.c filt_generic_detach(struct knote *kn) kn 188 kern/vfs_default.c filt_generic_readwrite(struct knote *kn, long hint) kn 195 kern/vfs_default.c kn->kn_flags |= (EV_EOF | EV_ONESHOT); kn 199 kern/vfs_default.c kn->kn_data = 0; kn 488 kern/vfs_vnops.c vn_kqfilter(struct file *fp, struct knote *kn) kn 490 kern/vfs_vnops.c return (VOP_KQFILTER(((struct vnode *)fp->f_data), kn)); kn 456 kern/vnode_if.c int VOP_KQFILTER(struct vnode *vp, struct knote *kn) kn 461 kern/vnode_if.c a.a_kn = kn; kn 116 miscfs/fifofs/fifo_vnops.c void filt_fifordetach(struct knote *kn); kn 117 miscfs/fifofs/fifo_vnops.c int filt_fiforead(struct knote *kn, long hint); kn 118 miscfs/fifofs/fifo_vnops.c void filt_fifowdetach(struct knote *kn); kn 119 miscfs/fifofs/fifo_vnops.c int filt_fifowrite(struct knote *kn, long hint); kn 533 miscfs/fifofs/fifo_vnops.c filt_fifordetach(struct knote *kn) kn 535 miscfs/fifofs/fifo_vnops.c struct socket *so = (struct socket *)kn->kn_hook; kn 537 miscfs/fifofs/fifo_vnops.c SLIST_REMOVE(&so->so_rcv.sb_sel.si_note, kn, knote, kn_selnext); kn 543 miscfs/fifofs/fifo_vnops.c filt_fiforead(struct knote *kn, long hint) kn 545 miscfs/fifofs/fifo_vnops.c struct socket *so = (struct socket *)kn->kn_hook; kn 547 miscfs/fifofs/fifo_vnops.c kn->kn_data = so->so_rcv.sb_cc; kn 549 miscfs/fifofs/fifo_vnops.c kn->kn_flags |= EV_EOF; kn 552 miscfs/fifofs/fifo_vnops.c kn->kn_flags &= ~EV_EOF; kn 553 miscfs/fifofs/fifo_vnops.c return (kn->kn_data > 0); kn 557 miscfs/fifofs/fifo_vnops.c filt_fifowdetach(struct knote *kn) kn 559 miscfs/fifofs/fifo_vnops.c struct socket *so = (struct socket *)kn->kn_hook; kn 561 miscfs/fifofs/fifo_vnops.c SLIST_REMOVE(&so->so_snd.sb_sel.si_note, kn, knote, kn_selnext); kn 567 miscfs/fifofs/fifo_vnops.c filt_fifowrite(struct knote *kn, long hint) kn 569 miscfs/fifofs/fifo_vnops.c struct socket *so = (struct socket *)kn->kn_hook; kn 571 miscfs/fifofs/fifo_vnops.c kn->kn_data = sbspace(&so->so_snd); kn 573 miscfs/fifofs/fifo_vnops.c kn->kn_flags |= EV_EOF; kn 576 miscfs/fifofs/fifo_vnops.c kn->kn_flags &= ~EV_EOF; kn 577 miscfs/fifofs/fifo_vnops.c return (kn->kn_data >= so->so_snd.sb_lowat); kn 1037 net/bpf.c bpfkqfilter(dev_t dev, struct knote *kn) kn 1044 net/bpf.c switch (kn->kn_filter) { kn 1047 net/bpf.c kn->kn_fop = &bpfread_filtops; kn 1053 net/bpf.c kn->kn_hook = (caddr_t)((u_long)dev); kn 1056 net/bpf.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 1063 net/bpf.c filt_bpfrdetach(struct knote *kn) kn 1065 net/bpf.c dev_t dev = (dev_t)((u_long)kn->kn_hook); kn 1071 net/bpf.c SLIST_REMOVE(&d->bd_sel.si_note, kn, knote, kn_selnext); kn 1076 net/bpf.c filt_bpfread(struct knote *kn, long hint) kn 1078 net/bpf.c dev_t dev = (dev_t)((u_long)kn->kn_hook); kn 1082 net/bpf.c kn->kn_data = d->bd_hlen; kn 1084 net/bpf.c kn->kn_data += d->bd_slen; kn 1085 net/bpf.c return (kn->kn_data > 0); kn 960 net/if_tun.c tunkqfilter(dev_t dev, struct knote *kn) kn 976 net/if_tun.c switch (kn->kn_filter) { kn 979 net/if_tun.c kn->kn_fop = &tunread_filtops; kn 983 net/if_tun.c kn->kn_fop = &tunwrite_filtops; kn 989 net/if_tun.c kn->kn_hook = (caddr_t)tp; kn 992 net/if_tun.c SLIST_INSERT_HEAD(klist, kn, kn_selnext); kn 999 net/if_tun.c filt_tunrdetach(struct knote *kn) kn 1004 net/if_tun.c tp = (struct tun_softc *)kn->kn_hook; kn 1006 net/if_tun.c if (!(kn->kn_status & KN_DETACHED)) kn 1007 net/if_tun.c SLIST_REMOVE(&tp->tun_rsel.si_note, kn, knote, kn_selnext); kn 1012 net/if_tun.c filt_tunread(struct knote *kn, long hint) kn 1019 net/if_tun.c if (kn->kn_status & KN_DETACHED) { kn 1020 net/if_tun.c kn->kn_data = 0; kn 1024 net/if_tun.c tp = (struct tun_softc *)kn->kn_hook; kn 1031 net/if_tun.c kn->kn_data = ifp->if_snd.ifq_len; kn 1043 net/if_tun.c filt_tunwdetach(struct knote *kn) kn 1048 net/if_tun.c tp = (struct tun_softc *)kn->kn_hook; kn 1050 net/if_tun.c if (!(kn->kn_status & KN_DETACHED)) kn 1051 net/if_tun.c SLIST_REMOVE(&tp->tun_wsel.si_note, kn, knote, kn_selnext); kn 1056 net/if_tun.c filt_tunwrite(struct knote *kn, long hint) kn 1061 net/if_tun.c if (kn->kn_status & KN_DETACHED) { kn 1062 net/if_tun.c kn->kn_data = 0; kn 1066 net/if_tun.c tp = (struct tun_softc *)kn->kn_hook; kn 1069 net/if_tun.c kn->kn_data = ifp->if_mtu; kn 188 nfs/nfs_kq.c filt_nfsdetach(struct knote *kn) kn 190 nfs/nfs_kq.c struct vnode *vp = (struct vnode *)kn->kn_hook; kn 193 nfs/nfs_kq.c SLIST_REMOVE(&vp->v_selectinfo.si_note, kn, knote, kn_selnext); kn 221 nfs/nfs_kq.c filt_nfsread(struct knote *kn, long hint) kn 223 nfs/nfs_kq.c struct vnode *vp = (struct vnode *)kn->kn_hook; kn 231 nfs/nfs_kq.c kn->kn_flags |= (EV_EOF | EV_ONESHOT); kn 235 nfs/nfs_kq.c kn->kn_data = np->n_size - kn->kn_fp->f_offset; kn 237 nfs/nfs_kq.c printf("nfsread event. %d\n", kn->kn_data); kn 239 nfs/nfs_kq.c return (kn->kn_data != 0); kn 243 nfs/nfs_kq.c filt_nfsvnode(struct knote *kn, long hint) kn 245 nfs/nfs_kq.c if (kn->kn_sfflags & hint) kn 246 nfs/nfs_kq.c kn->kn_fflags |= hint; kn 248 nfs/nfs_kq.c kn->kn_flags |= EV_EOF; kn 251 nfs/nfs_kq.c return (kn->kn_fflags != 0); kn 264 nfs/nfs_kq.c struct knote *kn; kn 271 nfs/nfs_kq.c kn = ap->a_kn; kn 274 nfs/nfs_kq.c printf("nfs_kqfilter(%d) on: ", kn->kn_filter); kn 278 nfs/nfs_kq.c switch (kn->kn_filter) { kn 280 nfs/nfs_kq.c kn->kn_fop = &nfsread_filtops; kn 283 nfs/nfs_kq.c kn->kn_fop = &nfsvnode_filtops; kn 289 nfs/nfs_kq.c kn->kn_hook = vp; kn 336 nfs/nfs_kq.c SLIST_INSERT_HEAD(&vp->v_selectinfo.si_note, kn, kn_selnext); kn 161 sys/conf.h int (*d_kqfilter)(dev_t dev, struct knote *kn); kn 131 sys/event.h int (*f_attach)(struct knote *kn); kn 132 sys/event.h void (*f_detach)(struct knote *kn); kn 133 sys/event.h int (*f_event)(struct knote *kn, long hint); kn 171 sys/event.h extern int filt_seltrue(struct knote *kn, long hint); kn 251 sys/socketvar.h int soo_kqfilter(struct file *fp, struct knote *kn); kn 272 sys/tty.h int ttkqfilter(dev_t dev, struct knote *kn); kn 1930 ufs/ufs/ufs_vnops.c struct knote *kn = ap->a_kn; kn 1932 ufs/ufs/ufs_vnops.c switch (kn->kn_filter) { kn 1934 ufs/ufs/ufs_vnops.c kn->kn_fop = &ufsread_filtops; kn 1937 ufs/ufs/ufs_vnops.c kn->kn_fop = &ufswrite_filtops; kn 1940 ufs/ufs/ufs_vnops.c kn->kn_fop = &ufsvnode_filtops; kn 1946 ufs/ufs/ufs_vnops.c kn->kn_hook = (caddr_t)vp; kn 1948 ufs/ufs/ufs_vnops.c SLIST_INSERT_HEAD(&vp->v_selectinfo.si_note, kn, kn_selnext); kn 1954 ufs/ufs/ufs_vnops.c filt_ufsdetach(struct knote *kn) kn 1956 ufs/ufs/ufs_vnops.c struct vnode *vp = (struct vnode *)kn->kn_hook; kn 1958 ufs/ufs/ufs_vnops.c SLIST_REMOVE(&vp->v_selectinfo.si_note, kn, knote, kn_selnext); kn 1963 ufs/ufs/ufs_vnops.c filt_ufsread(struct knote *kn, long hint) kn 1965 ufs/ufs/ufs_vnops.c struct vnode *vp = (struct vnode *)kn->kn_hook; kn 1973 ufs/ufs/ufs_vnops.c kn->kn_flags |= (EV_EOF | EV_ONESHOT); kn 1977 ufs/ufs/ufs_vnops.c kn->kn_data = DIP(ip, size) - kn->kn_fp->f_offset; kn 1978 ufs/ufs/ufs_vnops.c if (kn->kn_data == 0 && kn->kn_sfflags & NOTE_EOF) { kn 1979 ufs/ufs/ufs_vnops.c kn->kn_fflags |= NOTE_EOF; kn 1983 ufs/ufs/ufs_vnops.c return (kn->kn_data != 0); kn 1987 ufs/ufs/ufs_vnops.c filt_ufswrite(struct knote *kn, long hint) kn 1994 ufs/ufs/ufs_vnops.c kn->kn_flags |= (EV_EOF | EV_ONESHOT); kn 1998 ufs/ufs/ufs_vnops.c kn->kn_data = 0; kn 2003 ufs/ufs/ufs_vnops.c filt_ufsvnode(struct knote *kn, long hint) kn 2005 ufs/ufs/ufs_vnops.c if (kn->kn_sfflags & hint) kn 2006 ufs/ufs/ufs_vnops.c kn->kn_fflags |= hint; kn 2008 ufs/ufs/ufs_vnops.c kn->kn_flags |= EV_EOF; kn 2011 ufs/ufs/ufs_vnops.c return (kn->kn_fflags != 0);