Lines Matching refs:l2cap_ctx
48 static int ots_l2cap_send(struct bt_gatt_ots_l2cap *l2cap_ctx) in ots_l2cap_send() argument
55 len = MIN(l2cap_ctx->ot_chan.tx.mtu, CONFIG_BT_OTS_L2CAP_CHAN_TX_MTU); in ots_l2cap_send()
56 len = MIN(len, l2cap_ctx->tx.len - l2cap_ctx->tx.len_sent); in ots_l2cap_send()
61 net_buf_add_mem(buf, &l2cap_ctx->tx.data[l2cap_ctx->tx.len_sent], len); in ots_l2cap_send()
63 ret = bt_l2cap_chan_send(&l2cap_ctx->ot_chan.chan, buf); in ots_l2cap_send()
72 l2cap_ctx->tx.len_sent += len; in ots_l2cap_send()
92 struct bt_gatt_ots_l2cap *l2cap_ctx; in l2cap_sent() local
96 l2cap_ctx = CONTAINER_OF(l2chan, struct bt_gatt_ots_l2cap, ot_chan); in l2cap_sent()
99 if (l2cap_ctx->tx.len != l2cap_ctx->tx.len_sent) { in l2cap_sent()
100 ots_l2cap_send(l2cap_ctx); in l2cap_sent()
106 memset(&l2cap_ctx->tx, 0, sizeof(l2cap_ctx->tx)); in l2cap_sent()
110 if (l2cap_ctx->tx_done) { in l2cap_sent()
111 l2cap_ctx->tx_done(l2cap_ctx, chan->conn); in l2cap_sent()
118 struct bt_gatt_ots_l2cap *l2cap_ctx; in l2cap_recv() local
122 l2cap_ctx = CONTAINER_OF(l2chan, struct bt_gatt_ots_l2cap, ot_chan); in l2cap_recv()
124 if (!l2cap_ctx->rx_done) { in l2cap_recv()
128 return l2cap_ctx->rx_done(l2cap_ctx, chan->conn, buf); in l2cap_recv()
144 struct bt_gatt_ots_l2cap *l2cap_ctx; in l2cap_disconnected() local
148 l2cap_ctx = CONTAINER_OF(l2chan, struct bt_gatt_ots_l2cap, ot_chan); in l2cap_disconnected()
150 if (l2cap_ctx->closed) { in l2cap_disconnected()
151 l2cap_ctx->closed(l2cap_ctx, chan->conn); in l2cap_disconnected()
176 struct bt_gatt_ots_l2cap *l2cap_ctx; in find_free_l2cap_ctx() local
178 SYS_SLIST_FOR_EACH_CONTAINER(&channels, l2cap_ctx, node) { in find_free_l2cap_ctx()
179 if (l2cap_ctx->ot_chan.chan.conn) { in find_free_l2cap_ctx()
183 return l2cap_ctx; in find_free_l2cap_ctx()
192 struct bt_gatt_ots_l2cap *l2cap_ctx; in l2cap_accept() local
196 l2cap_ctx = find_free_l2cap_ctx(); in l2cap_accept()
197 if (l2cap_ctx) { in l2cap_accept()
198 l2cap_chan_init(&l2cap_ctx->ot_chan); in l2cap_accept()
199 memset(&l2cap_ctx->tx, 0, sizeof(l2cap_ctx->tx)); in l2cap_accept()
201 *chan = &l2cap_ctx->ot_chan.chan; in l2cap_accept()
231 bool bt_gatt_ots_l2cap_is_open(struct bt_gatt_ots_l2cap *l2cap_ctx, in bt_gatt_ots_l2cap_is_open() argument
234 return (l2cap_ctx->ot_chan.chan.conn == conn); in bt_gatt_ots_l2cap_is_open()
237 int bt_gatt_ots_l2cap_send(struct bt_gatt_ots_l2cap *l2cap_ctx, in bt_gatt_ots_l2cap_send() argument
242 if (l2cap_ctx->tx.len != 0) { in bt_gatt_ots_l2cap_send()
248 l2cap_ctx->tx.data = data; in bt_gatt_ots_l2cap_send()
249 l2cap_ctx->tx.len = len; in bt_gatt_ots_l2cap_send()
253 err = ots_l2cap_send(l2cap_ctx); in bt_gatt_ots_l2cap_send()
263 int bt_gatt_ots_l2cap_register(struct bt_gatt_ots_l2cap *l2cap_ctx) in bt_gatt_ots_l2cap_register() argument
265 sys_slist_append(&channels, &l2cap_ctx->node); in bt_gatt_ots_l2cap_register()
270 int bt_gatt_ots_l2cap_unregister(struct bt_gatt_ots_l2cap *l2cap_ctx) in bt_gatt_ots_l2cap_unregister() argument
272 sys_slist_find_and_remove(&channels, &l2cap_ctx->node); in bt_gatt_ots_l2cap_unregister()
279 struct bt_gatt_ots_l2cap **l2cap_ctx) in bt_gatt_ots_l2cap_connect() argument
289 if (!l2cap_ctx) { in bt_gatt_ots_l2cap_connect()
294 *l2cap_ctx = NULL; in bt_gatt_ots_l2cap_connect()
310 *l2cap_ctx = ctx; in bt_gatt_ots_l2cap_connect()
316 int bt_gatt_ots_l2cap_disconnect(struct bt_gatt_ots_l2cap *l2cap_ctx) in bt_gatt_ots_l2cap_disconnect() argument
318 return bt_l2cap_chan_disconnect(&l2cap_ctx->ot_chan.chan); in bt_gatt_ots_l2cap_disconnect()