Loading system/gd/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -718,6 +718,7 @@ genrule { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "shim/dumpsys.fbs", "os/wakelock_manager.fbs", Loading @@ -728,6 +729,7 @@ genrule { "dumpsys.bfbs", "dumpsys_data.bfbs", "hci_acl_manager.bfbs", "hci_controller.bfbs", "l2cap_classic_module.bfbs", "wakelock_manager.bfbs", ], Loading @@ -744,6 +746,7 @@ genrule { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "shim/dumpsys.fbs", "os/wakelock_manager.fbs", Loading @@ -753,6 +756,7 @@ genrule { "dumpsys_data_generated.h", "dumpsys_generated.h", "hci_acl_manager_generated.h", "hci_controller_generated.h", "init_flags_generated.h", "l2cap_classic_module_generated.h", "wakelock_manager_generated.h", Loading system/gd/BUILD.gn +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,7 @@ flatbuffer("BluetoothGeneratedDumpsysDataSchema_h") { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "os/wakelock_manager.fbs", "shim/dumpsys.fbs", Loading @@ -100,6 +101,7 @@ bt_flatc_binary_schema("BluetoothGeneratedDumpsysBinarySchema_bfbs") { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "os/wakelock_manager.fbs", "shim/dumpsys.fbs", Loading system/gd/dumpsys_data.fbs +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ include "btaa/activity_attribution.fbs"; include "common/init_flags.fbs"; include "hci/hci_acl_manager.fbs"; include "hci/hci_controller.fbs"; include "l2cap/classic/l2cap_classic_module.fbs"; include "module_unittest.fbs"; include "os/wakelock_manager.fbs"; Loading @@ -28,6 +29,7 @@ table DumpsysData { shim_dumpsys_data:bluetooth.shim.DumpsysModuleData (privacy:"Any"); l2cap_classic_dumpsys_data:bluetooth.l2cap.classic.L2capClassicModuleData (privacy:"Any"); hci_acl_manager_dumpsys_data:bluetooth.hci.AclManagerData (privacy:"Any"); hci_controller_dumpsys_data:bluetooth.hci.ControllerData (privacy:"Any"); module_unittest_data:bluetooth.ModuleUnitTestData; // private activity_attribution_dumpsys_data:bluetooth.activity_attribution.ActivityAttributionData (privacy:"Any"); } Loading system/gd/hci/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ filegroup { "address_unittest.cc", "address_with_type_test.cc", "class_of_device_unittest.cc", "controller_test.cc", "hci_layer_unittest.cc", "hci_packets_test.cc", "uuid_unittest.cc", Loading @@ -53,7 +54,6 @@ filegroup { srcs: [ "acl_manager/round_robin_scheduler_test.cc", "acl_manager_test.cc", "controller_test.cc", "hci_layer_test.cc", "le_address_manager_test.cc", "le_advertising_manager_test.cc", Loading system/gd/hci/controller.cc +103 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include "common/init_flags.h" #include "hci/hci_layer.h" #include "hci_controller_generated.h" #include "os/metrics.h" namespace bluetooth { Loading Loading @@ -570,6 +571,9 @@ struct Controller::impl { return supported; \ } void Dump( std::promise<flatbuffers::Offset<ControllerData>> promise, flatbuffers::FlatBufferBuilder* fb_builder) const; bool is_supported(OpCode op_code) { switch (op_code) { OP_CODE_MAPPING(INQUIRY) Loading Loading @@ -1170,5 +1174,104 @@ void Controller::Stop() { std::string Controller::ToString() const { return "Controller"; } void Controller::impl::Dump( std::promise<flatbuffers::Offset<ControllerData>> promise, flatbuffers::FlatBufferBuilder* fb_builder) const { ASSERT(fb_builder != nullptr); auto title = fb_builder->CreateString("----- Hci Controller Dumpsys -----"); auto local_version_information_data = CreateLocalVersionInformationData( *fb_builder, fb_builder->CreateString(HciVersionText(local_version_information_.hci_version_)), local_version_information_.hci_revision_, fb_builder->CreateString(LmpVersionText(local_version_information_.lmp_version_)), local_version_information_.manufacturer_name_, local_version_information_.lmp_subversion_); auto acl_buffer_size_data = BufferSizeData(acl_buffer_length_, acl_buffers_); auto sco_buffer_size_data = BufferSizeData(sco_buffer_length_, sco_buffers_); auto le_buffer_size_data = BufferSizeData(le_buffer_size_.le_data_packet_length_, le_buffer_size_.total_num_le_packets_); auto iso_buffer_size_data = BufferSizeData(iso_buffer_size_.le_data_packet_length_, iso_buffer_size_.total_num_le_packets_); auto le_maximum_data_length_data = LeMaximumDataLengthData( le_maximum_data_length_.supported_max_tx_octets_, le_maximum_data_length_.supported_max_tx_time_, le_maximum_data_length_.supported_max_rx_octets_, le_maximum_data_length_.supported_max_rx_time_); std::vector<LocalSupportedCommandsData> local_supported_commands_vector; for (uint8_t index = 0; index < local_supported_commands_.size(); index++) { local_supported_commands_vector.push_back(LocalSupportedCommandsData(index, local_supported_commands_[index])); } auto local_supported_commands_data = fb_builder->CreateVectorOfStructs(local_supported_commands_vector); auto vendor_capabilities_data = VendorCapabilitiesData( vendor_capabilities_.is_supported_, vendor_capabilities_.max_advt_instances_, vendor_capabilities_.offloaded_resolution_of_private_address_, vendor_capabilities_.total_scan_results_storage_, vendor_capabilities_.max_irk_list_sz_, vendor_capabilities_.filtering_support_, vendor_capabilities_.max_filter_, vendor_capabilities_.activity_energy_info_support_, vendor_capabilities_.version_supported_, vendor_capabilities_.total_num_of_advt_tracked_, vendor_capabilities_.extended_scan_support_, vendor_capabilities_.debug_logging_supported_, vendor_capabilities_.le_address_generation_offloading_support_, vendor_capabilities_.a2dp_source_offload_capability_mask_, vendor_capabilities_.bluetooth_quality_report_support_); auto extended_lmp_features_vector = fb_builder->CreateVector(extended_lmp_features_array_); // Create the root table ControllerDataBuilder builder(*fb_builder); builder.add_title(title); builder.add_local_version_information(local_version_information_data); builder.add_acl_buffer_size(&acl_buffer_size_data); builder.add_sco_buffer_size(&sco_buffer_size_data); builder.add_iso_buffer_size(&iso_buffer_size_data); builder.add_le_buffer_size(&le_buffer_size_data); builder.add_le_connect_list_size(le_connect_list_size_); builder.add_le_resolving_list_size(le_resolving_list_size_); builder.add_le_maximum_data_length(&le_maximum_data_length_data); builder.add_le_maximum_advertising_data_length(le_maximum_advertising_data_length_); builder.add_le_suggested_default_data_length(le_suggested_default_data_length_); builder.add_le_number_supported_advertising_sets(le_number_supported_advertising_sets_); builder.add_le_periodic_advertiser_list_size(le_periodic_advertiser_list_size_); builder.add_local_supported_commands(local_supported_commands_data); builder.add_extended_lmp_features_array(extended_lmp_features_vector); builder.add_le_local_supported_features(le_local_supported_features_); builder.add_le_supported_states(le_supported_states_); builder.add_vendor_capabilities(&vendor_capabilities_data); flatbuffers::Offset<ControllerData> dumpsys_data = builder.Finish(); promise.set_value(dumpsys_data); } DumpsysDataFinisher Controller::GetDumpsysData(flatbuffers::FlatBufferBuilder* fb_builder) const { ASSERT(fb_builder != nullptr); std::promise<flatbuffers::Offset<ControllerData>> promise; auto future = promise.get_future(); impl_->Dump(std::move(promise), fb_builder); auto dumpsys_data = future.get(); return [dumpsys_data](DumpsysDataBuilder* dumpsys_builder) { dumpsys_builder->add_hci_controller_dumpsys_data(dumpsys_data); }; } } // namespace hci } // namespace bluetooth Loading
system/gd/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -718,6 +718,7 @@ genrule { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "shim/dumpsys.fbs", "os/wakelock_manager.fbs", Loading @@ -728,6 +729,7 @@ genrule { "dumpsys.bfbs", "dumpsys_data.bfbs", "hci_acl_manager.bfbs", "hci_controller.bfbs", "l2cap_classic_module.bfbs", "wakelock_manager.bfbs", ], Loading @@ -744,6 +746,7 @@ genrule { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "shim/dumpsys.fbs", "os/wakelock_manager.fbs", Loading @@ -753,6 +756,7 @@ genrule { "dumpsys_data_generated.h", "dumpsys_generated.h", "hci_acl_manager_generated.h", "hci_controller_generated.h", "init_flags_generated.h", "l2cap_classic_module_generated.h", "wakelock_manager_generated.h", Loading
system/gd/BUILD.gn +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,7 @@ flatbuffer("BluetoothGeneratedDumpsysDataSchema_h") { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "os/wakelock_manager.fbs", "shim/dumpsys.fbs", Loading @@ -100,6 +101,7 @@ bt_flatc_binary_schema("BluetoothGeneratedDumpsysBinarySchema_bfbs") { "common/init_flags.fbs", "dumpsys_data.fbs", "hci/hci_acl_manager.fbs", "hci/hci_controller.fbs", "l2cap/classic/l2cap_classic_module.fbs", "os/wakelock_manager.fbs", "shim/dumpsys.fbs", Loading
system/gd/dumpsys_data.fbs +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ include "btaa/activity_attribution.fbs"; include "common/init_flags.fbs"; include "hci/hci_acl_manager.fbs"; include "hci/hci_controller.fbs"; include "l2cap/classic/l2cap_classic_module.fbs"; include "module_unittest.fbs"; include "os/wakelock_manager.fbs"; Loading @@ -28,6 +29,7 @@ table DumpsysData { shim_dumpsys_data:bluetooth.shim.DumpsysModuleData (privacy:"Any"); l2cap_classic_dumpsys_data:bluetooth.l2cap.classic.L2capClassicModuleData (privacy:"Any"); hci_acl_manager_dumpsys_data:bluetooth.hci.AclManagerData (privacy:"Any"); hci_controller_dumpsys_data:bluetooth.hci.ControllerData (privacy:"Any"); module_unittest_data:bluetooth.ModuleUnitTestData; // private activity_attribution_dumpsys_data:bluetooth.activity_attribution.ActivityAttributionData (privacy:"Any"); } Loading
system/gd/hci/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ filegroup { "address_unittest.cc", "address_with_type_test.cc", "class_of_device_unittest.cc", "controller_test.cc", "hci_layer_unittest.cc", "hci_packets_test.cc", "uuid_unittest.cc", Loading @@ -53,7 +54,6 @@ filegroup { srcs: [ "acl_manager/round_robin_scheduler_test.cc", "acl_manager_test.cc", "controller_test.cc", "hci_layer_test.cc", "le_address_manager_test.cc", "le_advertising_manager_test.cc", Loading
system/gd/hci/controller.cc +103 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include "common/init_flags.h" #include "hci/hci_layer.h" #include "hci_controller_generated.h" #include "os/metrics.h" namespace bluetooth { Loading Loading @@ -570,6 +571,9 @@ struct Controller::impl { return supported; \ } void Dump( std::promise<flatbuffers::Offset<ControllerData>> promise, flatbuffers::FlatBufferBuilder* fb_builder) const; bool is_supported(OpCode op_code) { switch (op_code) { OP_CODE_MAPPING(INQUIRY) Loading Loading @@ -1170,5 +1174,104 @@ void Controller::Stop() { std::string Controller::ToString() const { return "Controller"; } void Controller::impl::Dump( std::promise<flatbuffers::Offset<ControllerData>> promise, flatbuffers::FlatBufferBuilder* fb_builder) const { ASSERT(fb_builder != nullptr); auto title = fb_builder->CreateString("----- Hci Controller Dumpsys -----"); auto local_version_information_data = CreateLocalVersionInformationData( *fb_builder, fb_builder->CreateString(HciVersionText(local_version_information_.hci_version_)), local_version_information_.hci_revision_, fb_builder->CreateString(LmpVersionText(local_version_information_.lmp_version_)), local_version_information_.manufacturer_name_, local_version_information_.lmp_subversion_); auto acl_buffer_size_data = BufferSizeData(acl_buffer_length_, acl_buffers_); auto sco_buffer_size_data = BufferSizeData(sco_buffer_length_, sco_buffers_); auto le_buffer_size_data = BufferSizeData(le_buffer_size_.le_data_packet_length_, le_buffer_size_.total_num_le_packets_); auto iso_buffer_size_data = BufferSizeData(iso_buffer_size_.le_data_packet_length_, iso_buffer_size_.total_num_le_packets_); auto le_maximum_data_length_data = LeMaximumDataLengthData( le_maximum_data_length_.supported_max_tx_octets_, le_maximum_data_length_.supported_max_tx_time_, le_maximum_data_length_.supported_max_rx_octets_, le_maximum_data_length_.supported_max_rx_time_); std::vector<LocalSupportedCommandsData> local_supported_commands_vector; for (uint8_t index = 0; index < local_supported_commands_.size(); index++) { local_supported_commands_vector.push_back(LocalSupportedCommandsData(index, local_supported_commands_[index])); } auto local_supported_commands_data = fb_builder->CreateVectorOfStructs(local_supported_commands_vector); auto vendor_capabilities_data = VendorCapabilitiesData( vendor_capabilities_.is_supported_, vendor_capabilities_.max_advt_instances_, vendor_capabilities_.offloaded_resolution_of_private_address_, vendor_capabilities_.total_scan_results_storage_, vendor_capabilities_.max_irk_list_sz_, vendor_capabilities_.filtering_support_, vendor_capabilities_.max_filter_, vendor_capabilities_.activity_energy_info_support_, vendor_capabilities_.version_supported_, vendor_capabilities_.total_num_of_advt_tracked_, vendor_capabilities_.extended_scan_support_, vendor_capabilities_.debug_logging_supported_, vendor_capabilities_.le_address_generation_offloading_support_, vendor_capabilities_.a2dp_source_offload_capability_mask_, vendor_capabilities_.bluetooth_quality_report_support_); auto extended_lmp_features_vector = fb_builder->CreateVector(extended_lmp_features_array_); // Create the root table ControllerDataBuilder builder(*fb_builder); builder.add_title(title); builder.add_local_version_information(local_version_information_data); builder.add_acl_buffer_size(&acl_buffer_size_data); builder.add_sco_buffer_size(&sco_buffer_size_data); builder.add_iso_buffer_size(&iso_buffer_size_data); builder.add_le_buffer_size(&le_buffer_size_data); builder.add_le_connect_list_size(le_connect_list_size_); builder.add_le_resolving_list_size(le_resolving_list_size_); builder.add_le_maximum_data_length(&le_maximum_data_length_data); builder.add_le_maximum_advertising_data_length(le_maximum_advertising_data_length_); builder.add_le_suggested_default_data_length(le_suggested_default_data_length_); builder.add_le_number_supported_advertising_sets(le_number_supported_advertising_sets_); builder.add_le_periodic_advertiser_list_size(le_periodic_advertiser_list_size_); builder.add_local_supported_commands(local_supported_commands_data); builder.add_extended_lmp_features_array(extended_lmp_features_vector); builder.add_le_local_supported_features(le_local_supported_features_); builder.add_le_supported_states(le_supported_states_); builder.add_vendor_capabilities(&vendor_capabilities_data); flatbuffers::Offset<ControllerData> dumpsys_data = builder.Finish(); promise.set_value(dumpsys_data); } DumpsysDataFinisher Controller::GetDumpsysData(flatbuffers::FlatBufferBuilder* fb_builder) const { ASSERT(fb_builder != nullptr); std::promise<flatbuffers::Offset<ControllerData>> promise; auto future = promise.get_future(); impl_->Dump(std::move(promise), fb_builder); auto dumpsys_data = future.get(); return [dumpsys_data](DumpsysDataBuilder* dumpsys_builder) { dumpsys_builder->add_hci_controller_dumpsys_data(dumpsys_data); }; } } // namespace hci } // namespace bluetooth