pw_bluetooth_proxy#

Lightweight proxy for augmenting Bluetooth functionality

Unstable C++17

The pw_bluetooth_proxy module provides a lightweight proxy host that can be placed between a Bluetooth host and Bluetooth controller to add additional functionality or inspection. All without modifying the host or the controller.

An example use case could be offloading some functionality from a main host located on the application processor to instead be handled on the MCU (to reduce power usage).

The proxy acts as a proxy of all host controller interface (HCI) packets between the host and the controller.

pw::bluetooth::proxy::ProxyHost acts as the main coordinator for proxy functionality.

#include "pw_bluetooth_proxy/proxy_host.h"

  // Container creates ProxyHost .
  ProxyHost proxy = ProxyHost(std::move(container_send_to_host_fn),
                              std::move(container_send_to_controller_fn),
                              /*le_acl_credits_to_reserve=*/2,
                              /*br_edr_acl_credits_to_reserve=*/0);

  // Container passes H4 packets from host through proxy. Proxy will in turn
  // call the container-provided `container_send_to_controller_fn` to pass them
  // on to the controller. Some packets may be modified, added, or removed.
  proxy.HandleH4HciFromHost(std::move(h4_packet_from_host));

  // Container passes H4 packets from controller through proxy. Proxy will in
  // turn call the container-provided `container_send_to_host_fn` to pass them
  // on to the controller. Some packets may be modified, added, or removed.
  proxy.HandleH4HciFromController(std::move(h4_packet_from_controller));
Get Started

How to set up in your build system

API Reference

Reference information about the API

Roadmap

Upcoming plans

Code size analysis

Understand code footprint and savings potential

Get started#

  1. Add Emboss to your project as described in Emboss.

Bazel isn’t supported yet.

2. Then add $dir_pw_bluetooth_proxy to the deps list in your pw_executable() build target:

pw_executable("...") {
  # ...
  deps = [
    # ...
    "$dir_pw_bluetooth_proxy",
    # ...
  ]
}

2. Then add pw_bluetooth_proxy to the DEPS list in your cmake target:

API reference#

Moved: pw_bluetooth_proxy

Code size analysis#

Delta when constructing a proxy and just sending packets through.

Label

Segment

Delta

Create and use proxy as a simple passthrough

FLASH

+23,932

[section .rodata]

+160

pw::Result<>::value()

+212

main

+4

vClearInterruptMaskFromISR

NEW

+2,128

emboss::support::ContiguousBuffer<>::GetOffsetStorage<>()

NEW

+1,716

pw::bluetooth::proxy::AclDataChannel::HandleAclData()

NEW

+1,160

pw::bluetooth::MakeEmbossView<>()

NEW

+676

emboss::prelude::UIntView<>::Ok()

NEW

+640

pw::Result<>::operator->()

NEW

+500

pw::bluetooth::proxy::L2capSignalingChannel::HandleConfigurationReq()

NEW

+496

pw::bluetooth::proxy::L2capChannelManager::DrainChannelQueuesIfNewTx()

NEW

+440

pw::Result<>::operator*()

NEW

+422

pw::bluetooth::MakeEmbossWriter<>()

NEW

+412

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::Ok()

NEW

+412

pw::bluetooth::proxy::L2capSignalingChannel::HandleL2capSignalingCommand()

NEW

+394

emboss::support::BitBlock<>::GetOffsetStorage<>()

NEW

+388

emboss::prelude::UIntView<>::Read()

NEW

+384

pw::bluetooth::proxy::AclDataChannel::HandleNumberOfCompletedPacketsEvent()

NEW

+372

pw::bluetooth::proxy::L2capChannel::PopulateL2capPacket()

NEW

+372

xQueueSemaphoreTake

NEW

+332

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::Ok()

NEW

+328

pw::bluetooth::proxy::BasicL2capChannel::GenerateNextTxPacket()

NEW

+308

pw::bluetooth::proxy::AclDataChannel::ProcessDisconnectionCompleteEvent()

NEW

+304

pw::bluetooth::proxy::AclDataChannel::ProcessSpecificLEReadBufferSizeCommandCompleteEvent<>()

NEW

+280

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::Ok()

NEW

+272

pw::bluetooth::proxy::L2capSignalingChannel::HandleConnectionRsp()

NEW

+264

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::Ok()

NEW

+248

pw::bluetooth::proxy::ProxyHost::HandleCommandCompleteEvent()

NEW

+240

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::Ok()

NEW

+228

emboss::prelude::UIntView<>::TryToWrite<>()

NEW

+228

pw::Vector<>::erase()

NEW

+224

pw::bluetooth::proxy::L2capChannel::SendPayloadToClient()

NEW

+216

emboss::prelude::UIntView<>::Write<>()

NEW

+216

pw::bluetooth::proxy::L2capSignalingChannel::HandleConfigurationRsp()

NEW

+196

pw::bluetooth::proxy::L2capChannel::L2capChannel()

NEW

+192

emboss::support::OffsetBitBlock<>::ReadUInt()

NEW

+188

pw::bluetooth::proxy::Recombiner::RecombineFragment()

NEW

+184

pw::bluetooth::emboss::AclDataFrameHeader::GenericEmbossReservedAnonymousField1View<>::Ok()

NEW

+184

pw::bluetooth::emboss::GenericL2capConnectionReqView<>::Ok()

NEW

+184

pw::bluetooth::emboss::GenericL2capDisconnectionReqView<>::Ok()

NEW

+184

pw::bluetooth::emboss::GenericL2capDisconnectionRspView<>::Ok()

NEW

+184

pw::bluetooth::proxy::AclDataChannel::SendAcl()

NEW

+184

pw::bluetooth::proxy::L2capSignalingChannel::L2capSignalingChannel()

NEW

+180

pw::containers::FlatMap<>::ConstexprSort()

NEW

+176

emboss::support::ContiguousBuffer<>::ReadLittleEndianUInt<>()

NEW

+176

pw::bluetooth::proxy::ProxyHost::HandleEventFromController()

NEW

+168

pw::bluetooth::emboss::GenericBasicL2capHeaderView<>::Ok()

NEW

+168

pw::bluetooth::proxy::L2capChannel::MoveFields()

NEW

+168

vTaskPriorityDisinheritAfterTimeout

NEW

+164

pw::bluetooth::proxy::SingleChannelProxy::SingleChannelProxy()

NEW

+164

pw::multibuf::MultiBuf::CopyFromAndOptionallyTruncate()

NEW

+160

pw::bluetooth::emboss::GenericL2capMtuConfigurationOptionView<>::Ok()

NEW

+156

pw::bluetooth::emboss::GenericConnectionCompleteEventView<>::Ok()

NEW

+156

pw::bluetooth::proxy::L2capChannel::~L2capChannel()

NEW

+152

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::Ok()

NEW

+152

pw::bluetooth::proxy::L2capChannelManager::GetAclH4Packet()

NEW

+148

pw::bluetooth::proxy::L2capAclUSignalingChannel::OnCFramePayload()

NEW

+148

pw::bluetooth::proxy::L2capCoc::AddTxCredits()

NEW

+144

emboss::support::EnumView<>::Ok()

