hci.c (667ba9d111a73f2dda1d6c3797991c1384f3c2c5) hci.c (99b14827c034a4c93f6cad52a608a9c9f2f9fade)
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

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

2089 manufacturer = BLUETOOTH_COMPANY_ID_BROADCOM_CORPORATION;
2090 little_endian_store_16(packet, 10, manufacturer);
2091 }
2092 hci_stack->manufacturer = manufacturer;
2093 log_info("Manufacturer: 0x%04x", hci_stack->manufacturer);
2094 break;
2095 case HCI_OPCODE_HCI_READ_LOCAL_SUPPORTED_COMMANDS:
2096 hci_stack->local_supported_commands[0] =
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

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

2089 manufacturer = BLUETOOTH_COMPANY_ID_BROADCOM_CORPORATION;
2090 little_endian_store_16(packet, 10, manufacturer);
2091 }
2092 hci_stack->manufacturer = manufacturer;
2093 log_info("Manufacturer: 0x%04x", hci_stack->manufacturer);
2094 break;
2095 case HCI_OPCODE_HCI_READ_LOCAL_SUPPORTED_COMMANDS:
2096 hci_stack->local_supported_commands[0] =
2097 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+14u] & 0x80u) >> 7u) | // bit 0 = Octet 14, bit 7 / Read Buffer Size
2098 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+24u] & 0x40u) >> 5u) | // bit 1 = Octet 24, bit 6 / Write Le Host Supported
2099 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+10u] & 0x10u) >> 2u) | // bit 2 = Octet 10, bit 4 / Write Synchronous Flow Control Enable
2100 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+18u] & 0x08u) ) | // bit 3 = Octet 18, bit 3 / Write Default Erroneous Data Reporting
2101 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+34u] & 0x01u) << 4u) | // bit 4 = Octet 34, bit 0 / LE Write Suggested Default Data Length
2102 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+35u] & 0x08u) << 2u) | // bit 5 = Octet 35, bit 3 / LE Read Maximum Data Length
2103 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+35u] & 0x20u) << 1u) | // bit 6 = Octet 35, bit 5 / LE Set Default PHY
2104 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+20u] & 0x10u) << 3u); // bit 7 = Octet 20, bit 4 / Read Encryption Key Size
2097 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+14u] & 0x80u) >> 7u) | // bit 0 = Octet 14, bit 7 / Read Buffer Size
2098 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+24u] & 0x40u) >> 5u) | // bit 1 = Octet 24, bit 6 / Write Le Host Supported
2099 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+10u] & 0x10u) >> 2u) | // bit 2 = Octet 10, bit 4 / Write Synchronous Flow Control Enable
2100 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+18u] & 0x08u) ) | // bit 3 = Octet 18, bit 3 / Write Default Erroneous Data Reporting
2101 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+34u] & 0x01u) << 4u) | // bit 4 = Octet 34, bit 0 / LE Write Suggested Default Data Length
2102 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+35u] & 0x08u) << 2u) | // bit 5 = Octet 35, bit 3 / LE Read Maximum Data Length
2103 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+35u] & 0x20u) << 1u) | // bit 6 = Octet 35, bit 5 / LE Set Default PHY
2104 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+20u] & 0x10u) << 3u); // bit 7 = Octet 20, bit 4 / Read Encryption Key Size
2105 hci_stack->local_supported_commands[1] =
2105 hci_stack->local_supported_commands[1] =
2106 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+ 2u] & 0x40u) >> 6u) | // bit 8 = Octet 2, bit 6 / Read Remote Extended Features
2107 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+32u] & 0x08u) >> 2u); // bit 9 = Octet 32, bit 3 / Write Secure Connections Host
2106 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+ 2u] & 0x40u) >> 6u) | // bit 8 = Octet 2, bit 6 / Read Remote Extended Features
2107 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+32u] & 0x08u) >> 2u) | // bit 9 = Octet 32, bit 3 / Write Secure Connections Host
2108 ((packet[OFFSET_OF_DATA_IN_COMMAND_COMPLETE+1u+35u] & 0x02u) << 1u); // bit 10 = Octet 35, bit 1 / LE Set Address Resolution Enable
2108 log_info("Local supported commands summary %02x - %02x", hci_stack->local_supported_commands[0], hci_stack->local_supported_commands[1]);
2109 break;
2110#ifdef ENABLE_CLASSIC
2111 case HCI_OPCODE_HCI_WRITE_SYNCHRONOUS_FLOW_CONTROL_ENABLE:
2112 if (packet[5]) return;
2113 hci_stack->synchronous_flow_control_enabled = 1;
2114 break;
2115 case HCI_OPCODE_HCI_READ_ENCRYPTION_KEY_SIZE:

--- 3791 unchanged lines hidden ---
2109 log_info("Local supported commands summary %02x - %02x", hci_stack->local_supported_commands[0], hci_stack->local_supported_commands[1]);
2110 break;
2111#ifdef ENABLE_CLASSIC
2112 case HCI_OPCODE_HCI_WRITE_SYNCHRONOUS_FLOW_CONTROL_ENABLE:
2113 if (packet[5]) return;
2114 hci_stack->synchronous_flow_control_enabled = 1;
2115 break;
2116 case HCI_OPCODE_HCI_READ_ENCRYPTION_KEY_SIZE:

--- 3791 unchanged lines hidden ---