Lines Matching defs:nb

180 nl_buf_copy(struct nl_buf *nb)
184 copy = nl_buf_alloc(nb->buflen, M_NOWAIT);
187 memcpy(copy, nb, sizeof(*nb) + nb->buflen);
198 struct nl_buf *nb = nw->buf;
204 struct nlmsghdr *hdr = (struct nlmsghdr *)nb->data;
206 nb->datalen, hdr->nlmsg_type, hdr->nlmsg_len,
218 nl_buf_free(nb);
232 copy = nl_buf_copy(nb);
247 nw->buf = nb;
250 nl_buf_free(nb);
497 struct nl_buf *nb;
524 while ((nb = TAILQ_FIRST(&so->so_snd.nl_queue)) != NULL) {
525 TAILQ_REMOVE(&so->so_snd.nl_queue, nb, tailq);
526 nl_buf_free(nb);
528 while ((nb = TAILQ_FIRST(&so->so_rcv.nl_queue)) != NULL) {
529 TAILQ_REMOVE(&so->so_rcv.nl_queue, nb, tailq);
530 nl_buf_free(nb);
567 struct nl_buf *nb;
595 nb = nl_buf_alloc(len, M_WAITOK);
596 nb->datalen = uio->uio_resid;
597 error = uiomove(&nb->data[0], uio->uio_resid, uio);
603 if (sb->sb_hiwat - sb->sb_ccc >= nb->datalen) {
604 TAILQ_INSERT_TAIL(&sb->nl_queue, nb, tailq);
605 sb->sb_acc += nb->datalen;
606 sb->sb_ccc += nb->datalen;
607 nb = NULL;
622 if (nb == NULL) {
623 NL_LOG(LOG_DEBUG3, "enqueue %u bytes", nb->datalen);
631 if (nb != NULL)
632 nl_buf_free(nb);
671 struct nl_buf *first, *last, *nb, *next;
739 TAILQ_FOREACH(nb, &sb->nl_queue, tailq) {
742 MPASS(nb->offset < nb->datalen);
743 offset = nb->offset;
744 while (offset < nb->datalen) {
745 hdr = (struct nlmsghdr *)&nb->data[offset];
746 MPASS(nb->offset + hdr->nlmsg_len <= nb->datalen);
750 partoff = nb->offset;
754 nb->offset = offset;
763 if (nb->offset + hdr->nlmsg_len ==
764 nb->datalen) {
766 * Avoid leaving empty nb.
767 * Process last nb normally.
771 nb = TAILQ_NEXT(nb, tailq);
775 nb->offset += hdr->nlmsg_len;
783 MPASS(offset <= nb->buflen);
786 MPASS(offset == nb->datalen);
787 datalen += nb->datalen - nb->offset;
790 last = nb;
805 for (nb = first; nb != last; nb = next) {
806 next = TAILQ_NEXT(nb, tailq);
808 error = uiomove(&nb->data[nb->offset],
809 (int)(nb->datalen - nb->offset), uio);
811 nl_buf_free(nb);
814 error = uiomove(&nb->data[partoff], (int)partlen, uio);