NEW

+144

pw::bluetooth::proxy::L2capSignalingChannel::HandleConnectionReq()

NEW

+140

pw::bluetooth::emboss::GenericBFrameView<>::Ok()

NEW

+140

pw::bluetooth::emboss::GenericCFrameView<>::Ok()

NEW

+140

pw::bluetooth::proxy::AclDataChannel::HandleLeConnectionCompleteEvent()

NEW

+140

pw::bluetooth::proxy::L2capLeUSignalingChannel::OnCFramePayload()

NEW

+140

xTaskPriorityInherit

NEW

+132

pw::bluetooth::proxy::L2capChannel::StartRecombinationBuf()

NEW

+132

pw::bluetooth::proxy::L2capStatusTracker::DeliverPendingAclDisconnectionComplete()

NEW

+132

pw::bluetooth::proxy::ProxyHost::HandleLeMetaEvent()

NEW

+130

pw::bluetooth::proxy::L2capStatusTracker::DeliverPendingEvents()

NEW

+128

pw::bluetooth::proxy::ProxyHost::HandleEventFromHost()

NEW

+128

pw::containers::FlatMap<>::at()

NEW

+124

pw::bluetooth::proxy::AclDataChannel::HandleConnectionCompleteEvent()

NEW

+124

pw::bluetooth::proxy::L2capChannel::InternalClose()

NEW

+124

pw::bluetooth::proxy::L2capChannelManager::HandleAclDisconnectionComplete()

NEW

+124

pw::bluetooth::proxy::ProxyHost::HandleCommandFromHost()

NEW

+120

pw::bluetooth::proxy::BasicL2capChannel::~BasicL2capChannel()

NEW

+120

pw::bluetooth::proxy::Recombiner::TakeBuf()

NEW

+116

pw::bluetooth::emboss::GenericDisconnectionCompleteEventView<>::Ok()

NEW

+116

pw::bluetooth::proxy::L2capSignalingChannel::HandleFlowControlCreditInd()

NEW

+116

pw::bluetooth::proxy::SingleChannelProxy::operator=()

NEW

+112

pw::bluetooth::proxy::AclDataChannel::Credits::Reserve()

NEW

+110

pw::bluetooth::proxy::L2capSignalingChannel::HandleDisconnectionRsp()

NEW

+110

pw::bluetooth::proxy::SingleChannelProxy::~SingleChannelProxy()

NEW

+106

pw::multibuf::Chunk::ClaimPrefix()

NEW

+104

pw::bluetooth::emboss::GenericAclDataFrameView<>::Ok()

NEW

+104

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::Ok()

NEW

+104

pw::bluetooth::proxy::BasicL2capChannel::DoHandlePduFromController()

NEW

+104

pw::bluetooth::proxy::BasicL2capChannel::HandlePduFromHost()

NEW

+104

pw::bluetooth::proxy::H4PacketWithH4::H4PacketWithH4()

NEW

+104

pw::bluetooth::proxy::L2capStatusTracker::DeliverPendingConnectionComplete()

NEW

+104

pw::multibuf::Chunk::Slice()

NEW

+102

pw::bluetooth::proxy::L2capChannel::DequeuePacket()

NEW

+102

pw::bluetooth::proxy::L2capStatusTracker::DeliverPendingConfigurationComplete()

NEW

+100

pw::bluetooth::proxy::AclDataChannel::CreateAclConnection()

NEW

+100

pw::bluetooth::proxy::AclDataChannel::HandleLeEnhancedConnectionCompleteV1Event()

NEW

+100

pw::bluetooth::proxy::AclDataChannel::HandleLeEnhancedConnectionCompleteV2Event()

NEW

+100

pw::bluetooth::proxy::H4Storage::ReserveH4Buff()

NEW

+100

pw::bluetooth::proxy::L2capChannelManager::FindChannelByLocalCid()

NEW

+100

pw::bluetooth::proxy::L2capChannelManager::FindChannelByRemoteCid()

NEW

+100

pw::bluetooth::proxy::L2capSignalingChannel::DoHandlePduFromController()

NEW

+100

pw::bluetooth::proxy::L2capSignalingChannel::HandlePduFromHost()

NEW

+100

pw::bluetooth::proxy::ProxyHost::HandleAclFromHost()

NEW

+98

pw::bluetooth::proxy::L2capStatusTracker::DeliverPendingDisconnectionComplete()

NEW

+98

pw::multibuf::MultiBuf::ContiguousSpan()

NEW

+96

emboss::support::MaybeDo<>()

NEW

+96

emboss::support::OffsetBitBlock<>::WriteUInt()

NEW

+96

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::broadcast_flag()

NEW

+96

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::handle()

NEW

+96

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::packet_boundary_flag()

NEW

+96

pw::bluetooth::emboss::GenericCommandHeaderView<>::Ok()

NEW

+96

pw::bluetooth::emboss::GenericEventHeaderView<>::Ok()

NEW

+96

pw::bluetooth::emboss::GenericL2capSignalingCommandHeaderView<>::Ok()

NEW

+96

pw::bluetooth::emboss::GenericLEMetaEventView<>::Ok()

NEW

+96

pw::bluetooth::proxy::AclDataChannel::AclConnection::AclConnection()

NEW

+96

pw::bluetooth::proxy::L2capChannel::Stop()

NEW

+96

pw::multibuf::MultiBuf::DiscardPrefix()

NEW

+92

emboss::support::ContiguousBuffer<>::WriteLittleEndianUInt<>()

NEW

+92

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::MaybeRead()

NEW

+92

pw::bluetooth::proxy::L2capAclUSignalingChannel

NEW

+92

pw::bluetooth::proxy::L2capLeUSignalingChannel

NEW

+92

pw::bluetooth::proxy::L2capSignalingChannel

NEW

+88

pw::bluetooth::proxy::AclDataChannel::ProcessReadBufferSizeCommandCompleteEvent()

NEW

+88

pw::bluetooth::proxy::BasicL2capChannel

NEW

+88

pw::bluetooth::proxy::BasicL2capChannel::BasicL2capChannel()

NEW

+88

pw::bluetooth::proxy::L2capChannel::GetFrontPayloadSpan()

NEW

+88

pw::bluetooth::proxy::L2capChannel::TakeRecombinationBuf()

NEW

+88

pw::bluetooth::proxy::SingleChannelProxy

NEW

+88

pw::containers::internal::GenericDeque<>::front()

NEW

+84

pw::bluetooth::proxy::AclDataChannel::ReserveSendCredit()

NEW

+84

pw::bluetooth::proxy::H4Storage::ReleaseH4Buff()

NEW

+84

pw::bluetooth::proxy::ProxyHost::HandleAclFromController()

NEW

+84

pw::bluetooth::proxy::Recombiner::EndRecombination()

NEW

+84

pw::multibuf::MultiBuf::const_iterator::operator+=()

NEW

+80

fit::internal::target<>::ops

NEW

+80

pw::multibuf::MultiBuf::TruncateAfter()

NEW

+78

pw::Vector<>::MoveFrom()

NEW

+78

pw::bluetooth::emboss::GenericGenericHciCommandView<>::Ok()

