bnep.c (d4d9523ffb96ab82dbbc671e072dba0b7c1b3212) bnep.c (9da9850b83fde69f1dc00ad3fb029803b8844b54)
1/*
2 * Copyright (C) 2014 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 112 unchanged lines hidden (view full) ---

121 event[1] = sizeof(event) - 2;
122 event[2] = status;
123 little_endian_store_16(event, 3, channel->l2cap_cid);
124 little_endian_store_16(event, 5, channel->uuid_source);
125 little_endian_store_16(event, 7, channel->uuid_dest);
126 little_endian_store_16(event, 9, channel->max_frame_size);
127 reverse_bd_addr(channel->remote_addr, &event[11]);
128 little_endian_store_16(event, 17, channel->con_handle);
1/*
2 * Copyright (C) 2014 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 112 unchanged lines hidden (view full) ---

121 event[1] = sizeof(event) - 2;
122 event[2] = status;
123 little_endian_store_16(event, 3, channel->l2cap_cid);
124 little_endian_store_16(event, 5, channel->uuid_source);
125 little_endian_store_16(event, 7, channel->uuid_dest);
126 little_endian_store_16(event, 9, channel->max_frame_size);
127 reverse_bd_addr(channel->remote_addr, &event[11]);
128 little_endian_store_16(event, 17, channel->con_handle);
129 hci_dump_packet( HCI_EVENT_PACKET, 1, event, sizeof(event));
129 hci_dump_btstack_event( event, sizeof(event));
130 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
131}
132
133static void bnep_emit_channel_timeout(bnep_channel_t *channel)
134{
135 log_info("BNEP_EVENT_CHANNEL_TIMEOUT bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
136 if (!channel->packet_handler) return;
137
138 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t) + sizeof(uint8_t)];
139 event[0] = BNEP_EVENT_CHANNEL_TIMEOUT;
140 event[1] = sizeof(event) - 2;
141 little_endian_store_16(event, 2, channel->l2cap_cid);
142 little_endian_store_16(event, 4, channel->uuid_source);
143 little_endian_store_16(event, 6, channel->uuid_dest);
144 reverse_bd_addr(channel->remote_addr, &event[8]);
145 event[14] = channel->state;
130 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
131}
132
133static void bnep_emit_channel_timeout(bnep_channel_t *channel)
134{
135 log_info("BNEP_EVENT_CHANNEL_TIMEOUT bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
136 if (!channel->packet_handler) return;
137
138 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t) + sizeof(uint8_t)];
139 event[0] = BNEP_EVENT_CHANNEL_TIMEOUT;
140 event[1] = sizeof(event) - 2;
141 little_endian_store_16(event, 2, channel->l2cap_cid);
142 little_endian_store_16(event, 4, channel->uuid_source);
143 little_endian_store_16(event, 6, channel->uuid_dest);
144 reverse_bd_addr(channel->remote_addr, &event[8]);
145 event[14] = channel->state;
146 hci_dump_packet( HCI_EVENT_PACKET, 1, event, sizeof(event));
146 hci_dump_btstack_event( event, sizeof(event));
147 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
148}
149
150static void bnep_emit_channel_closed(bnep_channel_t *channel)
151{
152 log_info("BNEP_EVENT_CHANNEL_CLOSED bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
153 if (!channel->packet_handler) return;
154
155 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t)];
156 event[0] = BNEP_EVENT_CHANNEL_CLOSED;
157 event[1] = sizeof(event) - 2;
158 little_endian_store_16(event, 2, channel->l2cap_cid);
159 little_endian_store_16(event, 4, channel->uuid_source);
160 little_endian_store_16(event, 6, channel->uuid_dest);
161 reverse_bd_addr(channel->remote_addr, &event[8]);
147 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
148}
149
150static void bnep_emit_channel_closed(bnep_channel_t *channel)
151{
152 log_info("BNEP_EVENT_CHANNEL_CLOSED bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
153 if (!channel->packet_handler) return;
154
155 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t)];
156 event[0] = BNEP_EVENT_CHANNEL_CLOSED;
157 event[1] = sizeof(event) - 2;
158 little_endian_store_16(event, 2, channel->l2cap_cid);
159 little_endian_store_16(event, 4, channel->uuid_source);
160 little_endian_store_16(event, 6, channel->uuid_dest);
161 reverse_bd_addr(channel->remote_addr, &event[8]);
162 hci_dump_packet( HCI_EVENT_PACKET, 1, event, sizeof(event));
162 hci_dump_btstack_event( event, sizeof(event));
163 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
164}
165
166static void bnep_emit_ready_to_send(bnep_channel_t *channel)
167{
168 if (!channel->packet_handler) return;
169
170 uint8_t event[4];
171 event[0] = BNEP_EVENT_CAN_SEND_NOW;
172 event[1] = sizeof(event) - 2;
173 little_endian_store_16(event, 2, channel->l2cap_cid);
163 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
164}
165
166static void bnep_emit_ready_to_send(bnep_channel_t *channel)
167{
168 if (!channel->packet_handler) return;
169
170 uint8_t event[4];
171 event[0] = BNEP_EVENT_CAN_SEND_NOW;
172 event[1] = sizeof(event) - 2;
173 little_endian_store_16(event, 2, channel->l2cap_cid);
174 hci_dump_packet( HCI_EVENT_PACKET, 1, event, sizeof(event));
174 hci_dump_btstack_event( event, sizeof(event));
175 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
176}
177
178/* Send BNEP connection request */
179static int bnep_send_command_not_understood(bnep_channel_t *channel, uint8_t control_type)
180{
181 uint8_t *bnep_out_buffer = NULL;
182 uint16_t pos = 0;

--- 1534 unchanged lines hidden ---
175 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
176}
177
178/* Send BNEP connection request */
179static int bnep_send_command_not_understood(bnep_channel_t *channel, uint8_t control_type)
180{
181 uint8_t *bnep_out_buffer = NULL;
182 uint16_t pos = 0;

--- 1534 unchanged lines hidden ---