bnep.c (e501bae08349e058caa4648e0af3dd01cbd89d20) bnep.c (fb3896319c8d6fd0c347f732c9f703ed52c090cc)
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

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

82 uint8_t event[3 + sizeof(bd_addr_t) + 4 * sizeof(uint16_t)];
83 event[0] = BNEP_EVENT_CHANNEL_OPENED;
84 event[1] = sizeof(event) - 2;
85 event[2] = status;
86 little_endian_store_16(event, 3, channel->l2cap_cid);
87 little_endian_store_16(event, 5, channel->uuid_source);
88 little_endian_store_16(event, 7, channel->uuid_dest);
89 little_endian_store_16(event, 9, channel->max_frame_size);
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

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

82 uint8_t event[3 + sizeof(bd_addr_t) + 4 * sizeof(uint16_t)];
83 event[0] = BNEP_EVENT_CHANNEL_OPENED;
84 event[1] = sizeof(event) - 2;
85 event[2] = status;
86 little_endian_store_16(event, 3, channel->l2cap_cid);
87 little_endian_store_16(event, 5, channel->uuid_source);
88 little_endian_store_16(event, 7, channel->uuid_dest);
89 little_endian_store_16(event, 9, channel->max_frame_size);
90 bd_addr_copy(&event[11], channel->remote_addr);
90 reverse_bd_addr(channel->remote_addr, &event[11]);
91 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
92 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
93}
94
95static void bnep_emit_channel_timeout(bnep_channel_t *channel)
96{
97 log_info("BNEP_EVENT_CHANNEL_TIMEOUT bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
98 if (!channel->packet_handler) return;
99
100 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t) + sizeof(uint8_t)];
101 event[0] = BNEP_EVENT_CHANNEL_TIMEOUT;
102 event[1] = sizeof(event) - 2;
103 little_endian_store_16(event, 2, channel->l2cap_cid);
104 little_endian_store_16(event, 4, channel->uuid_source);
105 little_endian_store_16(event, 6, channel->uuid_dest);
91 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
92 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
93}
94
95static void bnep_emit_channel_timeout(bnep_channel_t *channel)
96{
97 log_info("BNEP_EVENT_CHANNEL_TIMEOUT bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
98 if (!channel->packet_handler) return;
99
100 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t) + sizeof(uint8_t)];
101 event[0] = BNEP_EVENT_CHANNEL_TIMEOUT;
102 event[1] = sizeof(event) - 2;
103 little_endian_store_16(event, 2, channel->l2cap_cid);
104 little_endian_store_16(event, 4, channel->uuid_source);
105 little_endian_store_16(event, 6, channel->uuid_dest);
106 bd_addr_copy(&event[8], channel->remote_addr);
106 reverse_bd_addr(channel->remote_addr, &event[8]);
107 event[14] = channel->state;
108 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
109 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
110}
111
112static void bnep_emit_channel_closed(bnep_channel_t *channel)
113{
114 log_info("BNEP_EVENT_CHANNEL_CLOSED bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
115 if (!channel->packet_handler) return;
116
117 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t)];
118 event[0] = BNEP_EVENT_CHANNEL_CLOSED;
119 event[1] = sizeof(event) - 2;
120 little_endian_store_16(event, 2, channel->l2cap_cid);
121 little_endian_store_16(event, 4, channel->uuid_source);
122 little_endian_store_16(event, 6, channel->uuid_dest);
107 event[14] = channel->state;
108 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
109 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
110}
111
112static void bnep_emit_channel_closed(bnep_channel_t *channel)
113{
114 log_info("BNEP_EVENT_CHANNEL_CLOSED bd_addr: %s, handler %p", bd_addr_to_str(channel->remote_addr), channel->packet_handler);
115 if (!channel->packet_handler) return;
116
117 uint8_t event[2 + sizeof(bd_addr_t) + 3 * sizeof(uint16_t)];
118 event[0] = BNEP_EVENT_CHANNEL_CLOSED;
119 event[1] = sizeof(event) - 2;
120 little_endian_store_16(event, 2, channel->l2cap_cid);
121 little_endian_store_16(event, 4, channel->uuid_source);
122 little_endian_store_16(event, 6, channel->uuid_dest);
123 bd_addr_copy(&event[8], channel->remote_addr);
123 reverse_bd_addr(channel->remote_addr, &event[8]);
124 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
125 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
126}
127
128static void bnep_emit_ready_to_send(bnep_channel_t *channel)
129{
130 if (!channel->packet_handler) return;
131

--- 1500 unchanged lines hidden ---
124 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
125 (*channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
126}
127
128static void bnep_emit_ready_to_send(bnep_channel_t *channel)
129{
130 if (!channel->packet_handler) return;
131

--- 1500 unchanged lines hidden ---