NEW

+78

pw::bluetooth::proxy::L2capSignalingChannel::~L2capSignalingChannel()

NEW

+76

pw::bluetooth::emboss::GenericL2capConfigurationOptionHeaderView<>::Ok()

NEW

+76

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::has_status()

NEW

+74

fit::function_impl<>::operator=()

NEW

+72

emboss::support::EnumView<>::Write()

NEW

+72

fit::internal::generic_function_base<>::assign_function()

NEW

+72

pw::bluetooth::emboss::GenericOpCodeBitsView<>::Ok()

NEW

+72

pw::bluetooth::proxy::L2capChannel::CopyToRecombinationBuf()

NEW

+72

pw::bluetooth::proxy::L2capChannel::HandlePduFromController()

NEW

+72

pw::bluetooth::proxy::L2capChannelManager::DeregisterChannelLocked()

NEW

+72

pw::bluetooth::proxy::L2capStatusTracker::HandleConfigurationChanged()

NEW

+72

pw::bluetooth::proxy::L2capStatusTracker::HandleConnectionComplete()

NEW

+72

pw::bluetooth::proxy::L2capStatusTracker::HandleDisconnectionComplete()

NEW

+72

pw::bluetooth::proxy::ProxyHost::ProxyHost()

NEW

+72

vQueueUnregisterQueue

NEW

+70

pw::bluetooth::emboss::GenericGenericHciCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::MaybeRead()

NEW

+70

pw::bluetooth::emboss::GenericGenericHciCommandView<>::payload()

NEW

+70

pw::bluetooth::proxy::Recombiner::StartRecombination()

NEW

+70

pw::containers::internal::BasicInlineDequeImpl<>::operator=()

NEW

+68

emboss::support::OffsetBitBlock<>::UncheckedReadUInt()

NEW

+68

pw::bluetooth::emboss::GenericCFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::MaybeRead()

NEW

+68

pw::bluetooth::proxy::AclDataChannel::SendCredit::MarkUsed()

NEW

+68

pw::bluetooth::proxy::L2capChannelManager::RegisterChannel()

NEW

+68

pw::bluetooth::proxy::ProxyHost::~ProxyHost()

NEW

+66

pw::bluetooth::emboss::GenericAclDataFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::MaybeRead()

NEW

+66

pw::bluetooth::emboss::GenericBFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::MaybeRead()

NEW

+66

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::MaybeRead()

NEW

+64

emboss::support::EnumView<>::TryToWrite()

NEW

+64

pw::bluetooth::emboss::GenericCFrameView<>::payload()

NEW

+64

pw::bluetooth::emboss::GenericNumberOfCompletedPacketsEventView<>::nocp_data()

NEW

+64

pw::bluetooth::proxy::ChannelProxy::~ChannelProxy()

NEW

+64

pw::bluetooth::proxy::HciTransport::SendToController()

NEW

+64

pw::bluetooth::proxy::L2capChannelManager::DeregisterAndCloseChannels()

NEW

+64

pw::bluetooth::proxy::L2capChannelManager::L2capChannelManager()

NEW

+64

pw::bluetooth::proxy::L2capSignalingChannel::operator=()

NEW

+64

pw::multibuf::Chunk::Free()

NEW

+62

fit::internal::target<>::invoke()

NEW

+62

pw::bluetooth::emboss::GenericAclDataFrameView<>::payload()

NEW

+62

pw::bluetooth::emboss::GenericBFrameView<>::payload()

NEW

+62

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::payload()

NEW

+62

pw::multibuf::MultiBufAllocator::AllocateContiguous()

NEW

+60

pw::bluetooth::emboss::GenericGenericHciCommandView<>::IsComplete()

NEW

+60

pw::bluetooth::proxy::AclDataChannel::Reset()

NEW

+60

pw::bluetooth::proxy::HciTransport::SendToHost()

NEW

+60

pw::sync::Mutex::lock()

NEW

+60

pw::sync::Mutex::unlock()

NEW

+58

_ZNSt3__223__lower_bound_bisectingB8nn210000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPN2pw10containers4PairINS3_9bluetooth5proxy16AclTransportTypeENS_8optionalINS7_14AclDataChannel10SendCreditEEEEEEES8_NS_10__identityEPFbRKSD_S8_EEET0_SL_RKT1_NS_15iterator_traitsISL_E15difference_typeERT3_RT2_

NEW

+58

_ZNSt3__29__destroyB8nn210000IN2pw10containers8internal13DequeIteratorINS3_20BasicInlineDequeImplINS1_8multibuf8MultiBufENS3_16CountAndCapacityItEELj4294967295EEEEEEET_SC_SC_

NEW

+58

pw::bluetooth::emboss::GenericAclDataFrameView<>::IsComplete()

NEW

+58

pw::bluetooth::emboss::GenericBFrameView<>::IsComplete()

NEW

+58

pw::bluetooth::emboss::GenericCFrameView<>::IsComplete()

NEW

+58

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::EmbossReservedVirtualReturnParametersSizeView::MaybeRead()

NEW

+58

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::IsComplete()

NEW

+58

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::IsComplete()

NEW

+56

_ZNSt3__223__lower_bound_bisectingB8nn210000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPKN2pw10containers4PairIPhbEEEES6_NS_10__identityEPFbRS8_S6_EEET0_SF_RKT1_NS_15iterator_traitsISF_E15difference_typeERT3_RT2_

NEW

+56

_ZNSt3__223__lower_bound_bisectingB8nn210000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPN2pw10containers4PairIPhbEEEES6_NS_10__identityEPFbRKS7_S6_EEET0_SF_RKT1_NS_15iterator_traitsISF_E15difference_typeERT3_RT2_

NEW

+56

pw::bluetooth::proxy::BasicL2capChannel::DoCheckWriteParameter()

NEW

+56

pw::bluetooth::proxy::ChannelProxy::SendEventToClient()

NEW

+56

pw::bluetooth::proxy::H4PacketWithH4::operator=()

NEW

+56

pw::bluetooth::proxy::H4PacketWithH4::~H4PacketWithH4()

NEW

+56

pw::bluetooth::proxy::L2capAclUSignalingChannel::~L2capAclUSignalingChannel()

NEW

+56

pw::bluetooth::proxy::L2capLeUSignalingChannel::~L2capLeUSignalingChannel()

NEW

+56

pw::bluetooth::proxy::L2capStatusTracker::HandleAclDisconnectionComplete()

NEW

+56

pw::bluetooth::proxy::L2capStatusTracker::L2capStatusTracker()

NEW

+56

pw::containers::internal::GenericDeque<>::pop_front()

NEW

+54

emboss::support::Or<>()

NEW

+54

pw::bluetooth::proxy::AclDataChannel::AclConnection::operator=()

NEW

+54

pw::bluetooth::proxy::Recombiner::HasBuf()

NEW

+52

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read()

NEW

+52

pw::bluetooth::proxy::AclDataChannel::AclDataChannel()

NEW

+52

pw::bluetooth::proxy::AclDataChannel::LookupCredits()

NEW

+52

pw::bluetooth::proxy::H4Storage::H4Storage()

NEW

+52

