Lines Matching defs:bp

188 static errno_t	bpf_attachd(struct bpf_d *d, struct bpf_if *bp);
466 * Attach file to the bpf interface, i.e. make d listen on bp.
469 bpf_attachd(struct bpf_d *d, struct bpf_if *bp)
471 int first = bp->bif_dlist == NULL;
475 * Point d at bp, and add d to the interface's list of listeners.
479 d->bd_bif = bp;
480 d->bd_next = bp->bif_dlist;
481 bp->bif_dlist = d;
485 if (bp->bif_ifp->if_bpf == NULL) {
488 for (primary = bpf_iflist; primary && primary->bif_ifp != bp->bif_ifp;
492 bp->bif_ifp->if_bpf = primary;
496 if (bp->bif_ifp->if_bpf == bp)
497 dlil_set_bpf_tap(bp->bif_ifp, BPF_TAP_INPUT_OUTPUT, bpf_tap_callback);
499 if (bp->bif_tap)
500 error = bp->bif_tap(bp->bif_ifp, bp->bif_dlt, BPF_TAP_INPUT_OUTPUT);
513 struct bpf_if *bp;
517 bp = d->bd_bif;
520 p = &bp->bif_dlist;
527 if (bp->bif_dlist == 0) {
532 if (bp->bif_ifp->if_bpf == bp)
534 if (bp->bif_tap)
535 bp->bif_tap(ifp, bp->bif_dlt, BPF_TAP_DISABLE);
537 for (bp = bpf_iflist; bp; bp = bp->bif_next)
538 if (bp->bif_ifp == ifp && bp->bif_dlist != 0)
540 if (bp == NULL)
1623 struct bpf_if *bp;
1629 for (bp = bpf_iflist; bp != 0; bp = bp->bif_next) {
1630 struct ifnet *ifp = bp->bif_ifp;
1632 if (ifp == 0 || ifp != theywant || (dlt != 0 && dlt != bp->bif_dlt))
1645 if (bp != d->bd_bif) {
1652 if (bpf_attachd(d, bp) != 0) {
1674 struct bpf_if *bp;
1688 for (bp = bpf_iflist; bp; bp = bp->bif_next) {
1689 if (bp->bif_ifp != ifp)
1695 error = copyout(&bp->bif_dlt, dlist,
1696 sizeof (bp->bif_dlt));
1699 dlist += sizeof (bp->bif_dlt);
1719 struct bpf_if *bp;
1724 for (bp = bpf_iflist; bp; bp = bp->bif_next) {
1725 if (bp->bif_ifp == ifp && bp->bif_dlt == dlt)
1728 if (bp != NULL) {
1731 error = bpf_attachd(d, bp);
1734 ifnet_name(bp->bif_ifp), ifnet_unit(bp->bif_ifp), error);
1740 error = ifnet_set_promiscuous(bp->bif_ifp, 1);
1744 ifnet_name(bp->bif_ifp), ifnet_unit(bp->bif_ifp), error);
1749 return (bp == NULL ? EINVAL : 0);
1981 struct bpf_if *bp;
2001 bp = ifp->if_bpf;
2002 for (bp = ifp->if_bpf; bp && bp->bif_ifp == ifp &&
2003 (dlt != 0 && bp->bif_dlt != dlt); bp = bp->bif_next)
2005 if (bp && bp->bif_ifp == ifp && bp->bif_dlist != NULL) {
2039 for (d = bp->bif_dlist; d; d = d->bd_next) {
2046 if (mac_bpfdesc_check_receive(d, bp->bif_ifp) != 0)
2332 struct bpf_if *bp, *bp_prev, *bp_next;
2341 for (bp = bpf_iflist; bp != NULL; bp = bp_next) {
2342 bp_next = bp->bif_next;
2343 if (ifp != bp->bif_ifp) {
2344 bp_prev = bp;
2348 while ((d = bp->bif_dlist) != NULL) {
2354 bp_prev->bif_next = bp->bif_next;
2356 bpf_iflist = bp->bif_next;
2359 bp->bif_next = bp_free;
2360 bp_free = bp;
2367 FREE(bp, M_DEVBUF);