Home | History | Annotate | Download | only in netbt

Lines Matching defs:chan

64 l2cap_close(struct l2cap_channel *chan, int err)
69 if (chan->lc_state == L2CAP_CLOSED)
78 TAILQ_FOREACH(pdu, &chan->lc_link->hl_txq, lp_next) {
79 if (pdu->lp_chan == chan)
86 req = TAILQ_FIRST(&chan->lc_link->hl_reqs);
89 if (req->lr_chan == chan)
95 chan->lc_pending = 0;
96 chan->lc_state = L2CAP_CLOSED;
97 hci_acl_close(chan->lc_link, err);
98 chan->lc_link = NULL;
100 (*chan->lc_proto->disconnected)(chan->lc_upper, err);
112 struct l2cap_channel *chan;
137 chan = l2cap_cid_lookup(hdr.dcid);
138 if (chan != NULL && chan->lc_link == link
139 && chan->lc_imtu >= hdr.length
140 && chan->lc_state == L2CAP_OPEN) {
141 (*chan->lc_proto->input)(chan->lc_upper, m);
159 l2cap_start(struct l2cap_channel *chan)
164 if (chan->lc_state != L2CAP_OPEN)
167 if (MBUFQ_FIRST(&chan->lc_txq) == NULL) {
168 DPRINTFN(5, "no data, pending = %d\n", chan->lc_pending);
173 if (chan->lc_flags & L2CAP_SHUTDOWN
174 && chan->lc_pending == 0) {
175 chan->lc_state = L2CAP_WAIT_DISCONNECT;
176 err = l2cap_send_disconnect_req(chan);
178 l2cap_close(chan, err);
195 MBUFQ_DEQUEUE(&chan->lc_txq, m);
197 KASSERT(chan->lc_link != NULL);
201 chan->lc_lcid, m->m_pkthdr.len);
203 chan->lc_pending++;
204 return hci_acl_send(m, chan->lc_link, chan);