pw::bluetooth::proxy::H4Storage::InitOccupiedMap()

NEW

+52

pw::bluetooth::proxy::L2capChannelManager::HandleDisconnectionCompleteLocked()

NEW

+52

pw::bluetooth::proxy::L2capChannelManager::~L2capChannelManager()

NEW

+52

pw::containers::internal::GenericDequeBase<>::AbsoluteIndexChecked()

NEW

+52

pw::multibuf::MultiBuf::Truncate()

NEW

+52

pw::multibuf::MultiBufChunks::take_front()

NEW

+52

std::__2::array<>::~array()

NEW

+50

pw::bluetooth::emboss::GenericBasicL2capHeaderView<>::pdu_length()

NEW

+50

pw::bluetooth::proxy::ProxyHost::HandleH4HciFromHost()

NEW

+48

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::data_total_length()

NEW

+48

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::emboss_reserved_anonymous_field_1()

NEW

+48

pw::bluetooth::emboss::GenericBasicL2capHeaderView<>::channel_id()

NEW

+48

pw::bluetooth::emboss::GenericBdAddrView<>::Ok()

NEW

+48

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::status()

NEW

+48

pw::bluetooth::emboss::GenericNumberOfCompletedPacketsEventView<>::EmbossReservedVirtualDataLengthView::MaybeRead()

NEW

+48

pw::bluetooth::proxy::AclDataChannel::FindAclConnection()

NEW

+48

pw::bluetooth::proxy::HciTransport::HciTransport()

NEW

+48

pw::bluetooth::proxy::L2capChannel

NEW

+48

pw::bluetooth::proxy::L2capChannel::PopFrontPayload()

NEW

+48

pw::bluetooth::proxy::L2capChannel::SetHolder()

NEW

+48

pw::bluetooth::proxy::L2capChannel::SwitchHolder()

NEW

+48

pw::bluetooth::proxy::Recombiner::IsComplete()

NEW

+46

emboss::support::And<>()

NEW

+44

_ZNSt3__223__optional_storage_baseIN2pw8multibuf8MultiBufELb0EE13__assign_fromB8nn210000INS_27__optional_move_assign_baseIS3_Lb0EEEEEvOT_

NEW

+44

pw::Vector<>::clear()

NEW

+44

pw::Vector<>::emplace_back<>()

NEW

+44

pw::Vector<>::operator[]()

NEW

+44

pw::bluetooth::emboss::GenericL2capConfigureReqView<>::EmbossReservedVirtualOptionsSizeView::Read()

NEW

+44

pw::bluetooth::emboss::LEConnectionCompleteSubevent::EmbossReservedValidatorForConnectionInterval::ValueIsOk<>()

NEW

+44

pw::bluetooth::emboss::LEConnectionCompleteSubevent::EmbossReservedValidatorForSupervisionTimeout::ValueIsOk<>()

NEW

+44

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV1::EmbossReservedValidatorForConnectionInterval::ValueIsOk<>()

NEW

+44

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV1::EmbossReservedValidatorForSupervisionTimeout::ValueIsOk<>()

NEW

+44

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV2::EmbossReservedValidatorForConnectionInterval::ValueIsOk<>()

NEW

+44

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV2::EmbossReservedValidatorForSupervisionTimeout::ValueIsOk<>()

NEW

+44

pw::bluetooth::proxy::AclDataChannel::SendCredit::operator=()

NEW

+44

pw::bluetooth::proxy::ChannelProxy::operator=()

NEW

+44

pw::bluetooth::proxy::L2capAclUSignalingChannel::L2capAclUSignalingChannel()

NEW

+44

pw::bluetooth::proxy::L2capChannel::CheckHolder()

NEW

+44

pw::bluetooth::proxy::L2capChannelManager::FindChannelByLocalCidLocked()

NEW

+44

pw::bluetooth::proxy::L2capChannelManager::FindChannelByRemoteCidLocked()

NEW

+44

pw::bluetooth::proxy::L2capLeUSignalingChannel::L2capLeUSignalingChannel()

NEW

+44

pw::bluetooth::proxy::Recombiner::local_cid()

NEW

+42

pw::bluetooth::emboss::GenericL2capConfigureReqView<>::options()

NEW

+42

pw::bluetooth::emboss::LEReadBufferSizeV1CommandCompleteEvent::EmbossReservedValidatorForLeAclDataPacketLength::ValueIsOk<>()

NEW

+42

pw::bluetooth::emboss::LEReadBufferSizeV2CommandCompleteEvent::EmbossReservedValidatorForLeAclDataPacketLength::ValueIsOk<>()

NEW

+42

pw::bluetooth::proxy::AclDataChannel::SendCredit::~SendCredit()

NEW

+42

pw::containers::FlatMap<>::FlatMap()

NEW

+42

pw::containers::internal::GenericDeque<>::try_emplace_back<>()

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth5proxy14H4PacketWithH4ELb0EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleIS7_OT_EE5valueEiE4typeELi0EEESB_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss17GenericBFrameViewIN6emboss7support16ContiguousBufferIhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISC_OT_EE5valueEiE4typeELi0EEESG_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss17GenericCFrameViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss22GenericEventHeaderViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss22GenericLEMetaEventViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss23GenericAclDataFrameViewIN6emboss7support16ContiguousBufferIhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISC_OT_EE5valueEiE4typeELi0EEESG_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss27GenericBasicL2capHeaderViewIN6emboss7support16ContiguousBufferIhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISC_OT_EE5valueEiE4typeELi0EEESG_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss28GenericGenericHciCommandViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss29GenericAclDataFrameHeaderViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss29GenericL2capConnectionReqViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss29GenericL2capConnectionRspViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss31GenericCommandCompleteEventViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss32GenericL2capDisconnectionReqViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss32GenericL2capDisconnectionRspViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss34GenericConnectionCompleteEventViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss37GenericDisconnectionCompleteEventViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss38GenericL2capMtuConfigurationOptionViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss39GenericLEConnectionCompleteSubeventViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss40GenericNumberOfCompletedPacketsEventViewIN6emboss7support16ContiguousBufferIhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISC_OT_EE5valueEiE4typeELi0EEESG_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss41GenericL2capConfigurationOptionHeaderViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss45GenericReadBufferSizeCommandCompleteEventViewIN6emboss7support16ContiguousBufferIhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISC_OT_EE5valueEiE4typeELi0EEESG_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss49GenericLEEnhancedConnectionCompleteSubeventV1ViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss49GenericLEEnhancedConnectionCompleteSubeventV2ViewIN6emboss7support16ContiguousBufferIKhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISD_OT_EE5valueEiE4typeELi0EEESH_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss49GenericLEReadBufferSizeV1CommandCompleteEventViewIN6emboss7support16ContiguousBufferIhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISC_OT_EE5valueEiE4typeELi0EEESG_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth6emboss49GenericLEReadBufferSizeV2CommandCompleteEventViewIN6emboss7support16ContiguousBufferIhLj1ELj0EEEEELb1EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleISC_OT_EE5valueEiE4typeELi0EEESG_

NEW

