Lines Matching defs:pdu
540 * prepend a relevant ACL header to each fragment. We keep a PDU structure
542 * more data requested from above once the PDU is sent.
548 struct l2cap_pdu *pdu;
562 pdu = pool_get(&l2cap_pdu_pool, PR_NOWAIT);
563 if (pdu == NULL)
566 pdu->lp_chan = chan;
567 pdu->lp_pending = 0;
568 MBUFQ_INIT(&pdu->lp_data);
589 MBUFQ_ENQUEUE(&pdu->lp_data, m);
594 TAILQ_INSERT_TAIL(&link->hl_txq, pdu, lp_next);
603 if (pdu) {
604 MBUFQ_DRAIN(&pdu->lp_data);
605 pool_put(&l2cap_pdu_pool, pdu);
627 struct l2cap_pdu *pdu;
643 /* find first PDU with data to send */
644 pdu = TAILQ_FIRST(&link->hl_txq);
646 if (pdu == NULL)
649 if (MBUFQ_FIRST(&pdu->lp_data) != NULL)
652 pdu = TAILQ_NEXT(pdu, lp_next);
656 MBUFQ_DEQUEUE(&pdu->lp_data, m);
676 pdu->lp_pending++;
680 if (MBUFQ_FIRST(&pdu->lp_data) == NULL) {
681 if (pdu->lp_chan) {
691 l2cap_start(pdu->lp_chan);
695 pdu = TAILQ_NEXT(pdu, lp_next);
696 if (pdu == NULL)
712 * Confirm ACL packets cleared from Controller buffers. We scan our PDU
714 * when a PDU is complete.
719 struct l2cap_pdu *pdu;
725 pdu = TAILQ_FIRST(&link->hl_txq);
726 if (pdu == NULL) {
734 if (num >= pdu->lp_pending) {
735 num -= pdu->lp_pending;
736 pdu->lp_pending = 0;
738 if (MBUFQ_FIRST(&pdu->lp_data) == NULL) {
739 TAILQ_REMOVE(&link->hl_txq, pdu, lp_next);
740 chan = pdu->lp_chan;
750 pool_put(&l2cap_pdu_pool, pdu);
753 pdu->lp_pending -= num;
932 struct l2cap_pdu *pdu;
959 while ((pdu = TAILQ_FIRST(&link->hl_txq)) != NULL) {
960 TAILQ_REMOVE(&link->hl_txq, pdu, lp_next);
961 MBUFQ_DRAIN(&pdu->lp_data);
962 if (pdu->lp_pending)
963 link->hl_unit->hci_num_acl_pkts += pdu->lp_pending;
965 pool_put(&l2cap_pdu_pool, pdu);