aboutsummaryrefslogtreecommitdiff
path: root/pw_bluetooth/public/pw_bluetooth/hci_events.emb
diff options
context:
space:
mode:
Diffstat (limited to 'pw_bluetooth/public/pw_bluetooth/hci_events.emb')
-rw-r--r--pw_bluetooth/public/pw_bluetooth/hci_events.emb1751
1 files changed, 1751 insertions, 0 deletions
diff --git a/pw_bluetooth/public/pw_bluetooth/hci_events.emb b/pw_bluetooth/public/pw_bluetooth/hci_events.emb
new file mode 100644
index 000000000..aa5f52931
--- /dev/null
+++ b/pw_bluetooth/public/pw_bluetooth/hci_events.emb
@@ -0,0 +1,1751 @@
+# Copyright 2023 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+# This file contains Emboss definitions for Host Controller Interface packets
+# and types found in the Bluetooth Core Specification. The Emboss compiler is
+# used to generate a C++ header from this file.
+
+import "hci_common.emb" as hci
+
+[$default byte_order: "LittleEndian"]
+[(cpp) namespace: "pw::bluetooth::emboss"]
+# =========================== Constants =================================
+
+
+enum CoreSpecificationVersion:
+ -- Bluetooth Core Specification version
+ [maximum_bits: 8]
+ V1_0B = 0x00 # v1.0b
+ V1_1 = 0x01 # v1.1
+ V1_2 = 0x02 # v1.2
+ V2_0_EDR = 0x03 # v2.0+EDR
+ V2_1_EDR = 0x04 # v2.0+EDR
+ V3_0_HS = 0x05 # v3.0+HS
+ V4_0 = 0x06 # v4.0
+ V4_1 = 0x07 # v4.1
+ V4_2 = 0x08 # v4.2
+ V5_0 = 0x09 # v5.0
+ V5_1 = 0x0A # v5.1
+ V5_2 = 0x0B # v5.2
+ V5_3 = 0x0C # v5.3
+ V5_4 = 0x0D # v5.4
+
+
+enum LinkType:
+ [maximum_bits: 8]
+ SCO = 0x00
+ ACL = 0x01
+ ESCO = 0x02
+
+
+enum EncryptionStatus:
+ OFF = 0x00
+ ON_WITH_E0_FOR_BREDR_OR_AES_FOR_LE = 0x01
+ ON_WITH_AES_FOR_BREDR = 0x02
+
+
+enum LEAdvertisingDataStatus:
+ [maximum_bits: 2]
+ COMPLETE = 0b00
+ INCOMPLETE = 0b01
+ INCOMPLETE_TRUNCATED = 0b10
+
+
+enum LEDirectAddressType:
+ -- Possible values that can be reported for the |direct_address_type| parameter in LE Advertising
+ -- Report events.
+ [maximum_bits: 8]
+ PUBLIC = 0x00
+ -- Public Device Address
+
+ PRIVATE = 0x01
+ -- Non-resolvable Private Address or Static Device Address
+
+ RESOLVABLE_PRIVATE_OWN_ADDRESS_PUBLIC = 0x02
+ -- Resolvable Private Address (resolved by Controller; Own_Address_Type was 0x00 or 0x02)
+
+ RESOLVABLE_PRIVATE_OWN_ADDRESS_RANDOM = 0x03
+ -- Resolvable Private Address (resolved by Controller; Own_Address_Type was 0x01 or 0x03)
+
+ RESOLVABLE_PRIVATE = 0xFE
+ -- Resolvable Private Address (Controller unable to resolve)
+
+
+enum LEClockAccuracy:
+ -- Possible values that can be reported for the |central_clock_accuracy| and
+ -- |advertiser_clock_accuracy| parameters.
+ [maximum_bits: 8]
+ PPM_500 = 0x00
+ PPM_250 = 0x01
+ PPM_150 = 0x02
+ PPM_100 = 0x03
+ PPM_75 = 0x04
+ PPM_50 = 0x05
+ PPM_30 = 0x06
+ PPM_20 = 0x07
+
+
+enum KeyType:
+ -- The key type used during pairing.
+ [maximum_bits: 8]
+ COMBINATION = 0x00
+ DEBUG_COMBINATION = 0x03
+ UNAUTHENTICATED_COMBINATION_FROM_P192 = 0x04
+ AUTHENTICATED_COMBINATION_FROM_P192 = 0x05
+ CHANGED_COMBINATION_KEY = 0x06
+ UNAUTHENTICATED_COMBINATION_FROM_P256 = 0x07
+ AUTHENTICATED_COMBINATION_FROM_P256 = 0x08
+
+# =========================== Field Types =================================
+
+
+bits LmpFeatures(page: UInt:8):
+ -- Bit mask of Link Manager Protocol features.
+ [requires: page <= 2]
+ if page == 0:
+ 0 [+1] Flag three_slot_packets
+ 1 [+1] Flag five_slot_packets
+ 2 [+1] Flag encryption
+ 3 [+1] Flag slot_offset
+ 4 [+1] Flag timing_accuracy
+ 5 [+1] Flag role_switch
+ 6 [+1] Flag hold_mode
+ 7 [+1] Flag sniff_mode
+ # 8: previously used
+ 9 [+1] Flag power_control_requests
+ 10 [+1] Flag channel_quality_driven_data_rate
+ 11 [+1] Flag sco_link
+ 12 [+1] Flag hv2_packets
+ 13 [+1] Flag hv3_packets
+ 14 [+1] Flag mu_law_log_synchronous_data
+ 15 [+1] Flag a_law_log_synchronous_data
+ 16 [+1] Flag cvsd_synchronous_data
+ 17 [+1] Flag paging_parameter_negotiation
+ 18 [+1] Flag power_control
+ 19 [+1] Flag transparent_synchronous_data
+ 20 [+3] UInt flow_control_lag
+ 23 [+1] Flag broadcast_encryption
+ # 24: reserved for future use
+ 25 [+1] Flag enhanced_data_rate_acl_2_mbs_mode
+ 26 [+1] Flag enhanced_data_rate_acl_3_mbs_mode
+ 27 [+1] Flag enhanced_inquiry_scan
+ 28 [+1] Flag interlaced_inquiry_scan
+ 29 [+1] Flag interlaced_page_scan
+ 30 [+1] Flag rssi_with_inquiry_results
+ 31 [+1] Flag extended_sco_link_ev3_packets
+ 32 [+1] Flag ev4_packets
+ 33 [+1] Flag ev5_packets
+ # 34: reserved for future use
+ 35 [+1] Flag afh_capable_peripheral
+ 36 [+1] Flag afh_classification_peripheral
+ 37 [+1] Flag bredr_not_supported
+ 38 [+1] Flag le_supported_controller
+ 39 [+1] Flag three_slot_enhanced_data_rate_acl_packets
+ 40 [+1] Flag five_slot_enhanced_data_rate_acl_packets
+ 41 [+1] Flag sniff_subrating
+ 42 [+1] Flag pause_encryption
+ 43 [+1] Flag afh_capable_central
+ 44 [+1] Flag afh_classification_central
+ 45 [+1] Flag enhanced_data_rate_esco_2_mbs_mode
+ 46 [+1] Flag enhanced_data_rate_esco_3_mbs_mode
+ 47 [+1] Flag three_slot_enhanced_data_rate_esco_packets
+ 48 [+1] Flag extended_inquiry_response
+ 49 [+1] Flag simultaneous_le_and_bredr_to_same_device_capable_controller
+ # 50: reserved for future use
+ 51 [+1] Flag secure_simple_pairing_controller_support
+ 52 [+1] Flag encapsulated_pdu
+ 53 [+1] Flag erroneous_data_reporting
+ 54 [+1] Flag non_flushable_packet_boundary_flag
+ # 55: reserved for future use
+ 56 [+1] Flag hci_link_supervision_timeout_changed_event
+ 57 [+1] Flag variable_inquiry_tx_power_level
+ 58 [+1] Flag enhanced_power_control
+ # 59-62: reserved for future use
+ 63 [+1] Flag extended_features
+
+ if page == 1:
+ 0 [+1] Flag secure_simple_pairing_host_support
+ 1 [+1] Flag le_supported_host
+ # 2: previously used
+ 3 [+1] Flag secure_connection_host_support
+
+ if page == 2:
+ 0 [+1] Flag connectionless_peripheral_broadcast_transmitter_operation
+ 1 [+1] Flag connectionless_peripheral_broadcast_receiver_operation
+ 2 [+1] Flag synchronization_train
+ 3 [+1] Flag synchronization_scan
+ 4 [+1] Flag hci_inquiry_response_notification_event
+ 5 [+1] Flag generalized_interlaced_scan
+ 6 [+1] Flag coarse_clock_adjustment
+ # 7: reserved for future use
+ 8 [+1] Flag secure_connections_controller_support
+ 9 [+1] Flag ping
+ 10 [+1] Flag slot_availability_mask
+ 11 [+1] Flag train_nudging
+
+
+bits LEFeatureSet:
+ 0 [+1] Flag le_encryption
+ $next [+1] Flag connection_parameters_request_procedure
+ $next [+1] Flag extended_reject_indication
+ $next [+1] Flag peripheral_initiated_features_exchange
+ $next [+1] Flag le_ping
+ $next [+1] Flag le_data_packet_length_extension
+ $next [+1] Flag ll_privacy
+ $next [+1] Flag extended_scanning_filter_policies
+ $next [+1] Flag le_2m_phy
+ $next [+1] Flag stable_modulation_index_transmitter
+ $next [+1] Flag stable_modulation_index_receiver
+ $next [+1] Flag le_coded_phy
+ $next [+1] Flag le_extended_advertising
+ $next [+1] Flag le_periodic_advertising
+ $next [+1] Flag channel_selection_algorithm_2
+ $next [+1] Flag le_power_class_1
+ $next [+1] Flag minimum_number_of_used_channels_procedure
+ $next [+1] Flag connection_cte_request
+ $next [+1] Flag connection_cte_response
+ $next [+1] Flag connectionless_cte_transmitter
+ $next [+1] Flag connectionless_cte_receiver
+ $next [+1] Flag antenna_switching_during_cte_transmission
+ $next [+1] Flag antenna_switching_during_cte_reception
+ $next [+1] Flag receiving_constant_tone_extensions
+ $next [+1] Flag periodic_advertising_sync_transfer_sender
+ $next [+1] Flag periodic_advertising_sync_transfer_recipient
+ $next [+1] Flag sleep_clock_accuracy_updates
+ $next [+1] Flag remote_public_key_validation
+ $next [+1] Flag connected_isochronous_stream_central
+ $next [+1] Flag connected_isochronous_stream_peripheral
+ $next [+1] Flag isochronous_broadcaster
+ $next [+1] Flag synchronized_receiver
+ $next [+1] Flag connected_isochronous_stream_host_support
+ $next [+1] Flag le_power_control_request_1
+ $next [+1] Flag le_power_control_request_2
+ -- Previous two bits shall always have the same value.
+
+ $next [+1] Flag le_path_loss_monitoring
+ $next [+1] Flag periodic_advertising_adi_support
+ $next [+1] Flag connection_subrating
+ $next [+1] Flag connection_subrating_host_support
+ $next [+1] Flag channel_classification
+ $next [+1] Flag advertising_coding_selection
+ $next [+1] Flag advertising_coding_selection_host_support
+ $next [+1] Flag reserved # Bit 42 is skipped
+ $next [+1] Flag periodic_advertising_with_responses_advertiser
+ $next [+1] Flag periodic_advertising_with_responses_scanner
+
+
+bits LEExtendedAdvertisingEventType:
+ 0 [+1] Flag connectable
+ $next [+1] Flag scannable
+ $next [+1] Flag directed
+ $next [+1] Flag scan_response
+ $next [+1] Flag legacy
+ $next [+2] LEAdvertisingDataStatus data_status
+
+
+bits SupportedCommands(octet: UInt:8):
+ [requires: octet <= 47]
+ if octet == 0:
+ 0 [+1] Flag inquiry
+ 1 [+1] Flag inquiry_cancel
+ 2 [+1] Flag periodic_inquiry_mode
+ 3 [+1] Flag exit_periodic_inquiry_mode
+ 4 [+1] Flag create_connection
+ 5 [+1] Flag disconnect
+ 7 [+1] Flag create_connection_cancel
+
+ if octet == 1:
+ 0 [+1] Flag accept_connection_request
+ 1 [+1] Flag reject_connection_request
+ 2 [+1] Flag link_key_request_reply
+ 3 [+1] Flag link_key_request_negative_reply
+ 4 [+1] Flag pin_code_request_reply
+ 5 [+1] Flag pin_code_request_negative_reply
+ 6 [+1] Flag change_connection_packet_type
+ 7 [+1] Flag authentication_requested
+
+ if octet == 2:
+ 0 [+1] Flag set_connection_encryption
+ 1 [+1] Flag change_connection_link_key
+ 2 [+1] Flag link_key_selection
+ 3 [+1] Flag remote_name_request
+ 4 [+1] Flag remote_name_request_cancel
+ 5 [+1] Flag read_remote_supported_features
+ 6 [+1] Flag read_remote_extended_features
+ 7 [+1] Flag read_remote_version_information
+
+ if octet == 3:
+ 0 [+1] Flag read_clock_offset
+ 1 [+1] Flag read_lmp_handle
+
+ if octet == 4:
+ 1 [+1] Flag hold_mode
+ 2 [+1] Flag sniff_mode
+ 3 [+1] Flag exit_sniff_mode
+ 6 [+1] Flag qos_setup
+ 7 [+1] Flag role_discovery
+
+ if octet == 5:
+ 0 [+1] Flag switch_role
+ 1 [+1] Flag read_link_policy_settings
+ 2 [+1] Flag write_link_policy_settings
+ 3 [+1] Flag read_default_link_policy_settings
+ 4 [+1] Flag write_default_link_policy_settings
+ 5 [+1] Flag flow_specification
+ 6 [+1] Flag set_event_mask
+ 7 [+1] Flag reset
+
+ if octet == 6:
+ 0 [+1] Flag set_event_filter
+ 1 [+1] Flag flush
+ 2 [+1] Flag read_pin_type
+ 3 [+1] Flag write_pin_type
+ 5 [+1] Flag read_stored_link_key
+ 6 [+1] Flag write_stored_link_key
+ 7 [+1] Flag deleted_stored_link_key
+
+ if octet == 7:
+ 0 [+1] Flag write_local_name
+ 1 [+1] Flag read_local_name
+ 2 [+1] Flag read_connection_attempt_timeout
+ 3 [+1] Flag write_connection_attempt_timeout
+ 4 [+1] Flag read_page_timeout
+ 5 [+1] Flag write_page_timeout
+ 6 [+1] Flag read_scan_enable
+ 7 [+1] Flag write_scan_enable
+
+ if octet == 8:
+ 0 [+1] Flag read_page_scan_activity
+ 1 [+1] Flag write_page_scan_activity
+ 2 [+1] Flag read_inquiry_scan_activity
+ 3 [+1] Flag write_inquiry_scan_activity
+ 4 [+1] Flag read_authentication_enable
+ 5 [+1] Flag write_authentication_enable
+
+ if octet == 9:
+ 0 [+1] Flag read_class_of_device
+ 1 [+1] Flag write_class_of_device
+ 2 [+1] Flag read_voice_setting
+ 3 [+1] Flag write_voice_setting
+ 4 [+1] Flag read_automatic_flush_timeout
+ 5 [+1] Flag write_automatic_flush_timeout
+ 6 [+1] Flag read_num_broadcast_retransmissions
+ 7 [+1] Flag write_num_broadcast_retransmissions
+
+ if octet == 10:
+ 0 [+1] Flag read_hold_mode_activity
+ 1 [+1] Flag write_hold_mode_activity
+ 2 [+1] Flag read_transmit_power_level
+ 3 [+1] Flag read_synchronous_flow_control_enable
+ 4 [+1] Flag write_synchronous_flow_control_enable
+ 5 [+1] Flag set_controller_to_host_flow_control
+ 6 [+1] Flag host_buffer_size
+ 7 [+1] Flag host_number_of_completed_packets
+
+ if octet == 11:
+ 0 [+1] Flag read_link_supervision_timeout
+ 1 [+1] Flag write_link_supervision_timeout
+ 2 [+1] Flag read_number_of_supported_iac
+ 3 [+1] Flag read_current_iaclap
+ 4 [+1] Flag write_current_iaclap
+
+ if octet == 12:
+ 1 [+1] Flag set_afh_host_channel_classification
+ 4 [+1] Flag read_inquiry_scan_type
+ 5 [+1] Flag write_inquiry_scan_type
+ 6 [+1] Flag read_inquiry_mode
+ 7 [+1] Flag write_inquiry_mode
+
+ if octet == 13:
+ 0 [+1] Flag read_page_scan_type
+ 1 [+1] Flag write_page_scan_type
+ 2 [+1] Flag read_afh_channel_assessment_mode
+ 3 [+1] Flag write_afh_channel_assessment_mode
+
+ if octet == 14:
+ 3 [+1] Flag read_local_version_information
+ 5 [+1] Flag read_local_supported_features
+ 6 [+1] Flag read_local_extended_features
+ 7 [+1] Flag read_buffer_size
+
+ if octet == 15:
+ 1 [+1] Flag read_bdaddr
+ 2 [+1] Flag read_failed_contact_counter
+ 3 [+1] Flag reset_failed_contact_c_ounter
+ 4 [+1] Flag read_link_quality
+ 5 [+1] Flag read_rssi
+ 6 [+1] Flag read_afh_channel_map
+ 7 [+1] Flag read_clock
+
+ if octet == 16:
+ 0 [+1] Flag read_loopback_mode
+ 1 [+1] Flag write_loopback_mode
+ 2 [+1] Flag enable_device_under_test_mode
+ 3 [+1] Flag setup_synchronous_connection_request
+ 4 [+1] Flag accept_synchronous_connection_request
+ 5 [+1] Flag reject_synchronous_connection_request
+
+ if octet == 17:
+ 0 [+1] Flag read_extended_inquiry_response
+ 1 [+1] Flag write_extended_inquiry_response
+ 2 [+1] Flag refresh_encryption_key
+ 4 [+1] Flag sniff_subrating
+ 5 [+1] Flag read_simple_pairing_mode
+ 6 [+1] Flag write_simple_pairing_mode
+ 7 [+1] Flag read_local_oob_data
+
+ if octet == 18:
+ 0 [+1] Flag read_inquiry_response_transmit_power_level
+ 1 [+1] Flag write_inquiry_transmit_power_level
+ 2 [+1] Flag read_default_erroneous_data_reporting
+ 3 [+1] Flag write_default_erroneous_data_reporting
+ 7 [+1] Flag io_capability_request_reply
+
+ if octet == 19:
+ 0 [+1] Flag user_confirmation_request_reply
+ 1 [+1] Flag user_confirmation_request_negative_reply
+ 2 [+1] Flag user_passkey_request_reply
+ 3 [+1] Flag user_passkey_request_negative_reply
+ 4 [+1] Flag remote_oob_data_request_reply
+ 5 [+1] Flag write_simple_pairing_debug_mode
+ 6 [+1] Flag enhanced_flush
+ 7 [+1] Flag remote_oob_data_request_negative_reply
+
+ if octet == 20:
+ 2 [+1] Flag send_keypress_notification
+ 3 [+1] Flag io_capability_request_negative_reply
+ 4 [+1] Flag read_encryption_key_size
+
+ if octet == 21:
+ 0 [+1] Flag create_physical_link
+ 1 [+1] Flag accept_physical_link
+ 2 [+1] Flag disconnect_physical_link
+ 3 [+1] Flag create_logical_link
+ 4 [+1] Flag accept_logical_link
+ 5 [+1] Flag disconnect_logical_link
+ 6 [+1] Flag logical_link_cancel
+ 7 [+1] Flag flow_spec_modify
+
+ if octet == 22:
+ 0 [+1] Flag read_logical_link_accept_timeout
+ 1 [+1] Flag write_logical_link_accept_timeout
+ 2 [+1] Flag set_event_mask_page_2
+ 3 [+1] Flag read_location_data
+ 4 [+1] Flag write_location_data
+ 5 [+1] Flag read_local_amp_info
+ 6 [+1] Flag read_local_ampassoc
+ 7 [+1] Flag write_remote_ampassoc
+
+ if octet == 23:
+ 0 [+1] Flag read_flow_control_mode
+ 1 [+1] Flag write_flow_control_mode
+ 2 [+1] Flag read_data_block_size
+
+ if octet == 24:
+ 0 [+1] Flag read_enhanced_transmit_power_level
+ 2 [+1] Flag read_best_effort_flush_timeout
+ 3 [+1] Flag write_best_effort_flush_timeout
+ 4 [+1] Flag short_range_mode
+ 5 [+1] Flag read_le_host_supported
+ 6 [+1] Flag write_le_host_support
+
+ if octet == 25:
+ 0 [+1] Flag le_set_event_mask
+ 1 [+1] Flag le_read_buffer_size_v1
+ 2 [+1] Flag le_read_local_supported_features
+ 4 [+1] Flag le_set_random_address
+ 5 [+1] Flag le_set_advertising_parameters
+ 6 [+1] Flag le_read_advertising_channel_tx_power
+ 7 [+1] Flag le_set_advertising_data
+
+ if octet == 26:
+ 0 [+1] Flag le_set_scan_response_data
+ 1 [+1] Flag le_set_advertising_enable
+ 2 [+1] Flag le_set_scan_parameters
+ 3 [+1] Flag le_set_scan_enable
+ 4 [+1] Flag le_create_connection
+ 5 [+1] Flag le_create_connection_cancel
+ 6 [+1] Flag le_read_filter_accept_list_size
+ 7 [+1] Flag le_clear_filter_accept_list
+
+ if octet == 27:
+ 0 [+1] Flag le_add_device_to_filter_accept_list
+ 1 [+1] Flag le_remove_device_from_filter_accept_list
+ 2 [+1] Flag le_connection_update
+ 3 [+1] Flag le_set_host_channel_classification
+ 4 [+1] Flag le_read_channel_map
+ 5 [+1] Flag le_read_remote_features
+ 6 [+1] Flag le_encrypt
+ 7 [+1] Flag le_rand
+
+ if octet == 28:
+ 0 [+1] Flag le_start_encryption
+ 1 [+1] Flag le_long_term_key_request_reply
+ 2 [+1] Flag le_long_term_key_request_negative_reply
+ 3 [+1] Flag le_read_supported_states
+ 4 [+1] Flag le_receiver_test_v1
+ 5 [+1] Flag le_transmitter_test_v1
+ 6 [+1] Flag le_test_end
+
+ if octet == 29:
+ 3 [+1] Flag enhanced_setup_synchronous_connection
+ 4 [+1] Flag enhanced_accept_synchronous_connection
+ 5 [+1] Flag read_local_supported_codecs
+ 6 [+1] Flag set_mws_channel_parameters
+ 7 [+1] Flag set_external_frame_configuration
+
+ if octet == 30:
+ 0 [+1] Flag set_mws_signaling
+ 1 [+1] Flag set_mws_transport_layer
+ 2 [+1] Flag set_mws_scan_frequency_table
+ 3 [+1] Flag get_mws_transport_layer_configuration
+ 4 [+1] Flag set_mws_pattern_configuration
+ 5 [+1] Flag set_triggered_clock_capture
+ 6 [+1] Flag truncated_page
+ 7 [+1] Flag truncated_page_cancel
+
+ if octet == 31:
+ 0 [+1] Flag set_connectionless_peripheral_broadcast
+ 1 [+1] Flag set_connectionless_peripheral_broadcast_receive
+ 2 [+1] Flag start_synchronization_train
+ 3 [+1] Flag receive_synchronization_train
+ 4 [+1] Flag set_reserved_ltaddr
+ 5 [+1] Flag delete_reserved_ltaddr
+ 6 [+1] Flag set_connectionless_peripheral_broadcast_data
+ 7 [+1] Flag read_synchronization_train_parameters
+
+ if octet == 32:
+ 0 [+1] Flag write_synchronization_train_parameters
+ 1 [+1] Flag remote_oob_extended_data_request_reply
+ 2 [+1] Flag read_secure_connections_host_support
+ 3 [+1] Flag write_secure_connections_host_support
+ 4 [+1] Flag read_authenticated_payload_timeout
+ 5 [+1] Flag write_authenticated_payload_timeout
+ 6 [+1] Flag read_local_oob_extended_data
+ 7 [+1] Flag write_secure_connections_test_mode
+
+ if octet == 33:
+ 0 [+1] Flag read_extended_page_timeout
+ 1 [+1] Flag write_extended_page_timeout
+ 2 [+1] Flag read_extended_inquiry_length
+ 3 [+1] Flag write_extended_inquiry_length
+ 4 [+1] Flag le_remote_connection_parameter_request_reply
+ 5 [+1] Flag le_remote_connection_parameter_request_negative_reply
+ 6 [+1] Flag le_set_data_length
+ 7 [+1] Flag le_read_suggested_default_data_length
+
+ if octet == 34:
+ 0 [+1] Flag le_write_suggested_default_data_length
+ 1 [+1] Flag le_read_local_p256_public_key
+ 2 [+1] Flag le_generate_dh_key_v1
+ 3 [+1] Flag le_add_device_to_resolving_list
+ 4 [+1] Flag le_remove_device_from_resolving_list
+ 5 [+1] Flag le_clear_resolving_list
+ 6 [+1] Flag le_read_resolving_list_size
+ 7 [+1] Flag le_read_peer_resolvable_address
+
+ if octet == 35:
+ 0 [+1] Flag le_read_local_resolvable_address
+ 1 [+1] Flag le_set_address_resolution_enable
+ 2 [+1] Flag le_set_resolvable_private_address_timeout
+ 3 [+1] Flag le_read_maximum_data_length
+ 4 [+1] Flag le_read_phy
+ 5 [+1] Flag le_set_default_phy
+ 6 [+1] Flag le_set_phy
+ 7 [+1] Flag le_enhanced_receiver_test_v2
+
+ if octet == 36:
+ 0 [+1] Flag le_enhanced_transmitter_test_v2
+ 1 [+1] Flag le_set_advertising_set_random_address
+ 2 [+1] Flag le_set_extended_advertising_parameters
+ 3 [+1] Flag le_set_extended_advertising_data
+ 4 [+1] Flag le_set_extended_scan_response_data
+ 5 [+1] Flag le_set_extended_advertising_enable
+ 6 [+1] Flag le_read_maximum_advertising_data_length
+ 7 [+1] Flag le_read_number_of_supported_advertising_sets
+
+ if octet == 37:
+ 0 [+1] Flag le_remove_advertising_set
+ 1 [+1] Flag le_clear_advertising_sets
+ 2 [+1] Flag le_set_periodic_advertising_parameters
+ 3 [+1] Flag le_set_periodic_advertising_data
+ 4 [+1] Flag le_set_periodic_advertising_enable
+ 5 [+1] Flag le_set_extended_scan_parameters
+ 6 [+1] Flag le_set_extended_scan_enable
+ 7 [+1] Flag le_extended_create_connection
+
+ if octet == 38:
+ 0 [+1] Flag le_periodic_advertising_create_sync
+ 1 [+1] Flag le_periodic_advertising_create_sync_cancel
+ 2 [+1] Flag le_periodic_advertising_terminate_sync
+ 3 [+1] Flag le_add_device_to_periodic_advertiser_list
+ 4 [+1] Flag le_remove_device_from_periodic_advertiser_list
+ 5 [+1] Flag le_clear_periodic_advertiser_list
+ 6 [+1] Flag le_read_periodic_advertiser_list_size
+ 7 [+1] Flag le_read_transmit_power
+
+ if octet == 39:
+ 0 [+1] Flag le_read_rf_path_compensation
+ 1 [+1] Flag le_write_rf_path_compensation
+ 2 [+1] Flag le_set_privacy_mode
+ 3 [+1] Flag le_receiver_test_v3
+ 4 [+1] Flag le_transmitter_test_v3
+ 5 [+1] Flag le_set_connectionless_cte_transmit_parameters
+ 6 [+1] Flag le_set_connectionless_cte_transmit_enable
+ 7 [+1] Flag le_set_connectionless_iq_sampling_enable
+
+ if octet == 40:
+ 0 [+1] Flag le_set_connection_cte_receive_parameters
+ 1 [+1] Flag le_set_connection_cte_transmit_parameters
+ 2 [+1] Flag le_connection_cte_request_enable
+ 3 [+1] Flag le_connection_cte_response_enable
+ 4 [+1] Flag le_read_antenna_information
+ 5 [+1] Flag le_set_periodic_advertising_receive_enable
+ 6 [+1] Flag le_periodic_advertising_sync_transfer
+ 7 [+1] Flag le_periodic_advertising_set_info_transfer
+
+ if octet == 41:
+ 0 [+1] Flag le_set_periodic_advertising_sync_transfer_parameters
+ 1 [+1] Flag le_set_default_periodic_advertising_sync_transfer_parameters
+ 2 [+1] Flag le_generate_dh_key_v3
+ 3 [+1] Flag read_local_simple_pairing_options
+ 4 [+1] Flag le_modify_sleep_clock_accuracy
+ 5 [+1] Flag le_read_buffer_size_v2
+ 6 [+1] Flag le_read_isotx_sync
+ 7 [+1] Flag le_set_cig_parameters
+
+ if octet == 42:
+ 0 [+1] Flag le_set_cig_parameters_test
+ 1 [+1] Flag le_create_cis
+ 2 [+1] Flag le_remove_cig
+ 3 [+1] Flag le_accept_cis_request
+ 4 [+1] Flag le_reject_cis_request
+ 5 [+1] Flag le_create_big
+ 6 [+1] Flag le_create_big_test
+ 7 [+1] Flag le_terminate_big
+
+ if octet == 43:
+ 0 [+1] Flag le_big_create_sync
+ 1 [+1] Flag le_big_terminate_sync
+ 2 [+1] Flag le_request_peer_sca
+ 3 [+1] Flag le_setup_iso_data_path
+ 4 [+1] Flag le_remove_iso_data_path
+ 5 [+1] Flag le_iso_transmit_test
+ 6 [+1] Flag le_iso_receive_test
+ 7 [+1] Flag le_iso_read_test_counters
+
+ if octet == 44:
+ 0 [+1] Flag le_iso_test_end
+ 1 [+1] Flag le_set_host_feature
+ 2 [+1] Flag le_read_iso_link_quality
+ 3 [+1] Flag le_enhanced_read_transmit_power_level
+ 4 [+1] Flag le_read_remote_transmit_power_level
+ 5 [+1] Flag le_set_path_loss_reporting_parameters
+ 6 [+1] Flag le_set_path_loss_reporting_enable
+ 7 [+1] Flag le_set_transmit_power_reporting_enable
+
+ if octet == 45:
+ 0 [+1] Flag le_transmitter_test_v4
+ 1 [+1] Flag set_ecosystem_base_interval
+ 2 [+1] Flag read_local_supported_codecs_v2
+ 3 [+1] Flag read_local_supported_codec_capabilities
+ 4 [+1] Flag read_local_supported_controller_delay
+ 5 [+1] Flag configure_data_path
+
+ if octet == 46:
+ 0 [+1] Flag le_set_default_subrate
+ 1 [+1] Flag le_subrate_request
+ 2 [+1] Flag le_set_extended_advertising_parameters_v2
+ 5 [+1] Flag le_set_periodic_advertising_subevent_data
+ 6 [+1] Flag le_set_periodic_advertising_response_data
+ 7 [+1] Flag le_set_periodic_sync_subevent
+
+ if octet == 47:
+ 0 [+1] Flag le_extended_create_connection_v2
+ 1 [+1] Flag le_set_periodic_advertising_parameters_v2
+
+
+enum LEChannelSelectionAlgorithm:
+ [maximum_bits: 8]
+ ALGORITHM1 = 0x00
+ ALGORITHM2 = 0x01
+
+# ========================= HCI Event packets ===========================
+# Core Spec v5.3 Vol 4, Part E, Section 7.7
+
+
+struct InquiryCompleteEvent:
+ -- 7.7.1 Inquiry Complete event (v1.1) (BR/EDR)
+ -- HCI_Inquiry_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+
+
+struct InquiryResult:
+ 0 [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- BD_ADDR for a device which responded.
+
+ $next [+1] hci.PageScanRepetitionMode page_scan_repetition_mode
+ $next [+2] UInt reserved
+ -- Reserved for future use.
+
+ $next [+3] hci.ClassOfDevice class_of_device
+ -- Class of Device for the device.
+
+ $next [+2] hci.ClockOffset clock_offset
+ -- The lower 15 bits represent bits 16-2 of CLKNPeripheral-CLK.
+
+
+struct InquiryResultEvent:
+ -- 7.7.2 Inquiry Result event (v1.1) (BR/EDR)
+ -- HCI_Inquiry_Result
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] UInt num_responses
+ -- Number of responses from the Inquiry.
+
+ let response_size = InquiryResult.$size_in_bytes
+ $next [+num_responses*response_size] InquiryResult[] responses
+
+
+struct ConnectionCompleteEvent:
+ -- 7.7.3 Connection Complete Event (v1.1) (BR/EDR)
+ -- HCI_Connection_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address of the connected device
+
+ $next [+1] LinkType link_type
+ $next [+1] hci.GenericEnableParam encryption_enabled
+
+
+struct ConnectionRequestEvent:
+ -- 7.7.4 Connection Request event (v1.1) (BR/EDR)
+ -- HCI_Connection_Request
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address of the device that's requesting the connection.
+
+ $next [+3] hci.ClassOfDevice class_of_device
+ -- The Class of Device of the device which requests the connection.
+
+ $next [+1] LinkType link_type
+
+
+struct DisconnectionCompleteEvent:
+ -- 7.7.5 Disconnection Complete event (v1.1) (BR/EDR & LE)
+ -- HCI_Disconnection_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+1] hci.StatusCode reason
+
+
+struct AuthenticationCompleteEvent:
+ -- 7.7.6 Authentication Complete event (v1.1) (BR/EDR)
+ -- HCI_Authentication_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+
+struct RemoteNameRequestCompleteEvent:
+ -- 7.7.7 Remote Name Request Complete event (v1.1) (BR/EDR)
+ -- HCI_Remote_Name_Request_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ $next [+248] UInt:8[248] remote_name
+ -- UTF-8 encoded friendly name. If the name is less than 248 characters, it
+ -- is null terminated and the remaining bytes are not valid.
+
+
+struct EncryptionChangeEventV1:
+ -- 7.7.8 Encryption Change event (v1.1) (BR/EDR & LE)
+ -- HCI_Encryption_Change [v1]
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+1] EncryptionStatus encryption_enabled
+
+
+struct ChangeConnectionLinkKeyCompleteEvent:
+ -- 7.7.9 Change Connection Link Key Complete event (v1.1) (BR/EDR)
+ -- HCI_Change_Connection_Link_Key_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+# 7.7.10 Link Key Type Changed event
+# HCI_Link_Key_Type_Changed
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct ReadRemoteSupportedFeaturesCompleteEvent:
+ -- 7.7.11 Read Remote Supported Features Complete event (v1.1) (BR/EDR)
+ -- HCI_Read_Remote_Supported_Features_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+8] LmpFeatures(0) lmp_features
+ -- Page 0 of the LMP features.
+
+
+struct ReadRemoteVersionInfoCompleteEvent:
+ -- 7.7.12 Read Remote Version Information Complete event (v1.1) (BR/EDR & LE)
+ -- HCI_Read_Remote_Version_Information_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+1] CoreSpecificationVersion version
+ -- Version of the Current LMP or Link Layer supported by the remote Controller.
+
+ $next [+2] UInt company_identifier
+ -- Company identifier for the manufacturer of the remote Controller. Assigned by Bluetooth SIG.
+
+ $next [+2] UInt subversion
+ -- Revision of the LMP or Link Layer implementation in the remote Controller. This value is vendor-specific.
+
+# 7.7.13 QoS Setup Complete event
+# HCI_QoS_Setup_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct SimpleCommandCompleteEvent:
+ -- 7.7.14 Command Complete event (status only)
+ -- HCI_Command_Complete
+ -- A Command Complete event where a StatusCode is the only return parameter.
+ -- Also useful for generically getting the status of a larger command complete
+ -- event.
+ let hdr_size = hci.CommandCompleteEvent.$size_in_bytes
+ 0 [+hdr_size] hci.CommandCompleteEvent command_complete
+ $next [+1] hci.StatusCode status
+
+
+struct ReadLocalVersionInfoCommandCompleteEvent:
+ -- 7.7.14 Command Complete event (7.4.1 Read Local Version Information command)
+
+ let hdr_size = hci.CommandCompleteEvent.$size_in_bytes
+
+ 0 [+hdr_size] hci.CommandCompleteEvent command_complete
+
+ $next [+1] hci.StatusCode status
+
+ $next [+1] CoreSpecificationVersion hci_version
+ -- Version of the HCI Specification supported by the Controller. See
+ -- Assigned Numbers
+
+ $next [+2] UInt hci_subversion
+ -- Revision of the HCI implementation in the Controller. This value is
+ -- vendor-specific.
+
+ $next [+1] UInt lmp_version
+ -- Version of the Current LMP supported by the Controller. See Assigned
+ -- Numbers
+
+ $next [+2] UInt company_identifier
+ -- Company identifier for the manufacturer of the Controller. See Assigned
+ -- Numbers
+
+ $next [+2] UInt lmp_subversion
+ -- Subversion of the Current LMP in the Controller. This value is
+ -- vendor-specific.
+
+
+struct ReadLocalSupportedCommandsCommandCompleteEvent:
+ -- 7.7.14 Command Complete event (7.4.2 Read Local Supported Commands command)
+ let hdr_size = hci.CommandCompleteEvent.$size_in_bytes
+ 0 [+hdr_size] hci.CommandCompleteEvent command_complete
+ $next [+1] hci.StatusCode status
+ $next [+1] SupportedCommands(0) supported_commands_0
+ $next [+1] SupportedCommands(1) supported_commands_1
+ $next [+1] SupportedCommands(2) supported_commands_2
+ $next [+1] SupportedCommands(3) supported_commands_3
+ $next [+1] SupportedCommands(4) supported_commands_4
+ $next [+1] SupportedCommands(5) supported_commands_5
+ $next [+1] SupportedCommands(6) supported_commands_6
+ $next [+1] SupportedCommands(7) supported_commands_7
+ $next [+1] SupportedCommands(8) supported_commands_8
+ $next [+1] SupportedCommands(9) supported_commands_9
+ $next [+1] SupportedCommands(10) supported_commands_10
+ $next [+1] SupportedCommands(11) supported_commands_11
+ $next [+1] SupportedCommands(12) supported_commands_12
+ $next [+1] SupportedCommands(13) supported_commands_13
+ $next [+1] SupportedCommands(14) supported_commands_14
+ $next [+1] SupportedCommands(15) supported_commands_15
+ $next [+1] SupportedCommands(16) supported_commands_16
+ $next [+1] SupportedCommands(17) supported_commands_17
+ $next [+1] SupportedCommands(18) supported_commands_18
+ $next [+1] SupportedCommands(19) supported_commands_19
+ $next [+1] SupportedCommands(20) supported_commands_20
+ $next [+1] SupportedCommands(21) supported_commands_21
+ $next [+1] SupportedCommands(22) supported_commands_22
+ $next [+1] SupportedCommands(23) supported_commands_23
+ $next [+1] SupportedCommands(24) supported_commands_24
+ $next [+1] SupportedCommands(25) supported_commands_25
+ $next [+1] SupportedCommands(26) supported_commands_26
+ $next [+1] SupportedCommands(27) supported_commands_27
+ $next [+1] SupportedCommands(28) supported_commands_28
+ $next [+1] SupportedCommands(29) supported_commands_29
+ $next [+1] SupportedCommands(30) supported_commands_30
+ $next [+1] SupportedCommands(31) supported_commands_31
+ $next [+1] SupportedCommands(32) supported_commands_32
+ $next [+1] SupportedCommands(33) supported_commands_33
+ $next [+1] SupportedCommands(34) supported_commands_34
+ $next [+1] SupportedCommands(35) supported_commands_35
+ $next [+1] SupportedCommands(36) supported_commands_36
+ $next [+1] SupportedCommands(37) supported_commands_37
+ $next [+1] SupportedCommands(38) supported_commands_38
+ $next [+1] SupportedCommands(39) supported_commands_39
+ $next [+1] SupportedCommands(40) supported_commands_40
+ $next [+1] SupportedCommands(41) supported_commands_41
+ $next [+1] SupportedCommands(42) supported_commands_42
+ $next [+1] SupportedCommands(43) supported_commands_43
+ $next [+1] SupportedCommands(44) supported_commands_44
+ $next [+1] SupportedCommands(45) supported_commands_45
+ $next [+1] SupportedCommands(46) supported_commands_46
+ $next [+1] SupportedCommands(47) supported_commands_47
+
+
+struct ReadBufferSizeCommandCompleteEvent:
+ -- 7.7.14 Command Complete event (7.4.5 Read Buffer Size command)
+
+ let hdr_size = hci.CommandCompleteEvent.$size_in_bytes
+
+ 0 [+hdr_size] hci.CommandCompleteEvent command_complete
+
+ $next [+1] hci.StatusCode status
+
+ $next [+2] UInt acl_data_packet_length
+ -- Maximum length (in octets) of the data portion of each HCI ACL Data
+ -- packet that the Controller is able to accept.
+ [requires: 0x0001 <= this <= 0xFFFF]
+
+ $next [+1] UInt synchronous_data_packet_length
+ -- Maximum length (in octets) of the data portion of each HCI Synchronous
+ -- Data packet that the Controller is able to accept.
+ [requires: 0x01 <= this <= 0xFF]
+
+ $next [+2] UInt total_num_acl_data_packets
+ -- Total number of HCI ACL Data packets that can be stored in the data
+ -- buffers of the Controller.
+ [requires: 0x0001 <= this <= 0xFFFF]
+
+ $next [+2] UInt total_num_synchronous_data_packets
+ -- Total number of HCI Synchronous Data packets that can be stored in the
+ -- data buffers of the Controller. A value of 0 indicates that the
+ -- Controller does not support SCO or eSCO over HCI.
+
+
+struct ReadBdAddrCommandCompleteEvent:
+ -- 7.7.14 Command Complete event (7.4.6 Read BD_ADDR command)
+ let hdr_size = hci.CommandCompleteEvent.$size_in_bytes
+ 0 [+hdr_size] hci.CommandCompleteEvent command_complete
+ $next [+1] hci.StatusCode status
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+
+
+struct LEReadLocalSupportedFeaturesCommandCompleteEvent:
+ -- 7.7.14 Command Complete event (7.8.3 LE Read Local Supported Features command)
+ let hdr_size = hci.CommandCompleteEvent.$size_in_bytes
+ 0 [+hdr_size] hci.CommandCompleteEvent command_complete
+ $next [+1] hci.StatusCode status
+ $next [+8] bits:
+ 0 [+LEFeatureSet.$size_in_bits] LEFeatureSet le_features
+
+
+struct CommandStatusEvent:
+ -- 7.7.15 Command Status event
+ -- HCI_Command_Status
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+1] UInt num_hci_command_packets
+ $next [+2] hci.OpCodeBits command_opcode
+
+# 7.7.16 Hardware Error event
+# HCI_Hardware_Error
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.17 Flush Occurred event
+# HCI_Flush_Occurred
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct RoleChangeEvent:
+ -- 7.7.18 Role Change event (BR/EDR) (v1.1)
+ -- HCI_Role_Change
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address of the device for which a role change has completed.
+
+ $next [+1] hci.ConnectionRole role
+ -- The new role for the specified address.
+
+# 7.7.19 Number Of Completed Packets event
+# HCI_Number_Of_Completed_Packets
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.20 Mode Change event
+# HCI_Mode_Change
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.21 Return Link Keys event
+# HCI_Return_Link_Keys
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.22 PIN Code Request event
+# HCI_PIN_Code_Request
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct LinkKeyRequestEvent:
+ -- 7.7.23 Link Key Request event (v1.1) (BR/EDR)
+ -- HCI_Link_Key_Request
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address for the device that a host-stored link key is being requested.
+
+
+struct LinkKeyNotificationEvent:
+ -- 7.7.24 Link Key Notification event (v1.1) (BR/EDR)
+ -- HCI_Link_Key_Notification
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address for the device for which a new link key has been generated.
+
+ $next [+hci.LinkKey.$size_in_bytes] hci.LinkKey link_key
+ -- Link key for the associated address.
+
+ $next [+1] KeyType key_type
+ -- Type of key used when pairing.
+
+# 7.7.25 Loopback Command event
+# HCI_Loopback_Command
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct DataBufferOverflowEvent:
+ -- 7.7.26 Data Buffer Overflow event (v1.1) (BR/EDR & LE)
+ -- HCI_Data_Buffer_Overflow
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] LinkType ll_type
+
+# 7.7.27 Max Slots Change event
+# HCI_Max_Slots_Change
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.28 Read Clock Offset Complete event
+# HCI_Read_Clock_Offset_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.29 Connection Packet Type Changed event
+# HCI_Connection_Packet_Type_Changed
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.30 QoS Violation event
+# HCI_QoS_Violation
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.31 Page Scan Repetition Mode Change event
+# HCI_Page_Scan_Repetition_Mode_Change
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.32 Flow Specification Complete event
+# HCI_Flow_Specification_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct InquiryResultWithRssi:
+ -- A single inquiry result (with RSSI).
+ 0 [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address for the device which responded.
+
+ $next [+1] hci.PageScanRepetitionMode page_scan_repetition_mode
+ -- The Page Scan Repetition Mode being used by the remote device.
+
+ $next [+1] UInt reserved
+ $next [+3] hci.ClassOfDevice class_of_device
+ $next [+2] hci.ClockOffset clock_offset
+ -- The lower 15 bits represent bits 16-2 of CLKNPeripheral-CLK. The most
+ -- significant bit is reserved.
+
+ $next [+1] Int rssi
+ -- Units: dBm
+ [requires: -127 <= this <= 20]
+
+
+struct InquiryResultWithRssiEvent:
+ -- 7.7.33 Inquiry Result with RSSI event (v1.2) (BR/EDR)
+ -- HCI_Inquiry_Result_with_RSSI
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] UInt num_responses
+ -- The number of responses included.
+
+ let response_size = InquiryResultWithRssi.$size_in_bytes
+ $next [+num_responses*response_size] InquiryResultWithRssi[] responses
+
+
+struct ReadRemoteExtendedFeaturesCompleteEvent:
+ -- 7.7.34 Read Remote Extended Features Complete event (v1.1) (BR/EDR)
+ -- HCI_Read_Remote_Extended_Features_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ -- Only the lower 12-bits are meaningful.
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+1] UInt page_number
+ -- 0x00: The normal LMP features as returned by HCI_Read_Remote_Supported_Features command.
+ -- 0x01 to 0xFF: The page number of the features returned.
+
+ $next [+1] UInt max_page_number
+ -- The highest features page number which contains non-zero bits for the remote device.
+
+ $next [+8] LmpFeatures(page_number) lmp_features
+ -- Bit map of requested page of LMP features.
+
+
+struct SynchronousConnectionCompleteEvent:
+ -- 7.7.35 Synchronous Connection Complete event (BR/EDR)
+ -- HCI_Synchronous_Connection_Complete
+
+ let hdr_size = hci.EventHeader.$size_in_bytes
+
+ 0 [+hdr_size] hci.EventHeader header
+
+ $next [+1] hci.StatusCode status
+
+ $next [+2] UInt connection_handle
+ -- A connection handle for the newly created SCO connection.
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- BD_ADDR of the other connected device forming the connection.
+
+ $next [+1] LinkType link_type
+
+ $next [+1] UInt transmission_interval
+ -- Time between two consecutive eSCO instants measured in slots. Shall be
+ -- zero for SCO links.
+
+ $next [+1] UInt retransmission_window
+ -- The size of the retransmission window measured in slots. Shall be zero
+ -- for SCO links.
+
+ $next [+2] UInt rx_packet_length
+ -- Length in bytes of the eSCO payload in the receive direction. Shall be
+ -- zero for SCO links.
+
+ $next [+2] UInt tx_packet_length
+ -- Length in bytes of the eSCO payload in the transmit direction. Shall be
+ -- zero for SCO links.
+
+ $next [+1] hci.CodingFormat air_mode
+
+# 7.7.36 Synchronous Connection Changed event
+# HCI_Synchronous_Connection_Changed
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.37 Sniff Subrating event
+# HCI_Sniff_Subrating
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct ExtendedInquiryResultEvent:
+ -- 7.7.38 Extended Inquiry Result event (v1.2) (BR/EDR)
+ -- HCI_Extended_Inquiry_Result
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] UInt num_responses
+ -- Number of responses from the inquiry. The HCI_Extended_Inquiry_Result
+ -- event always contains a single response.
+ [requires: this == 0x01]
+
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- BD_ADDR of the device that responded.
+
+ $next [+1] hci.PageScanRepetitionMode page_scan_repetition_mode
+ -- The Page Scan Repetition Mode being used by the remote device.
+
+ $next [+1] UInt reserved
+ $next [+3] hci.ClassOfDevice class_of_device
+ $next [+2] hci.ClockOffset clock_offset
+ -- The lower 15 bits represent bits 16-2 of CLKNPeripheral-CLK.
+
+ $next [+1] Int rssi
+ -- Units: dBm
+ [requires: -127 <= this <= 20]
+
+ $next [+240] UInt:8[240] extended_inquiry_response
+ -- Extended inquiey response data as defined in Vol 3, Part C, Sec 8
+
+
+struct EncryptionKeyRefreshCompleteEvent:
+ -- 7.7.39 Encryption Key Refresh Complete event (v2.1 + EDR) (BR/EDR & LE)
+ -- HCI_Encryption_Key_Refresh_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ -- The connection_handle on which the encryption key was refreshed due to
+ -- encryption being started or resumed.
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+
+struct IoCapabilityRequestEvent:
+ -- 7.7.40 IO Capability Request event (v2.1 + EDR) (BR/EDR)
+ -- HCI_IO_Capability_Request
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address of the remote device involved in the Secure Simple Pairing
+ -- process.
+
+
+struct IoCapabilityResponseEvent:
+ -- 7.7.41 IO Capability Response event (v2.1 + EDR) (BR/EDR)
+ -- HCI_IO_Capability_Response
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- The address of the remote device which the IO capabilities apply
+
+ $next [+1] hci.IoCapability io_capability
+ -- IO Capabilities of the device
+
+ $next [+1] hci.GenericPresenceParam oob_data_present
+ -- Whether out-of-band authentication data is present.
+
+ $next [+1] hci.AuthenticationRequirements authentication_requirements
+
+
+struct UserConfirmationRequestEvent:
+ -- 7.7.42 User Confirmation Request event (v2.1 + EDR) (BR/EDR)
+ -- HCI_User_Confirmation_Request
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- Address of the device involved in simple pairing process
+
+ $next [+4] UInt numeric_value
+ -- Numeric value to be displayed.
+ [requires: 0 <= this <= 999999]
+
+
+struct UserPasskeyRequestEvent:
+ -- 7.7.43 User Passkey Request event (v2.1 + EDR) (BR/EDR)
+ -- HCI_User_Passkey_Request
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- Address of the device involved in simple pairing process
+
+# 7.7.44 Remote OOB Data Request event
+# HCI_Remote_OOB_Data_Request
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct SimplePairingCompleteEvent:
+ -- 7.7.45 Simple Pairing Complete event (v2.1 + EDR) (BR/EDR)
+ -- HCI_Simple_Pairing_Complete
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] hci.StatusCode status
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- Address of the device involved in simple pairing process
+
+# 7.7.46 Link Supervision Timeout Changed event
+# HCI_Link_Supervision_Timeout_Changed
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.47 Enhanced Flush Complete event
+# HCI_Enhanced_Flush_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct UserPasskeyNotificationEvent:
+ -- 7.7.48 User Passkey Notification event (v2.1 + EDR) (BR/EDR)
+ -- HCI_User_Passkey_Notification
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr bd_addr
+ -- Address of the device involved in simple pairing process
+
+ $next [+4] UInt passkey
+ -- Numeric value (passkey) entered by user.
+ [requires: 0 <= this <= 999999]
+
+# 7.7.49 Keypress Notification event
+# HCI_Keypress_Notification
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.50 Remote Host Supported Features Notification event
+# HCI_Remote_Host_Supported_Features_Notification
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.59 Number Of Completed Data Blocks event
+# HCI_Number_Of_Completed_Data_Blocks
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct LEMetaEvent:
+ -- 7.7.65 LE Meta event
+ let hdr_size = hci.EventHeader.$size_in_bytes
+ 0 [+hdr_size] hci.EventHeader header
+ $next [+1] UInt subevent_code
+ -- The event code for the LE subevent.
+
+
+struct LEConnectionCompleteSubevent:
+ -- 7.7.65.1 LE Connection Complete event
+ -- HCI_LE_Connection_Complete
+
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+
+ $next [+1] hci.StatusCode status
+
+ $next [+2] UInt connection_handle
+ -- Only the lower 12-bits are meaningful.
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+1] hci.ConnectionRole role
+
+ $next [+1] hci.LEPeerAddressType peer_address_type
+
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr peer_address
+ -- Public Device Address or Random Device Address of the peer device.
+
+ $next [+2] UInt connection_interval
+ -- Time: N * 1.25 ms
+ -- Range: 7.5 ms to 4 s
+ [requires: 0x0006 <= this <= 0x0C80]
+
+ $next [+2] UInt peripheral_latency
+ [requires: 0x0000 <= this <= 0x01F3]
+
+ $next [+2] UInt supervision_timeout
+ -- Time: N * 10 ms
+ -- Range: 100 ms to 32 s
+ [requires: 0x000A <= this <= 0x0C80]
+
+ $next [+1] LEClockAccuracy central_clock_accuracy
+ -- Only valid for a peripheral. On a central, this parameter shall be set to 0x00.
+
+# 7.7.65.2 LE Advertising Report event
+# HCI_LE_Advertising_Report
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct LEConnectionUpdateCompleteSubevent:
+ -- 7.7.65.3 LE Connection Update Complete event
+ -- HCI_LE_Connection_Update_Complete
+
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+
+ $next [+1] hci.StatusCode status
+
+ $next [+2] UInt connection_handle
+ -- Only the lower 12-bits are meaningful.
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+2] UInt connection_interval
+ -- Time: N * 1.25 ms
+ -- Range: 7.5 ms to 4 s
+ [requires: 0x0006 <= this <= 0x0C80]
+
+ $next [+2] UInt peripheral_latency
+ [requires: 0x0000 <= this <= 0x01F3]
+
+ $next [+2] UInt supervision_timeout
+ -- Time: N * 10 ms
+ -- Range: 100 ms to 32 s
+ [requires: 0x000A <= this <= 0x0C80]
+
+
+struct LEReadRemoteFeaturesCompleteSubevent:
+ -- 7.7.65.4 LE Read Remote Features Complete event
+ -- HCI_LE_Read_Remote_Features_Complete
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ -- Only the lower 12-bits are meaningful.
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+8] bits:
+ 0 [+LEFeatureSet.$size_in_bits] LEFeatureSet le_features
+
+
+struct LELongTermKeyRequestSubevent:
+ -- 7.7.65.5 LE Long Term Key Request event (v4.0) (LE)
+ -- HCI_LE_Long_Term_Key_Request
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+8] UInt random_number
+ $next [+2] UInt encrypted_diversifier
+
+# 7.7.65.6 LE Remote Connection Parameter Request event
+# HCI_LE_Remote_Connection_Parameter_Request
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.7 LE Data Length Change event
+# HCI_LE_Data_Length_Change
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.8 LE Read Local P-256 Public Key Complete event
+# HCI_LE_Read_Local_P-256_Public_Key_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.9 LE Generate DHKey Complete event
+# HCI_LE_Generate_DHKey_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct LEEnhancedConnectionCompleteSubeventV1:
+ -- 7.7.65.10 LE Enhanced Connection Complete event
+ -- HCI_LE_Enhanced_Connection_Complete
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+ $next [+1] hci.StatusCode status
+ $next [+2] UInt connection_handle
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+1] hci.ConnectionRole role
+ $next [+1] hci.LEAddressType peer_address_type
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr peer_address
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr local_resolvable_private_address
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr peer_resolvable_private_address
+ $next [+2] UInt connection_interval
+ -- Time: N * 1.25 ms
+ -- Range: 7.5 ms to 4 s
+ [requires: 0x0006 <= this <= 0x0C80]
+
+ $next [+2] UInt peripheral_latency
+ [requires: 0x0000 <= this <= 0x01F3]
+
+ $next [+2] UInt supervision_timeout
+ -- Time: N * 10 ms
+ -- Range: 100 ms to 32 s
+ [requires: 0x000A <= this <= 0x0C80]
+
+ $next [+1] LEClockAccuracy central_clock_accuracy
+ -- Only valid for a peripheral. On a central, this parameter shall be set to 0x00.
+
+# 7.7.65.10 LE Enhanced Connection Complete event
+# HCI_LE_Enhanced_Connection_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.11 LE Directed Advertising Report event
+# HCI_LE_Directed_Advertising_Report
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.12 LE PHY Update Complete event
+# HCI_LE_PHY_Update_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct LEExtendedAdvertisingReportData:
+ 0 [+2] bits:
+
+ 0 [+LEExtendedAdvertisingEventType.$size_in_bits] LEExtendedAdvertisingEventType event_type
+
+ $next [+1] hci.LEExtendedAddressType address_type
+ -- Address type of the advertiser.
+
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr address
+ -- Public Device Address, Random Device Address, Public Identity Address or
+ -- Random (static) Identity Address of the advertising device.
+
+ $next [+1] hci.LEPrimaryAdvertisingPHY primary_phy
+ -- Indicates the PHY used to send the advertising PDU on the primary advertising
+ -- channel. Legacy PDUs always use LE_1M. NONE, LE_2M, and LE_CODED_S2 are excluded.
+
+ $next [+1] hci.LESecondaryAdvertisingPHY secondary_phy
+ -- Indicates the PHY used to send the advertising PDU(s), if any, on the secondary
+ -- advertising channel. A value of NONE means that no packets were received on the
+ -- secondary advertising channel.
+
+ $next [+1] UInt advertising_sid
+ -- Value of the Advertising SID subfield in the ADI field of the PDU. A value of
+ -- 0xFF means no ADI field provided.
+ [requires: 0x00 <= this <= 0x0F || this == 0xFF]
+
+ $next [+1] UInt tx_power
+ -- Units: dBm. A value of 0x7F means Tx Power information is not available.
+ [requires: -127 <= this <= 20 || this == 0x7F]
+
+ $next [+1] Int rssi
+ -- Units: dBm. A value of 0x7F means RSSI is not available.
+ [requires: -127 <= this <= 20 || this == 0x7F]
+
+ $next [+2] UInt periodic_advertising_interval
+ -- 0x0000: No periodic advertising.
+ -- 0xXXXX:
+ -- Time = N * 1.25 ms
+ -- Time Range: 7.5 ms to 81,918.75 s
+ [requires: 0x0006 <= this <= 0xFFFF || this == 0x0000]
+
+ $next [+1] LEDirectAddressType direct_address_type
+
+ $next [+hci.BdAddr.$size_in_bytes] hci.BdAddr direct_address
+ -- TargetA field in the advertisement or either Public Identity Address or Random (static)
+ -- Identity Address of the target device.
+
+ $next [+1] UInt data_length
+ -- Length of the |data| field.
+
+ $next [+data_length] UInt:8[data_length] data
+ -- |data_length| octets of advertising or scan response data formatted as defined in
+ -- [Vol 3] Part C, Section 11. Note: Each element of this array has a variable length.
+
+
+struct LEExtendedAdvertisingReportSubevent(reports_size: UInt:8):
+ -- 7.7.65.13 LE Extended Advertising Report event (v5.0) (LE)
+ -- HCI_LE_Extended_Advertising_Report
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+ $next [+1] UInt num_reports
+ -- Number of separate reports in the event.
+ [requires: 0x01 <= this <= 0x0A]
+
+ $next [+reports_size] UInt:8[reports_size] reports
+ -- Since each report has a variable length, they are stored in a UInt:8 array.
+
+# 7.7.65.14 LE Periodic Advertising Sync Established event
+# HCI_LE_Periodic_Advertising_Sync_Established
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.15 LE Periodic Advertising Report event
+# HCI_LE_Periodic_Advertising_Report
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.16 LE Periodic Advertising Sync Lost event
+# HCI_LE_Periodic_Advertising_Sync_Lost
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct LEScanTimeoutSubevent:
+ -- 7.7.65.17 LE Scan Timeout event
+ -- HCI_LE_Scan_Timeout
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+
+# 7.7.65.18 LE Advertising Set Terminated event
+# HCI_LE_Advertising_Set_Terminated
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.19 LE Scan Request Received event
+# HCI_LE_Scan_Request_Received
+# TODO: b/265052417 - Definition needs to be added
+
+
+struct LEChannelSelectionAlgorithmSubevent:
+ -- 7.7.65.20 LE Channel Selection Algorithm event
+ -- HCI_LE_Channel_Selection_Algorithm
+ 0 [+LEMetaEvent.$size_in_bytes] LEMetaEvent le_meta_event
+ $next [+2] UInt connection_handle
+ -- Only the lower 12-bits are meaningful.
+ [requires: 0x0000 <= this <= 0x0EFF]
+
+ $next [+1] LEChannelSelectionAlgorithm channel_selection_algorithm
+
+# 7.7.65.21 LE Connectionless IQ Report event
+# HCI_LE_Connectionless_IQ_Report
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.22 LE Connection IQ Report event
+# HCI_LE_Connection_IQ_Report
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.23 LE CTE Request Failed event
+# HCI_LE_CTE_Request_Failed
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.24 LE Periodic Advertising Sync Transfer Received event
+# HCI_LE_Periodic_Advertising_Sync_Transfer_Received
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.25 LE CIS Established event
+# HCI_LE_CIS_Established
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.26 LE CIS Request event
+# HCI_LE_CIS_Request
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.27 LE Create BIG Complete event
+# HCI_LE_Create_BIG_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.28 LE Terminate BIG Complete event
+# HCI_LE_Terminate_BIG_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.29 LE BIG Sync Established event
+# HCI_LE_BIG_Sync_Established
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.30 LE BIG Sync Lost event
+# HCI_LE_BIG_Sync_Lost
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.31 LE Request Peer SCA Complete event
+# HCI_LE_Request_Peer_SCA_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.32 LE Path Loss Threshold event
+# HCI_LE_Path_Loss_Threshold
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.33 LE Transmit Power Reporting event
+# HCI_LE_Transmit_Power_Reporting
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.34 LE BIGInfo Advertising Report event
+# HCI_LE_BIGInfo_Advertising_Report
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.35 LE Subrate Change event
+# HCI_LE_Subrate_Change
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.36 LE Periodic Advertising Subevent Data Request event
+# HCI_LE_Periodic_Advertising_Subevent_Data_Request
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.65.37 LE Periodic Advertising Response Report event
+# HCI_LE_Periodic_Advertising_Response_Report
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.66 Triggered Clock Capture event
+# HCI_Triggered_Clock_Capture
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.67 Synchronization Train Complete event
+# HCI_Synchronization_Train_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.68 Synchronization Train Received event
+# HCI_Synchronization_Train_Received
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.69 Connectionless Peripheral Broadcast Receive event
+# HCI_Connectionless_Peripheral_Broadcast_Receive
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.70 Connectionless Peripheral Broadcast Timeout event
+# HCI_Connectionless_Peripheral_Broadcast_Timeout
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.71 Truncated Page Complete event
+# HCI_Truncated_Page_Complete
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.72 Peripheral Page Response Timeout event
+# HCI_Peripheral_Page_Response_Timeout
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.73 Connectionless Peripheral Broadcast Channel Map Change event
+# HCI_Connectionless_Peripheral_Broadcast_Channel_Map_Change
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.74 Inquiry Response Notification event
+# HCI_Inquiry_Response_Notification
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.75 Authenticated Payload Timeout Expired event
+# HCI_Authenticated_Payload_Timeout_Expired
+# TODO: b/265052417 - Definition needs to be added
+
+
+# 7.7.76 SAM Status Change event
+# HCI_SAM_Status_Change
+# TODO: b/265052417 - Definition needs to be added