+40

emboss::support::OffsetBitBlock<>::MaskInValue()

NEW

+40

pw::bluetooth::proxy::AclDataChannel::Credits::MarkCompleted()

NEW

+40

pw::bluetooth::proxy::L2capChannel::Holder::CheckUnderlyingChannel()

NEW

+40

pw::containers::internal::CheckIntrusiveContainerIsEmpty()

NEW

+40

pw::containers::internal::GenericDeque<>::emplace_back<>()

NEW

+40

pw::containers::internal::GenericIntrusiveList<>::remove_if<>()

NEW

+40

pw::internal_result::StatusOrData<>::~StatusOrData()

NEW

+40

vQueueDelete

NEW

+38

_ZNSt3__223__optional_storage_baseIN2pw9bluetooth5proxy14H4PacketWithH4ELb0EE13__assign_fromB8nn210000INS_27__optional_move_assign_baseIS4_Lb0EEEEEvOT_

NEW

+36

_ZNKSt3__211__move_implINS_17_ClassicAlgPolicyEEclB8nn210000IPN2pw9bluetooth5proxy14AclDataChannel13AclConnectionES9_S9_EENS_4pairIT_T1_EESB_T0_SC_

NEW

+36

_ZNSt3__223__optional_storage_baseIN2pw9bluetooth5proxy14AclDataChannel10SendCreditELb0EE13__assign_fromB8nn210000INS_27__optional_move_assign_baseIS5_Lb0EEEEEvOT_

NEW

+36

pw::bluetooth::proxy::(anonymous namespace)::GetLockedChannel()

NEW

+36

pw::bluetooth::proxy::L2capChannelManager::DeregisterChannel()

NEW

+36

pw::bluetooth::proxy::LockedL2capChannel::channel()

NEW

+34

_ZNSt3__213__lower_boundB8nn210000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPN2pw10containers4PairINS3_9bluetooth5proxy16AclTransportTypeENS_8optionalINS7_14AclDataChannel10SendCreditEEEEEEESF_S8_NS_10__identityEPFbRKSD_S8_EEET0_SL_T1_RKT2_RT4_RT3_

NEW

+34

_ZNSt3__28optionalIN2pw8multibuf8MultiBufEEaSB8nn210000IS3_TnNS_9enable_ifIXsr4_AndINS_17integral_constantIbXntu9__is_sameu14__remove_cvrefIT_ES4_EEEENS_7_OrImplIXaantcvbsr10_IsNotSameIS9_S3_EE5valuenesZT1_Li0EEE7_ResultINS7_IbXntu9__is_sameS9_S3_EEEENS_4_NotINS_9is_scalarIS3_EEEEEENS_16is_constructibleIS3_JS8_EEENS_13is_assignableIRS3_S8_EEEE5valueEiE4typeELi0EEERS4_OS8_

NEW

+32

_ZNSt3__28exchangeB8nn210000INS_8optionalIN2pw8multibuf8MultiBufEEERKNS_9nullopt_tEEET_RS9_OT0_

NEW

+32

__atomic_load_1

NEW

+32

__atomic_store_1

NEW

+32

__atomic_store_4

NEW

+32

emboss::support::GenericArrayView<>::IndexOperatorHelper<>::ConstructElement()

NEW

+32

pw::bluetooth::emboss::LEConnectionCompleteSubevent::EmbossReservedValidatorForConnectionHandle::ValueIsOk<>()

NEW

+32

pw::bluetooth::emboss::LEConnectionCompleteSubevent::EmbossReservedValidatorForPeripheralLatency::ValueIsOk<>()

NEW

+32

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV1::EmbossReservedValidatorForConnectionHandle::ValueIsOk<>()

NEW

+32

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV1::EmbossReservedValidatorForPeripheralLatency::ValueIsOk<>()

NEW

+32

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV2::EmbossReservedValidatorForConnectionHandle::ValueIsOk<>()

NEW

+32

pw::bluetooth::emboss::LEEnhancedConnectionCompleteSubeventV2::EmbossReservedValidatorForPeripheralLatency::ValueIsOk<>()

NEW

+32

pw::bluetooth::proxy::L2capChannel::operator=()

NEW

+32

pw::bluetooth::proxy::ProxyHost::HandleH4HciFromController()

NEW

+30

_ZNSt3__224__copy_move_unwrap_itersB8nn210000INS_11__move_implINS_17_ClassicAlgPolicyEEEPN2pw9bluetooth5proxy14AclDataChannel13AclConnectionES9_S9_TnNS_9enable_ifIXsr12__can_rewrapIT0_T2_EE5valueEiE4typeELi0EEENS_4pairISB_SC_EESB_T1_SC_

NEW

+30

pw::bluetooth::emboss::ConnectionCompleteEvent::EmbossReservedValidatorForConnectionHandle::ValueIsOk<>()

NEW

+30

pw::bluetooth::emboss::DisconnectionCompleteEvent::EmbossReservedValidatorForConnectionHandle::ValueIsOk<>()

NEW

+30

pw::bluetooth::proxy::L2capChannel::ClearQueue()

NEW

+30

pw::containers::FlatMap<>::find()

NEW

+30

pw::containers::internal::GenericDequeBase<>::PushBack()

NEW

+28

_ZNSt3__217__cxx_atomic_loadB8nn210000INS_8optionalItEEEET_PKNS_22__cxx_atomic_base_implIS3_EENS_12memory_orderE

NEW

+28

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::has_broadcast_flag()

NEW

+28

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::has_handle()

NEW

+28

pw::bluetooth::emboss::GenericAclDataFrameHeaderView<>::has_packet_boundary_flag()

NEW

+28

pw::bluetooth::proxy::AclDataChannel::AclConnection::~AclConnection()

NEW

+28

pw::bluetooth::proxy::AclDataChannel::~AclDataChannel()

NEW

+28

pw::bluetooth::proxy::H4PacketWithH4

NEW

+28

pw::bluetooth::proxy::H4PacketWithHci

NEW

+28

pw::bluetooth::proxy::L2capChannel::Holder::Holder()

NEW

+28

pw::bluetooth::proxy::L2capChannelManager::ForceDrainChannelQueues()

NEW

+28

pw::containers::FlatMap<>::IsItemKeyLessThanGivenKey()

NEW

+28

pw::containers::internal::GenericDequeBase<>::PopFront()

NEW

+26

fit::internal::inline_trivial_target_move<>()

NEW

+26

pw::bluetooth::emboss::GenericCommandHeaderView<>::opcode_bits()

NEW

+26

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::command_header()

NEW

+26

pw::bluetooth::proxy::H4PacketWithH4::GetHciSpan()

NEW

+26

pw::bluetooth::proxy::HciTransport::~HciTransport()

NEW

+26

pw::bluetooth::proxy::L2capChannel::StopAndSendEvent()

NEW

+26

std::__2::array<>::array()

NEW

+24

emboss::support::Equal<>()

NEW

+24

prvIsQueueEmpty

NEW

+24

pvTaskIncrementMutexHeldCount

NEW

+24

pw::bluetooth::emboss::AclDataFrameHeader::GenericEmbossReservedAnonymousField1View<>::broadcast_flag()

