Lines Matching defs:kn
184 static void filt_sordetach(struct knote *kn);
185 static int filt_soread(struct knote *kn, long hint);
186 static void filt_sowdetach(struct knote *kn);
187 static int filt_sowrite(struct knote *kn, long hint);
188 static int filt_soempty(struct knote *kn, long hint);
4479 soo_kqfilter(struct file *fp, struct knote *kn)
4481 struct socket *so = kn->kn_fp->f_data;
4486 switch (kn->kn_filter) {
4488 kn->kn_fop = &soread_filtops;
4494 kn->kn_fop = &sowrite_filtops;
4500 kn->kn_fop = &soempty_filtops;
4511 knlist_add(knl, kn, 1);
4514 knlist_add(knl, kn, 1);
4523 filt_sordetach(struct knote *kn)
4525 struct socket *so = kn->kn_fp->f_data;
4528 knlist_remove(&so->so_rdsel.si_note, kn, 1);
4536 filt_soread(struct knote *kn, long hint)
4540 so = kn->kn_fp->f_data;
4544 kn->kn_data = so->sol_qlen;
4546 kn->kn_flags |= EV_EOF;
4547 kn->kn_fflags = so->so_error;
4558 kn->kn_data = sbavail(&so->so_rcv) - so->so_rcv.sb_ctl;
4560 kn->kn_flags |= EV_EOF;
4561 kn->kn_fflags = so->so_error;
4566 if (kn->kn_sfflags & NOTE_LOWAT) {
4567 if (kn->kn_data >= kn->kn_sdata)
4581 filt_sowdetach(struct knote *kn)
4583 struct socket *so = kn->kn_fp->f_data;
4586 knlist_remove(&so->so_wrsel.si_note, kn, 1);
4594 filt_sowrite(struct knote *kn, long hint)
4598 so = kn->kn_fp->f_data;
4604 kn->kn_data = sbspace(&so->so_snd);
4607 hhook_run_socket(so, kn, HHOOK_FILT_SOWRITE);
4611 kn->kn_flags |= EV_EOF;
4612 kn->kn_fflags = so->so_error;
4619 else if (kn->kn_sfflags & NOTE_LOWAT)
4620 return (kn->kn_data >= kn->kn_sdata);
4622 return (kn->kn_data >= so->so_snd.sb_lowat);
4626 filt_soempty(struct knote *kn, long hint)
4630 so = kn->kn_fp->f_data;
4636 kn->kn_data = sbused(&so->so_snd);
4638 if (kn->kn_data == 0)