Lines Matching defs:kn
173 static void filt_pipedetach(struct knote *kn);
174 static void filt_pipedetach_notsup(struct knote *kn);
175 static int filt_pipenotsup(struct knote *kn, long hint);
176 static int filt_piperead(struct knote *kn, long hint);
177 static int filt_pipewrite(struct knote *kn, long hint);
1779 pipe_kqfilter(struct file *fp, struct knote *kn)
1788 if ((kn->kn_filter == EVFILT_READ) && !(fp->f_flag & FREAD)) {
1789 kn->kn_fop = &pipe_nfiltops;
1792 if ((kn->kn_filter == EVFILT_WRITE) && !(fp->f_flag & FWRITE)) {
1793 kn->kn_fop = &pipe_nfiltops;
1798 switch (kn->kn_filter) {
1800 kn->kn_fop = &pipe_rfiltops;
1803 kn->kn_fop = &pipe_wfiltops;
1814 return (vnops.fo_kqfilter(fp, kn));
1820 kn->kn_hook = cpipe;
1821 knlist_add(&cpipe->pipe_sel.si_note, kn, 1);
1827 filt_pipedetach(struct knote *kn)
1829 struct pipe *cpipe = kn->kn_hook;
1832 knlist_remove(&cpipe->pipe_sel.si_note, kn, 1);
1838 filt_piperead(struct knote *kn, long hint)
1840 struct file *fp = kn->kn_fp;
1841 struct pipe *rpipe = kn->kn_hook;
1844 kn->kn_data = rpipe->pipe_buffer.cnt;
1845 if (kn->kn_data == 0)
1846 kn->kn_data = rpipe->pipe_pages.cnt;
1851 kn->kn_flags |= EV_EOF;
1854 kn->kn_flags &= ~EV_EOF;
1855 return (kn->kn_data > 0);
1860 filt_pipewrite(struct knote *kn, long hint)
1862 struct pipe *wpipe = kn->kn_hook;
1873 kn->kn_data = 0;
1875 kn->kn_data = wpipe->pipe_buffer.size -
1878 kn->kn_data = PIPE_BUF;
1884 kn->kn_flags |= EV_EOF;
1887 kn->kn_flags &= ~EV_EOF;
1888 return (kn->kn_data >= PIPE_BUF);
1892 filt_pipedetach_notsup(struct knote *kn)
1898 filt_pipenotsup(struct knote *kn, long hint)