NEW

+24

pw::bluetooth::emboss::AclDataFrameHeader::GenericEmbossReservedAnonymousField1View<>::handle()

NEW

+24

pw::bluetooth::emboss::AclDataFrameHeader::GenericEmbossReservedAnonymousField1View<>::packet_boundary_flag()

NEW

+24

pw::bluetooth::emboss::GenericAclDataFrameView<>::data_total_length()

NEW

+24

pw::bluetooth::emboss::GenericAclDataFrameView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericBFrameView<>::channel_id()

NEW

+24

pw::bluetooth::emboss::GenericBFrameView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericBdAddrView<>::bd_addr()

NEW

+24

pw::bluetooth::emboss::GenericCFrameView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::command_opcode()

NEW

+24

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::command_opcode_bits()

NEW

+24

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::command_opcode_uint()

NEW

+24

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::num_hci_command_packets()

NEW

+24

pw::bluetooth::emboss::GenericCommandHeaderView<>::opcode()

NEW

+24

pw::bluetooth::emboss::GenericCommandHeaderView<>::parameter_total_size()

NEW

+24

pw::bluetooth::emboss::GenericConnectionCompleteEventView<>::bd_addr()

NEW

+24

pw::bluetooth::emboss::GenericConnectionCompleteEventView<>::connection_handle()

NEW

+24

pw::bluetooth::emboss::GenericConnectionCompleteEventView<>::encryption_enabled()

NEW

+24

pw::bluetooth::emboss::GenericConnectionCompleteEventView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericConnectionCompleteEventView<>::link_type()

NEW

+24

pw::bluetooth::emboss::GenericConnectionCompleteEventView<>::status()

NEW

+24

pw::bluetooth::emboss::GenericDisconnectionCompleteEventView<>::connection_handle()

NEW

+24

pw::bluetooth::emboss::GenericDisconnectionCompleteEventView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericDisconnectionCompleteEventView<>::reason()

NEW

+24

pw::bluetooth::emboss::GenericDisconnectionCompleteEventView<>::status()

NEW

+24

pw::bluetooth::emboss::GenericEventHeaderView<>::event_code()

NEW

+24

pw::bluetooth::emboss::GenericEventHeaderView<>::event_code_uint()

NEW

+24

pw::bluetooth::emboss::GenericEventHeaderView<>::parameter_total_size()

NEW

+24

pw::bluetooth::emboss::GenericGenericHciCommandView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericL2capConfigurationOptionHeaderView<>::option_length()

NEW

+24

pw::bluetooth::emboss::GenericL2capConfigurationOptionHeaderView<>::option_type()

NEW

+24

pw::bluetooth::emboss::GenericL2capConfigureReqView<>::command_header()

NEW

+24

pw::bluetooth::emboss::GenericL2capConfigureReqView<>::destination_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capConfigureRspView<>::command_header()

NEW

+24

pw::bluetooth::emboss::GenericL2capConfigureRspView<>::result()

NEW

+24

pw::bluetooth::emboss::GenericL2capConfigureRspView<>::source_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capConnectionReqView<>::command_header()

NEW

+24

pw::bluetooth::emboss::GenericL2capConnectionReqView<>::psm()

NEW

+24

pw::bluetooth::emboss::GenericL2capConnectionReqView<>::source_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::destination_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::result()

NEW

+24

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::source_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capDisconnectionReqView<>::command_header()

NEW

+24

pw::bluetooth::emboss::GenericL2capDisconnectionReqView<>::destination_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capDisconnectionReqView<>::source_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capDisconnectionRspView<>::command_header()

NEW

+24

pw::bluetooth::emboss::GenericL2capDisconnectionRspView<>::destination_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capDisconnectionRspView<>::source_cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capFlowControlCreditIndView<>::cid()

NEW

+24

pw::bluetooth::emboss::GenericL2capFlowControlCreditIndView<>::credits()

NEW

+24

pw::bluetooth::emboss::GenericL2capMtuConfigurationOptionView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericL2capMtuConfigurationOptionView<>::mtu()

NEW

+24

pw::bluetooth::emboss::GenericL2capSignalingCommandHeaderView<>::code()

NEW

+24

pw::bluetooth::emboss::GenericL2capSignalingCommandHeaderView<>::data_length()

NEW

+24

pw::bluetooth::emboss::GenericL2capSignalingCommandHeaderView<>::identifier()

NEW

+24

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::command_header()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::central_clock_accuracy()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::connection_handle()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::connection_interval()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::le_meta_event()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::peer_address()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::peer_address_type()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::peripheral_latency()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::role()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::status()

NEW

+24

pw::bluetooth::emboss::GenericLEConnectionCompleteSubeventView<>::supervision_timeout()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::central_clock_accuracy()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::connection_handle()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::connection_interval()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::le_meta_event()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::local_resolvable_private_address()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::peer_address()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::peer_address_type()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::peer_resolvable_private_address()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::peripheral_latency()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::role()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::status()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV1View<>::supervision_timeout()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::advertising_handle()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::central_clock_accuracy()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::connection_handle()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::connection_interval()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::le_meta_event()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::local_resolvable_private_address()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::peer_address()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::peer_address_type()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::peer_resolvable_private_address()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::peripheral_latency()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::role()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::status()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::supervision_timeout()

NEW

+24

pw::bluetooth::emboss::GenericLEEnhancedConnectionCompleteSubeventV2View<>::sync_handle()

NEW

+24

pw::bluetooth::emboss::GenericLEMetaEventView<>::header()

NEW

+24

pw::bluetooth::emboss::GenericLEMetaEventView<>::subevent_code()

NEW

+24

pw::bluetooth::emboss::GenericLEMetaEventView<>::subevent_code_enum()

NEW

+24

pw::bluetooth::emboss::GenericLEReadBufferSizeV1CommandCompleteEventView<>::le_acl_data_packet_length()

NEW

+24

pw::bluetooth::emboss::GenericLEReadBufferSizeV1CommandCompleteEventView<>::total_num_le_acl_data_packets()

NEW

+24

pw::bluetooth::emboss::GenericLEReadBufferSizeV2CommandCompleteEventView<>::le_acl_data_packet_length()

NEW

+24

pw::bluetooth::emboss::GenericLEReadBufferSizeV2CommandCompleteEventView<>::total_num_le_acl_data_packets()

NEW

+24

pw::bluetooth::emboss::GenericNumberOfCompletedPacketsEventDataView<>::connection_handle()

NEW

+24

pw::bluetooth::emboss::GenericNumberOfCompletedPacketsEventDataView<>::num_completed_packets()

NEW

+24

pw::bluetooth::emboss::GenericNumberOfCompletedPacketsEventView<>::num_handles()

NEW

+24

pw::bluetooth::emboss::GenericReadBufferSizeCommandCompleteEventView<>::total_num_acl_data_packets()

NEW

+24

pw::bluetooth::emboss::L2capFlowControlCreditInd::EmbossReservedValidatorForCredits::ValueIsOk<>()

NEW

+24

pw::bluetooth::proxy::L2capChannel::Holder::MoveFields()

NEW

+24

