Bluetooth LE Stack
hci_stack_t
is only used within Bluetooth LE Stack.
Symbol previews are coming soon...
Symbols
loading...
Files
loading...
Summary
Syntax
Examples
References
Call Tree
Data Use
Class Tree
Override Tree
Implementations
Instances
Lifecycle
SourceVu
Raspberry Pi Pico SDK and Examples
Bluetooth LE Stack
hci_stack_t
hci_stack_t struct
main data structure
Syntax
Show:
Summary
Declaration
from
hci.h:996
typedef
struct
{
const
hci_transport_t
*
hci_transport
;
const
void
*
config
;
const
btstack_chipset_t
*
chipset
;
bool
chipset_pre_init
;
const
btstack_control_t
*
control
;
#ifdef
ENABLE_CLASSIC
const
btstack_link_key_db_t
*
link_key_db
;
#endif
btstack_linked_list_t
connections
;
btstack_packet_handler_t
acl_packet_handler
;
btstack_packet_handler_t
sco_packet_handler
;
btstack_linked_list_t
event_handlers
;
#ifdef
ENABLE_CLASSIC
int
(
*
gap_classic_accept_callback
)
(
bd_addr_t
addr
,
hci_link_type_t
link_type
)
;
#endif
void
(
*
hardware_error_callback
)
(
uint8_t
error
)
;
#ifdef
ENABLE_LE_ISOCHRONOUS_STREAMS
btstack_packet_handler_t
iso_packet_handler
;
uint16_t
iso_fragmentation_pos
;
uint16_t
iso_fragmentation_total_size
;
bool
iso_fragmentation_tx_active
;
uint8_t
iso_packets_to_queue
;
hci_iso_type_t
iso_active_operation_type
;
uint8_t
iso_active_operation_group_id
;
btstack_linked_list_t
iso_streams
;
btstack_linked_list_t
le_audio_bigs
;
btstack_linked_list_t
le_audio_big_syncs
;
btstack_linked_list_t
le_audio_cigs
;
#endif
const
char
*
local_name
;
const
uint8_t
*
eir_data
;
uint32_t
class_of_device
;
bd_addr_t
local_bd_addr
;
uint16_t
default_link_policy_settings
;
uint8_t
allow_role_switch
;
uint8_t
ssp_enable
;
uint8_t
ssp_io_capability
;
uint8_t
ssp_authentication_requirement
;
uint8_t
ssp_auto_accept
;
bool
secure_connections_enable
;
bool
secure_connections_active
;
inquiry_mode_t
inquiry_mode
;
#ifdef
ENABLE_CLASSIC
uint16_t
gap_tasks_classic
;
uint16_t
new_page_scan_interval
;
uint16_t
new_page_scan_window
;
uint8_t
new_page_scan_type
;
uint16_t
page_timeout
;
uint8_t
gap_required_encyrption_key_size
;
uint16_t
link_supervision_timeout
;
uint16_t
automatic_flush_timeout
;
gap_security_level_t
gap_security_level
;
gap_security_level_t
gap_minimal_service_security_level
;
gap_security_mode_t
gap_security_mode
;
uint32_t
inquiry_lap
;
uint16_t
inquiry_scan_interval
;
uint16_t
inquiry_scan_window
;
int8_t
inquiry_tx_power_level
;
bool
gap_secure_connections_only_mode
;
#endif
uint8_t
*
hci_packet_buffer
;
uint8_t
hci_packet_buffer_data
[
HCI_OUTGOING_PRE_BUFFER_SIZE
+
HCI_OUTGOING_PACKET_BUFFER_SIZE
]
;
bool
hci_packet_buffer_reserved
;
uint16_t
acl_fragmentation_pos
;
uint16_t
acl_fragmentation_total_size
;
uint8_t
acl_fragmentation_tx_active
;
uint8_t
num_cmd_packets
;
uint8_t
acl_packets_total_num
;
uint16_t
acl_data_packet_length
;
uint8_t
sco_packets_total_num
;
uint8_t
sco_data_packet_length
;
uint8_t
synchronous_flow_control_enabled
;
uint8_t
le_acl_packets_total_num
;
uint16_t
le_data_packets_length
;
uint8_t
le_iso_packets_total_num
;
uint16_t
le_iso_packets_length
;
uint8_t
sco_waiting_for_can_send_now
;
bool
sco_can_send_now
;
uint8_t
local_supported_features
[
8
]
;
uint32_t
local_supported_commands
;
uint16_t
manufacturer
;
uint16_t
usable_packet_types_acl
;
uint16_t
enabled_packet_types_acl
;
uint16_t
usable_packet_types_sco
;
HCI_STATE
state
;
hci_substate_t
substate
;
btstack_timer_source_t
timeout
;
btstack_chipset_result_t
chipset_result
;
uint16_t
last_cmd_opcode
;
uint8_t
cmds_ready
;
uint8_t
new_scan_enable_value
;
uint8_t
discoverable
;
uint8_t
connectable
;
uint8_t
bondable
;
uint8_t
inquiry_state
;
uint16_t
inquiry_max_period_length
;
uint16_t
inquiry_min_period_length
;
bd_addr_t
remote_name_addr
;
uint16_t
remote_name_clock_offset
;
uint8_t
remote_name_page_scan_repetition_mode
;
uint8_t
remote_name_state
;
bd_addr_t
gap_pairing_addr
;
uint8_t
gap_pairing_state
;
uint8_t
gap_pairing_pin_len
;
union
{
const
uint8_t
*
gap_pairing_pin
;
uint32_t
gap_pairing_passkey
;
}
gap_pairing_input
;
uint16_t
sco_voice_setting
;
uint16_t
sco_voice_setting_active
;
uint8_t
loopback_mode
;
uint8_t
decline_reason
;
bd_addr_t
decline_addr
;
#ifdef
ENABLE_HCI_CONTROLLER_TO_HOST_FLOW_CONTROL
uint8_t
host_completed_packets
;
#endif
#ifdef
ENABLE_BLE
uint8_t
le_own_addr_type
;
bd_addr_t
le_random_address
;
uint8_t
le_random_address_set
;
uint8_t
le_whitelist_capacity
;
btstack_linked_list_t
le_whitelist
;
uint16_t
le_connection_scan_interval
;
uint16_t
le_connection_scan_window
;
uint16_t
le_connection_interval_min
;
uint16_t
le_connection_interval_max
;
uint16_t
le_connection_latency
;
uint16_t
le_supervision_timeout
;
uint16_t
le_minimum_ce_length
;
uint16_t
le_maximum_ce_length
;
btstack_linked_list_t
gap_privacy_clients
;
#ifdef
ENABLE_HCI_COMMAND_STATUS_DISCARDED_FOR_FAILED_CONNECTIONS_WORKAROUND
hci_con_handle_t
hci_command_con_handle
;
#endif
#endif
#ifdef
ENABLE_LE_CENTRAL
bool
le_scanning_enabled
;
bool
le_scanning_active
;
le_connecting_state_t
le_connecting_state
;
le_connecting_state_t
le_connecting_request
;
bool
le_scanning_param_update
;
uint8_t
le_scan_filter_duplicates
;
uint8_t
le_scan_type
;
uint8_t
le_scan_filter_policy
;
uint8_t
le_scan_phys
;
uint16_t
le_scan_interval
;
uint16_t
le_scan_window
;
uint8_t
le_connection_own_addr_type
;
uint8_t
le_connection_phys
;
bd_addr_t
le_connection_own_address
;
#ifdef
ENABLE_LE_EXTENDED_ADVERTISING
btstack_linked_list_t
le_periodic_advertiser_list
;
uint16_t
le_periodic_terminate_sync_handle
;
uint8_t
le_periodic_sync_options
;
uint8_t
le_periodic_sync_advertising_sid
;
bd_addr_type_t
le_periodic_sync_advertiser_address_type
;
bd_addr_t
le_periodic_sync_advertiser_address
;
uint16_t
le_periodic_sync_skip
;
uint16_t
le_periodic_sync_timeout
;
uint8_t
le_periodic_sync_cte_type
;
le_connecting_state_t
le_periodic_sync_state
;
le_connecting_state_t
le_periodic_sync_request
;
bool
le_past_set_default_params
;
uint8_t
le_past_mode
;
uint16_t
le_past_skip
;
uint16_t
le_past_sync_timeout
;
uint8_t
le_past_cte_type
;
#endif
#endif
le_connection_parameter_range_t
le_connection_parameter_range
;
uint16_t
le_advertisements_todo
;
#ifdef
ENABLE_LE_PERIPHERAL
uint8_t
*
le_advertisements_data
;
uint8_t
le_advertisements_data_len
;
uint8_t
*
le_scan_response_data
;
uint8_t
le_scan_response_data_len
;
uint16_t
le_advertisements_interval_min
;
uint16_t
le_advertisements_interval_max
;
uint8_t
le_advertisements_type
;
uint8_t
le_advertisements_direct_address_type
;
uint8_t
le_advertisements_channel_map
;
uint8_t
le_advertisements_filter_policy
;
bd_addr_t
le_advertisements_direct_address
;
uint8_t
le_advertisements_own_addr_type
;
bd_addr_t
le_advertisements_own_address
;
uint8_t
le_advertisements_state
;
bool
le_advertisements_enabled_for_current_roles
;
uint8_t
le_max_number_peripheral_connections
;
#ifdef
ENABLE_LE_EXTENDED_ADVERTISING
btstack_linked_list_t
le_advertising_sets
;
uint16_t
le_maximum_advertising_data_length
;
uint8_t
le_advertising_set_in_current_command
;
uint16_t
le_resolvable_private_address_update_s
;
#endif
#endif
#ifdef
ENABLE_LE_DATA_LENGTH_EXTENSION
uint16_t
le_supported_max_tx_octets
;
uint16_t
le_supported_max_tx_time
;
#endif
bd_addr_t
custom_bd_addr
;
uint8_t
custom_bd_addr_set
;
#ifdef
ENABLE_CLASSIC
uint8_t
master_slave_policy
;
#endif
bd_addr_t
outgoing_addr
;
bd_addr_type_t
outgoing_addr_type
;
#ifdef
ENABLE_LE_PRIVACY_ADDRESS_RESOLUTION
le_privacy_mode_t
le_privacy_mode
;
le_resolving_list_state_t
le_resolving_list_state
;
uint16_t
le_resolving_list_size
;
uint8_t
le_resolving_list_add_entries
[
(
MAX_NUM_RESOLVING_LIST_ENTRIES
+
7
)
/
8
]
;
uint8_t
le_resolving_list_set_privacy_mode
[
(
MAX_NUM_RESOLVING_LIST_ENTRIES
+
7
)
/
8
]
;
uint8_t
le_resolving_list_remove_entries
[
(
MAX_NUM_RESOLVING_LIST_ENTRIES
+
7
)
/
8
]
;
#endif
#ifdef
ENABLE_CLASSIC_PAIRING_OOB
bool
classic_read_local_oob_data
;
hci_con_handle_t
classic_oob_con_handle
;
#endif
#ifdef
HAVE_SCO_TRANSPORT
const
btstack_sco_transport_t
*
sco_transport
;
#endif
}
hci_stack_t
;
Fields
Field
Declared as
hci_stack_t::local_name
const
char
*
hci_stack_t::eir_data
const
uint8_t
*
hci_stack_t::class_of_device
uint32_t
hci_stack_t::local_bd_addr
bd_addr_t
hci_stack_t::default_link_policy_settings
uint16_t
hci_stack_t::allow_role_switch
uint8_t
hci_stack_t::ssp_enable
uint8_t
hci_stack_t::ssp_io_capability
uint8_t
hci_stack_t::ssp_authentication_requirement
uint8_t
hci_stack_t::ssp_auto_accept
uint8_t
hci_stack_t::secure_connections_enable
bool
hci_stack_t::secure_connections_active
bool
hci_stack_t::inquiry_mode
inquiry_mode_t
hci_stack_t::hci_packet_buffer
uint8_t
*
hci_stack_t::hci_packet_buffer_data
uint8_t
[
HCI_OUTGOING_PRE_BUFFER_SIZE
+
HCI_OUTGOING_PACKET_BUFFER_SIZE
]
hci_stack_t::hci_packet_buffer_reserved
bool
hci_stack_t::acl_fragmentation_pos
uint16_t
hci_stack_t::acl_fragmentation_total_size
uint16_t
hci_stack_t::acl_fragmentation_tx_active
uint8_t
hci_stack_t::num_cmd_packets
uint8_t
hci_stack_t::acl_packets_total_num
uint8_t
hci_stack_t::acl_data_packet_length
uint16_t
hci_stack_t::sco_packets_total_num
uint8_t
hci_stack_t::sco_data_packet_length
uint8_t
hci_stack_t::synchronous_flow_control_enabled
uint8_t
hci_stack_t::le_acl_packets_total_num
uint8_t
hci_stack_t::le_data_packets_length
uint16_t
hci_stack_t::le_iso_packets_total_num
uint8_t
hci_stack_t::le_iso_packets_length
uint16_t
hci_stack_t::sco_waiting_for_can_send_now
uint8_t
hci_stack_t::sco_can_send_now
bool
hci_stack_t::local_supported_features
uint8_t
[
8
]
hci_stack_t::local_supported_commands
uint32_t
hci_stack_t::manufacturer
uint16_t
hci_stack_t::usable_packet_types_acl
uint16_t
hci_stack_t::enabled_packet_types_acl
uint16_t
hci_stack_t::usable_packet_types_sco
uint16_t
hci_stack_t::state
HCI_STATE
hci_stack_t::substate
hci_substate_t
hci_stack_t::timeout
btstack_timer_source_t
hci_stack_t::chipset_result
btstack_chipset_result_t
hci_stack_t::last_cmd_opcode
uint16_t
hci_stack_t::cmds_ready
uint8_t
hci_stack_t::new_scan_enable_value
uint8_t
hci_stack_t::discoverable
uint8_t
hci_stack_t::connectable
uint8_t
hci_stack_t::bondable
uint8_t
hci_stack_t::inquiry_state
uint8_t
hci_stack_t::inquiry_max_period_length
uint16_t
hci_stack_t::inquiry_min_period_length
uint16_t
hci_stack_t::remote_name_addr
bd_addr_t
hci_stack_t::remote_name_clock_offset
uint16_t
hci_stack_t::remote_name_page_scan_repetition_mode
uint8_t
hci_stack_t::remote_name_state
uint8_t
hci_stack_t::gap_pairing_addr
bd_addr_t
hci_stack_t::gap_pairing_state
uint8_t
hci_stack_t::gap_pairing_pin_len
uint8_t
hci_stack_t::gap_pairing_input
union
{
const
uint8_t
*
gap_pairing_pin
;
uint32_t
gap_pairing_passkey
;
}
hci_stack_t::sco_voice_setting
uint16_t
hci_stack_t::sco_voice_setting_active
uint16_t
hci_stack_t::loopback_mode
uint8_t
hci_stack_t::decline_reason
uint8_t
hci_stack_t::decline_addr
bd_addr_t
hci_stack_t::host_completed_packets
uint8_t
hci_stack_t::le_own_addr_type
uint8_t
hci_stack_t::hci_transport
const
hci_transport_t
*
hci_stack_t::config
const
void
*
hci_stack_t::chipset
const
btstack_chipset_t
*
hci_stack_t::chipset_pre_init
bool
hci_stack_t::control
const
btstack_control_t
*
hci_stack_t::connections
btstack_linked_list_t
hci_stack_t::acl_packet_handler
btstack_packet_handler_t
hci_stack_t::sco_packet_handler
btstack_packet_handler_t
hci_stack_t::event_handlers
btstack_linked_list_t
hci_stack_t::hardware_error_callback
void
(
*
)
(
uint8_t
error
)
hci_stack_t::le_random_address
bd_addr_t
hci_stack_t::le_random_address_set
uint8_t
hci_stack_t::le_whitelist_capacity
uint8_t
hci_stack_t::le_whitelist
btstack_linked_list_t
hci_stack_t::le_connection_scan_interval
uint16_t
hci_stack_t::le_connection_scan_window
uint16_t
hci_stack_t::le_connection_interval_min
uint16_t
hci_stack_t::le_connection_interval_max
uint16_t
hci_stack_t::le_connection_latency
uint16_t
hci_stack_t::le_supervision_timeout
uint16_t
hci_stack_t::le_minimum_ce_length
uint16_t
hci_stack_t::le_maximum_ce_length
uint16_t
hci_stack_t::gap_privacy_clients
btstack_linked_list_t
hci_stack_t::le_scanning_enabled
bool
hci_stack_t::le_scanning_active
bool
hci_stack_t::le_connecting_state
le_connecting_state_t
hci_stack_t::le_connecting_request
le_connecting_state_t
hci_stack_t::le_scanning_param_update
bool
hci_stack_t::le_scan_filter_duplicates
uint8_t
hci_stack_t::le_scan_type
uint8_t
hci_stack_t::le_scan_filter_policy
uint8_t
hci_stack_t::le_scan_phys
uint8_t
hci_stack_t::le_scan_interval
uint16_t
hci_stack_t::le_scan_window
uint16_t
hci_stack_t::le_connection_own_addr_type
uint8_t
hci_stack_t::le_connection_phys
uint8_t
hci_stack_t::le_connection_own_address
bd_addr_t
hci_stack_t::le_connection_parameter_range
le_connection_parameter_range_t
hci_stack_t::le_advertisements_todo
uint16_t
hci_stack_t::le_advertisements_data
uint8_t
*
hci_stack_t::le_advertisements_data_len
uint8_t
hci_stack_t::le_scan_response_data
uint8_t
*
hci_stack_t::le_scan_response_data_len
uint8_t
hci_stack_t::le_advertisements_interval_min
uint16_t
hci_stack_t::le_advertisements_interval_max
uint16_t
hci_stack_t::le_advertisements_type
uint8_t
hci_stack_t::le_advertisements_direct_address_type
uint8_t
hci_stack_t::le_advertisements_channel_map
uint8_t
hci_stack_t::le_advertisements_filter_policy
uint8_t
hci_stack_t::le_advertisements_direct_address
bd_addr_t
hci_stack_t::le_advertisements_own_addr_type
uint8_t
hci_stack_t::le_advertisements_own_address
bd_addr_t
hci_stack_t::le_advertisements_state
uint8_t
hci_stack_t::le_advertisements_enabled_for_current_roles
bool
hci_stack_t::le_max_number_peripheral_connections
uint8_t
hci_stack_t::custom_bd_addr
bd_addr_t
hci_stack_t::custom_bd_addr_set
uint8_t
hci_stack_t::outgoing_addr
bd_addr_t
hci_stack_t::outgoing_addr_type
bd_addr_type_t
Examples
References
from
examples
Call Tree
from
examples
All items filtered out
All items filtered out
Data Use
from
examples
All items filtered out
All items filtered out
Class Tree
from
examples
All items filtered out
All items filtered out
Override Tree
from
examples
All items filtered out
All items filtered out
Implementations
from
examples
All items filtered out
All items filtered out
Instances
from
examples
Lifecycle
from
examples
All items filtered out
All items filtered out