Lines Matching refs:dcb
91 #define DCBHASH(dcb) ((dcb)->dcb_port % DIVHASHSIZE) argument
170 struct divcb *dcb; in divert_packet() local
276 SLIST_FOREACH(dcb, &V_divhash[DIVHASH(nport)], dcb_next) in divert_packet()
277 if (dcb->dcb_port == nport) in divert_packet()
280 if (dcb != NULL) { in divert_packet()
281 struct socket *sa = dcb->dcb_socket; in divert_packet()
565 struct divcb *dcb; in div_attach() local
576 dcb = malloc(sizeof(*dcb), M_PCB, M_WAITOK); in div_attach()
577 dcb->dcb_bound = DCB_UNBOUND; in div_attach()
578 dcb->dcb_socket = so; in div_attach()
581 dcb->dcb_gencnt = ++V_dcb_gencnt; in div_attach()
583 so->so_pcb = dcb; in div_attach()
591 struct divcb *dcb = __containerof(ctx, struct divcb, dcb_epochctx); in div_free() local
593 free(dcb, M_PCB); in div_free()
599 struct divcb *dcb = so->so_pcb; in div_detach() local
603 if (dcb->dcb_bound != DCB_UNBOUND) in div_detach()
604 SLIST_REMOVE(&V_divhash[DCBHASH(dcb)], dcb, divcb, dcb_next); in div_detach()
608 NET_EPOCH_CALL(div_free, &dcb->dcb_epochctx); in div_detach()
614 struct divcb *dcb; in div_bind() local
623 SLIST_FOREACH(dcb, &V_divhash[DIVHASH(port)], dcb_next) in div_bind()
624 if (dcb->dcb_port == port) { in div_bind()
628 dcb = so->so_pcb; in div_bind()
629 if (dcb->dcb_bound != DCB_UNBOUND) in div_bind()
630 SLIST_REMOVE(&V_divhash[DCBHASH(dcb)], dcb, divcb, dcb_next); in div_bind()
631 dcb->dcb_port = port; in div_bind()
632 SLIST_INSERT_HEAD(&V_divhash[DIVHASH(port)], dcb, dcb_next); in div_bind()
642 struct divcb *dcb; in div_pcblist() local
671 SLIST_FOREACH(dcb, &V_divhash[i], dcb_next) { in div_pcblist()
672 if (dcb->dcb_gencnt <= xig.xig_gen) { in div_pcblist()
677 sotoxsocket(dcb->dcb_socket, &xi.xi_socket); in div_pcblist()
678 xi.inp_gencnt = dcb->dcb_gencnt; in div_pcblist()
680 xi.inp_inc.inc_ie.ie_lport = dcb->dcb_port; in div_pcblist()