pw::bluetooth::proxy::L2capChannel::IsOkL2capDataLength()

NEW

+24

pw::bluetooth::proxy::L2capChannelManager::le_acl_data_packet_length()

NEW

+24

pw::bluetooth::proxy::LockedL2capChannel::LockedL2capChannel()

NEW

+24

pw::bluetooth::proxy::ProxyHost::Reset()

NEW

+24

pw::containers::internal::GenericDeque<>::EmplaceBackUnchecked<>()

NEW

+24

pw::containers::internal::GenericDeque<>::clear()

NEW

+24

pw::containers::internal::GenericIntrusiveList<>::~GenericIntrusiveList()

NEW

+24

pw::multibuf::Chunk::RemoveFromRegionList()

NEW

+22

_ZNSt3__211lower_boundB8nn210000INS_11__wrap_iterIPKN2pw10containers4PairIPhbEEEES5_PFbRS7_S5_EEET_SD_SD_RKT0_T1_

NEW

+22

_ZNSt3__211lower_boundB8nn210000INS_11__wrap_iterIPN2pw10containers4PairINS2_9bluetooth5proxy16AclTransportTypeENS_8optionalINS6_14AclDataChannel10SendCreditEEEEEEES7_PFbRKSC_S7_EEET_SJ_SJ_RKT0_T1_

NEW

+22

_ZNSt3__211lower_boundB8nn210000INS_11__wrap_iterIPN2pw10containers4PairIPhbEEEES5_PFbRKS6_S5_EEET_SD_SD_RKT0_T1_

NEW

+22

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf8MultiBufELb0EE5resetB8nn210000Ev

NEW

+22

_ZNSt3__224__optional_destruct_baseIN2pw8multibuf8MultiBufELb0EED2B8nn210000Ev

NEW

+22

_ZNSt3__224__optional_destruct_baseIN2pw9bluetooth5proxy18LockedL2capChannelELb0EE5resetB8nn210000Ev

NEW

+22

_ZNSt3__29__destroyB8nn210000IPN2pw9bluetooth5proxy14AclDataChannel13AclConnectionEEET_S7_S7_

NEW

+22

pw::bluetooth::emboss::GenericBFrameView<>::pdu_length()

NEW

+22

pw::bluetooth::emboss::GenericCFrameView<>::channel_id()

NEW

+22

pw::bluetooth::emboss::GenericCFrameView<>::pdu_length()

NEW

+22

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::data_length()

NEW

+22

pw::containers::internal::IntrusiveListItemBase<>::~IntrusiveListItemBase()

NEW

+22

pw::multibuf::MultiBufChunks::Release()

NEW

+22

pw::multibuf::MultiBufChunks::operator=()

NEW

+20

_ZNSt3__211unique_lockIN2pw4sync5MutexEED2B8nn210000Ev

NEW

+20

_ZNSt3__213__lower_boundB8nn210000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPKN2pw10containers4PairIPhbEEEESA_S6_NS_10__identityEPFbRS8_S6_EEET0_SF_T1_RKT2_RT4_RT3_

NEW

+20

_ZNSt3__213__lower_boundB8nn210000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPN2pw10containers4PairIPhbEEEES9_S6_NS_10__identityEPFbRKS7_S6_EEET0_SF_T1_RKT2_RT4_RT3_

NEW

+20

_ZNSt3__220__optional_move_baseIN2pw9bluetooth5proxy14AclDataChannel10SendCreditELb0EEC2B8nn210000EOS6_

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw9bluetooth5proxy18LockedL2capChannelELb0EED2B8nn210000Ev

NEW

+20

_ZNSt3__27destroyB8nn210000IN2pw10containers8internal13DequeIteratorINS3_20BasicInlineDequeImplINS1_8multibuf8MultiBufENS3_16CountAndCapacityItEELj4294967295EEEEEEEvT_SC_

NEW

+20

pw::bluetooth::proxy::L2capChannel::Holder

NEW

+20

pw::bluetooth::proxy::L2capChannelManager::ReportNewTxPacketsOrCredits()

NEW

+20

pw::bluetooth::proxy::SingleChannelProxy::HandleUnderlyingChannelEvent()

NEW

+20

pw::containers::FlatMap<>::lower_bound()

NEW

+20

pw::multibuf::MultiBuf::const_iterator::AdvanceToData()

NEW

+20

pw::multibuf::MultiBufChunks::size_bytes()

NEW

+20

pw::multibuf::OwnedChunk::Release()

NEW

+18

_ZNSt3__224__optional_destruct_baseIN2pw9bluetooth5proxy14AclDataChannel10SendCreditELb0EE5resetB8nn210000Ev

NEW

+18

_ZNSt3__224__optional_destruct_baseIN2pw9bluetooth5proxy14H4PacketWithH4ELb0EE5resetB8nn210000Ev

NEW

+18

_ZNSt3__24moveB8nn210000IPN2pw9bluetooth5proxy14AclDataChannel13AclConnectionES6_EET0_T_S8_S7_

NEW

+18

pw::Vector<>::operator=()

NEW

+18

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::SizeInBytes()

NEW

+18

pw::bluetooth::proxy::L2capStatusTracker::~L2capStatusTracker()

NEW

+18

pw::containers::FlatMap<>::contains()

NEW

+18

pw::containers::internal::GenericDeque<>::at()

NEW

+18

pw::multibuf::MultiBuf::ClaimPrefix()

NEW

+18

pw::multibuf::MultiBuf::IsContiguous()

NEW

+16

_ZN2pw6ResultINS_9bluetooth5proxy14H4PacketWithH4EEC2IS3_TnNSt3__29enable_ifIXsr3std11conjunctionINS6_11disjunctionIJNS6_7is_sameIS3_u11__remove_cvIu20__remove_reference_tIOT_EEEENS6_8negationINS8_IJNS9_IS4_SD_EENS9_INS_6StatusESD_EENS9_INS6_10in_place_tESD_EENS_15internal_result31IsDirectInitializationAmbiguousIS3_SB_EEEEEEEEEENS6_16is_constructibleIS3_JSB_EEENS6_14is_convertibleISB_S3_EENS8_IJNS9_Iu11__remove_cvIu20__remove_reference_tISA_EES3_EENS6_11conjunctionIJNSF_INST_ISB_SH_EEEENSF_INSL_29HasConversionOperatorToResultIS3_SB_vEEEEEEEEEEEE5valueEiE4typeELi0EEESB_

NEW

+16

_ZNKSt3__213__atomic_baseINS_8optionalItEELb0EEcvS2_B8nn210000Ev

NEW

+16

_ZNSt3__28__fill_nB8nn210000IPhiiEET_S2_T0_RKT1_

NEW

+16

_ZNSt3__28exchangeB8nn210000INS_8optionalIN2pw9bluetooth5proxy14AclDataChannel10SendCreditEEERKNS_9nullopt_tEEET_RSB_OT0_

NEW

+16

emboss::support::GenericArrayView<>::Ok()

NEW

+16

emboss::support::GenericArrayView<>::operator[]()

NEW

+16

pw::bluetooth::emboss::GenericAclDataFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Ok()

NEW

+16

pw::bluetooth::emboss::GenericBFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Ok()

