1 #[cxx::bridge(namespace = bluetooth::common::init_flags)] 2 mod ffi { 3 struct InitFlagWithValue { 4 flag: &'static str, 5 value: String, 6 } 7 8 extern "Rust" { load(flags: Vec<String>)9 fn load(flags: Vec<String>); set_all_for_testing()10 fn set_all_for_testing(); 11 dump() -> Vec<InitFlagWithValue>12 fn dump() -> Vec<InitFlagWithValue>; 13 always_send_services_if_gatt_disc_done_is_enabled() -> bool14 fn always_send_services_if_gatt_disc_done_is_enabled() -> bool; always_use_private_gatt_for_debugging_is_enabled() -> bool15 fn always_use_private_gatt_for_debugging_is_enabled() -> bool; asynchronously_start_l2cap_coc_is_enabled() -> bool16 fn asynchronously_start_l2cap_coc_is_enabled() -> bool; btaa_hci_is_enabled() -> bool17 fn btaa_hci_is_enabled() -> bool; bta_dm_clear_conn_id_on_client_close_is_enabled() -> bool18 fn bta_dm_clear_conn_id_on_client_close_is_enabled() -> bool; delay_hidh_cleanup_until_hidh_ready_start_is_enabled() -> bool19 fn delay_hidh_cleanup_until_hidh_ready_start_is_enabled() -> bool; gd_hal_snoop_logger_filtering_is_enabled() -> bool20 fn gd_hal_snoop_logger_filtering_is_enabled() -> bool; btm_dm_flush_discovery_queue_on_search_cancel_is_enabled() -> bool21 fn btm_dm_flush_discovery_queue_on_search_cancel_is_enabled() -> bool; classic_discovery_only_is_enabled() -> bool22 fn classic_discovery_only_is_enabled() -> bool; clear_hidd_interrupt_cid_on_disconnect_is_enabled() -> bool23 fn clear_hidd_interrupt_cid_on_disconnect_is_enabled() -> bool; device_iot_config_logging_is_enabled() -> bool24 fn device_iot_config_logging_is_enabled() -> bool; dynamic_avrcp_version_enhancement_is_enabled() -> bool25 fn dynamic_avrcp_version_enhancement_is_enabled() -> bool; finite_att_timeout_is_enabled() -> bool26 fn finite_att_timeout_is_enabled() -> bool; gatt_robust_caching_client_is_enabled() -> bool27 fn gatt_robust_caching_client_is_enabled() -> bool; gatt_robust_caching_server_is_enabled() -> bool28 fn gatt_robust_caching_server_is_enabled() -> bool; gd_core_is_enabled() -> bool29 fn gd_core_is_enabled() -> bool; gd_hal_snoop_logger_socket_is_enabled() -> bool30 fn gd_hal_snoop_logger_socket_is_enabled() -> bool; gd_l2cap_is_enabled() -> bool31 fn gd_l2cap_is_enabled() -> bool; gd_link_policy_is_enabled() -> bool32 fn gd_link_policy_is_enabled() -> bool; gd_remote_name_request_is_enabled() -> bool33 fn gd_remote_name_request_is_enabled() -> bool; get_default_log_level() -> i3234 fn get_default_log_level() -> i32; get_hci_adapter() -> i3235 fn get_hci_adapter() -> i32; get_log_level_for_tag(tag: &str) -> i3236 fn get_log_level_for_tag(tag: &str) -> i32; get_asha_packet_drop_frequency_threshold() -> i3237 fn get_asha_packet_drop_frequency_threshold() -> i32; get_asha_phy_update_retry_limit() -> i3238 fn get_asha_phy_update_retry_limit() -> i32; hfp_dynamic_version_is_enabled() -> bool39 fn hfp_dynamic_version_is_enabled() -> bool; irk_rotation_is_enabled() -> bool40 fn irk_rotation_is_enabled() -> bool; leaudio_targeted_announcement_reconnection_mode_is_enabled() -> bool41 fn leaudio_targeted_announcement_reconnection_mode_is_enabled() -> bool; pass_phy_update_callback_is_enabled() -> bool42 fn pass_phy_update_callback_is_enabled() -> bool; pbap_pse_dynamic_version_upgrade_is_enabled() -> bool43 fn pbap_pse_dynamic_version_upgrade_is_enabled() -> bool; periodic_advertising_adi_is_enabled() -> bool44 fn periodic_advertising_adi_is_enabled() -> bool; private_gatt_is_enabled() -> bool45 fn private_gatt_is_enabled() -> bool; queue_l2cap_coc_while_encrypting_is_enabled() -> bool46 fn queue_l2cap_coc_while_encrypting_is_enabled() -> bool; read_encryption_key_size_is_enabled() -> bool47 fn read_encryption_key_size_is_enabled() -> bool; redact_log_is_enabled() -> bool48 fn redact_log_is_enabled() -> bool; rust_event_loop_is_enabled() -> bool49 fn rust_event_loop_is_enabled() -> bool; sco_codec_select_lc3_is_enabled() -> bool50 fn sco_codec_select_lc3_is_enabled() -> bool; sco_codec_timeout_clear_is_enabled() -> bool51 fn sco_codec_timeout_clear_is_enabled() -> bool; sdp_serialization_is_enabled() -> bool52 fn sdp_serialization_is_enabled() -> bool; sdp_skip_rnr_if_known_is_enabled() -> bool53 fn sdp_skip_rnr_if_known_is_enabled() -> bool; bluetooth_quality_report_callback_is_enabled() -> bool54 fn bluetooth_quality_report_callback_is_enabled() -> bool; set_min_encryption_is_enabled() -> bool55 fn set_min_encryption_is_enabled() -> bool; subrating_is_enabled() -> bool56 fn subrating_is_enabled() -> bool; trigger_advertising_callbacks_on_first_resume_after_pause_is_enabled() -> bool57 fn trigger_advertising_callbacks_on_first_resume_after_pause_is_enabled() -> bool; use_unified_connection_manager_is_enabled() -> bool58 fn use_unified_connection_manager_is_enabled() -> bool; sdp_return_classic_services_when_le_discovery_fails_is_enabled() -> bool59 fn sdp_return_classic_services_when_le_discovery_fails_is_enabled() -> bool; 60 } 61 } 62 63 use crate::init_flags::ffi::InitFlagWithValue; 64 dump() -> Vec<InitFlagWithValue>65fn dump() -> Vec<InitFlagWithValue> { 66 bt_common::init_flags::dump() 67 .into_iter() 68 .map(|(flag, value)| InitFlagWithValue { flag, value }) 69 .collect() 70 } 71 72 use bt_common::init_flags::*; 73