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);