NEW

+16

pw::bluetooth::emboss::GenericCFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Ok()

NEW

+16

pw::bluetooth::emboss::GenericCommandCompleteEventView<>::EmbossReservedVirtualReturnParametersSizeView::Ok()

NEW

+16

pw::bluetooth::emboss::GenericGenericHciCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Ok()

NEW

+16

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Ok()

NEW

+16

pw::bluetooth::emboss::GenericL2capConnectionRspView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead()

NEW

+16

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Ok()

NEW

+16

pw::bluetooth::emboss::GenericNumberOfCompletedPacketsEventView<>::EmbossReservedVirtualDataLengthView::Ok()

NEW

+16

pw::bluetooth::proxy::AclDataChannel::SendCredit::SendCredit()

NEW

+16

pw::bluetooth::proxy::ChannelProxy

NEW

+16

pw::bluetooth::proxy::H4PacketWithH4::GetH4Type()

NEW

+16

pw::bluetooth::proxy::L2capChannel::EndRecombinationBuf()

NEW

+16

pw::bluetooth::proxy::L2capChannel::Holder::SetUnderlyingChannel()

NEW

+16

pw::bluetooth::proxy::L2capChannelManager::DeliverPendingEvents()

NEW

+16

pw::bluetooth::proxy::L2capChannelManager::HandleConfigurationChanged()

NEW

+16

pw::bluetooth::proxy::L2capChannelManager::HandleConnectionComplete()

NEW

+16

pw::bluetooth::proxy::SingleChannelProxy::StopUnderlyingChannelWithEvent()

NEW

+16

pw::containers::Pair<>::Pair()

NEW

+16

pw::containers::Pair<>::operator=()

NEW

+16

pw::multibuf::MultiBuf::begin()

NEW

+14

_ZNKSt3__213__atomic_baseINS_8optionalItEELb0EE4loadB8nn210000ENS_12memory_orderE

NEW

+14

_ZNSt3__223__optional_storage_baseIN2pw9bluetooth5proxy14AclDataChannel10SendCreditELb0EE16__construct_fromB8nn210000INS_20__optional_move_baseIS5_Lb0EEEEEvOT_

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw9bluetooth5proxy14AclDataChannel10SendCreditELb0EED2B8nn210000Ev

NEW

+14

_ZNSt3__224__optional_destruct_baseIN2pw9bluetooth5proxy14H4PacketWithH4ELb0EED2B8nn210000Ev

NEW

+14

pw::bluetooth::emboss::GenericAclDataFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead()

NEW

+14

pw::bluetooth::emboss::GenericBFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead()

NEW

+14

pw::bluetooth::emboss::GenericCFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead()

NEW

+14

pw::bluetooth::emboss::GenericGenericHciCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead()

NEW

+14

pw::bluetooth::emboss::GenericL2capSignalingCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead()

NEW

+14

pw::bluetooth::emboss::GenericNumberOfCompletedPacketsEventView<>::EmbossReservedVirtualDataLengthView::UncheckedRead()

NEW

+14

pw::containers::internal::GenericIntrusiveList<>::remove()

NEW

+14

pw::multibuf::MultiBuf::iterator::end()

NEW

+12

_ZNSt3__223__optional_storage_baseIN2pw9bluetooth5proxy14AclDataChannel10SendCreditELb0EE11__constructB8nn210000IJS5_EEEvDpOT_

NEW

+12

_ZNSt3__223__optional_storage_baseIN2pw9bluetooth5proxy14H4PacketWithH4ELb0EE11__constructB8nn210000IJS4_EEEvDpOT_

NEW

+12

_ZNSt3__227__throw_bad_optional_accessB8nn210000Ev

NEW

+12

_ZNSt3__24fillB8nn210000IPhiEEvT_S2_RKT0_

NEW

+12

_ZNSt3__28optionalIN2pw9bluetooth5proxy14AclDataChannel10SendCreditEEC2B8nn210000IS5_TnNS_9enable_ifIXclsr22_CheckOptionalArgsCtorIT_EE17__enable_implicitIS9_EEEiE4typeELi0EEEOS9_

NEW

+12

_ZNSt3__28optionalIN2pw9bluetooth5proxy14H4PacketWithH4EEC2B8nn210000IS4_TnNS_9enable_ifIXclsr22_CheckOptionalArgsCtorIT_EE17__enable_implicitIS8_EEEiE4typeELi0EEEOS8_

NEW

+12

_ZNSt3__28optionalIN2pw9bluetooth5proxy18LockedL2capChannelEEC2B8nn210000IS4_TnNS_9enable_ifIXclsr22_CheckOptionalArgsCtorIT_EE17__enable_implicitIS8_EEEiE4typeELi0EEEOS8_

NEW

+12

pw::IntrusiveForwardList<>::pop_front()

NEW

+12

pw::bluetooth::emboss::GenericOpCodeBitsView<>::ocf()

NEW

+12

pw::bluetooth::emboss::GenericOpCodeBitsView<>::ogf()

NEW

+12

pw::bluetooth::proxy::H4PacketWithH4::SetH4Type()

NEW

+12

pw::bluetooth::proxy::L2capChannel::PayloadQueueEmpty()

NEW

+12

pw::bluetooth::proxy::L2capChannel::ReportNewTxPacketsOrCredits()

NEW

+12

pw::bluetooth::proxy::L2capChannel::SendPayloadFromControllerToClient()

NEW

+12

pw::bluetooth::proxy::L2capChannel::SendPayloadFromHostToClient()

NEW

+12

pw::containers::internal::DequeIterator<>::operator*()

NEW

+12

pw::multibuf::Chunk::DiscardPrefix()

NEW

+12

pw::multibuf::Chunk::Truncate()

NEW

+12

pw::multibuf::MultiBuf::CopyFrom()

NEW

+10

pw::bluetooth::proxy::H4PacketWithHci::GetHciSpan()

NEW

+10

pw::bluetooth::proxy::H4PacketWithHci::~H4PacketWithHci()

NEW

+10

std::__2::__libcpp_verbose_abort()

NEW

+8

pw::bluetooth::proxy::L2capChannel::PopulateTxL2capPacket()

NEW

+8

pw::bluetooth::proxy::L2capChannelManager::GetH4BuffSize()

NEW

+6

pw::bluetooth::proxy::L2capChannel::Holder::~Holder()

NEW

+4

pw::bluetooth::proxy::H4PacketWithHci::GetH4Type()

NEW

+4

pw::bluetooth::proxy::H4PacketWithHci::SetH4Type()

NEW

+4

std::__2::nullopt

NEW

+2

__cxa_pure_virtual

NEW

+2

fit::internal::inline_target_get()

NEW

+2

pw::bluetooth::proxy::BasicL2capChannel::DoClose()

NEW

+2

pw::bluetooth::proxy::H4PacketInterface::~H4PacketInterface()

+65,256

RAM

NEW

+80

xQueueRegistry

+80

Roadmap#

  • ACL flow control

  • Sending GATT notifications

  • CMake support

  • Receiving GATT notifications

  • Taking ownership of a L2CAP channel

  • Bazel support

  • And more…