pw_bluetooth_proxy#

Lightweight proxy for augmenting Bluetooth functionality

Unstable C++

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,
                              &allocator);

  // 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

Get started
API Reference

Reference information about the API

API reference
Roadmap

Upcoming plans

Roadmap
Code size analysis

Understand code footprint and savings potential

Code size analysis

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:

Module configuration#

This module has configuration options that globally affect the behavior of the pw::bluetooth::proxy::ProxyHost via compile-time configuration. See the module documentation for more details.

Module configuration options include:

Clock Facade#

This module uses a facade for time-related operations to allow overriding the clock implementation. By default, the facade uses pw::chrono::SystemClock and is backed by pw::async2::GetSystemTimeProvider().

To override the backend, set the appropriate variable in your build system: - GN: pw_bluetooth_proxy_CLOCK_BACKEND - CMake: pw_bluetooth_proxy.clock_BACKEND - Bazel: Use the clock_backend label flag.

HCI Event Filtering#

ProxyHost supports runtime configuration of HCI event and LE Meta subevent filtering. This allows the container to block specific events from reaching the host.

By default, no events are blocked.

To block or unblock an event, use: - pw::bluetooth::proxy::ProxyHost::SetEventBlocked() - pw::bluetooth::proxy::ProxyHost::SetLeSubeventBlocked()

To query the block status of an event, use: - pw::bluetooth::proxy::ProxyHost::IsEventBlocked() - pw::bluetooth::proxy::ProxyHost::IsLeSubeventBlocked()

To reset all filters (unblock all events), use: - pw::bluetooth::proxy::ProxyHost::ResetFilters()

Note

Blocking the parent LE_META_EVENT will block all LE Meta subevents, regardless of their individual block status.

Note

Resetting the proxy via pw::bluetooth::proxy::ProxyHost::Reset() does not reset the filters. To reset filters, you must explicitly call pw::bluetooth::proxy::ProxyHost::ResetFilters().

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

+29,176

[section .rodata]

+24

[section .text]

+320

pw::Result<>::value()

+4

vPortSVCHandler_C

+86

pw::string::FormatVaList()

+144

pw::containers::internal::OptionalData<>::OptionalData()

+2

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

-16

__pre_init_runtime_init_per_core_irq_priorities

-4

__bi_84

-2

pw::containers::internal::IntrusiveForwardListItem::DoGetPrevious()

+252

main

+2

operator delete()

NEW

+2,200

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

NEW

+1,620

pw::bluetooth::proxy::internal::L2capLogicalLink::HandleAclData()

NEW

+1,046

pw::bluetooth::MakeEmbossView<>()

NEW

+956

std::__2::__variant_detail::__visitation::__base::__dispatcher<>::__dispatch[abi:nqn240000]<>()

NEW

+840

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

NEW

+788

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine::GenerateNextPacket()

NEW

+706

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

NEW

+684

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::DrainChannelQueuesIfNewTx()

NEW

+648

pw::bluetooth::proxy::internal::CreditBasedFlowControlRxEngine::HandlePduFromController()

NEW

+588

std::__2::__variant_detail::__assignment<>::__emplace[abi:nqn240000]<>()

NEW

+550

__llvm_libc_24_0_0_git::FreeListHeap::shrink_in_place()

NEW

+548

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

NEW

+544

__llvm_libc_24_0_0_git::FreeListHeap::allocate_impl()

NEW

+536

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

NEW

+520

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

NEW

+500

pw::bluetooth::proxy::internal::BasicModeTxEngine::GenerateNextPacket()

NEW

+472

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

NEW

+444

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

NEW

+444

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

NEW

+440

pw::DynamicMap<>::TryEmplaceImpl<>()

NEW

+432

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

NEW

+432

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

NEW

+412

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

NEW

+412

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

NEW

+408

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

NEW

+400

__llvm_libc_24_0_0_git::FreeStore::remove_best_fit()

NEW

+398

std::__2::pair<>::pair[abi:nqn240000]<>()

NEW

+396

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

NEW

+396

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

NEW

+378

__llvm_libc_24_0_0_git::BlockRef::allocate()

NEW

+376

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

NEW

+376

pw::containers::internal::KeyedAATree<>::InsertImpl()

NEW

+374

std::__2::__variant_detail::__dtor<>::__destroy[abi:nqn240000]()

NEW

+372

std::__2::__variant_detail::__assignment<>::__assign_alt[abi:nqn240000]<>()

NEW

+372

xQueueSemaphoreTake

NEW

+364

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

NEW

+362

pw::Allocator::New<>()

NEW

+344

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

NEW

+344

xTaskGenericNotifyFromISR

NEW

+336

pw::multibuf::v1::SimpleAllocator::DoAllocate()

NEW

+332

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

NEW

+328

__subsf3

NEW

+328

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

NEW

+320

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

NEW

+314

__llvm_libc_24_0_0_git::FreeListHeap::init()

NEW

+308

pw::IntrusiveMap<>::IntrusiveMap<>()

NEW

+304

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

NEW

+300

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

NEW

+292

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

NEW

+288

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

NEW

+288

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

NEW

+288

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

NEW

+288

xTaskGenericNotify

NEW

+280

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

NEW

+280

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

NEW

+268

std::__2::__variant_detail::__assignment<>::__generic_assign[abi:nqn240000]<>()

NEW

+256

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

NEW

+252

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

NEW

+252

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

NEW

+240

__aeabi_fadd

NEW

+240

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

NEW

+240

pw::containers::internal::AATree<>::AATree()

NEW

+238

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

NEW

+236

__aeabi_fmul

NEW

+232

__llvm_libc_24_0_0_git::inline_memcpy()

NEW

+228

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

NEW

+226

pw::bluetooth::proxy::L2capChannelManager::CreateChannel<>()

NEW

+216

pw::multibuf::v1::SimpleAllocator::DoAllocate()::$_0::operator()()

NEW

+212

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

NEW

+210

pw::DynamicMap<>::Node::Node<>()

NEW

+208

xTaskGenericNotifyWait

NEW

+204

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

NEW

+196

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

NEW

+196

pw::containers::internal::KeyedAATree<>::insert()

NEW

+192

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

NEW

+192

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

NEW

+192

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

NEW

+192

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

NEW

+188

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

NEW

+184

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

NEW

+184

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

NEW

+184

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

NEW

+184

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

NEW

+184

pw::containers::internal::AATreeItem::Rebalance()

NEW

+180

pw::Deallocator::DeleteArray<>()

NEW

+180

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

NEW

+176

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

NEW

+176

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

NEW

+176

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

NEW

+176

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

NEW

+176

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

NEW

+174

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

NEW

+172

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

NEW

+172

pw::bluetooth::proxy::internal::L2capChannelImpl::DequeuePacket()

NEW

+172

pw::containers::internal::KeyedAATree<>::find()

NEW

+170

pw::containers::internal::KeyedAATree<>::GetLowerBoundImpl()

NEW

+168

__cmpsf2

NEW

+168

__gesf2

NEW

+168

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

NEW

+168

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

NEW

+168

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

NEW

+168

pw::multibuf::v1::SimpleAllocator::InternalAllocateContiguous()::$_0::operator()()

NEW

+168

vTaskPriorityDisinheritAfterTimeout

NEW

+164

pw::UniquePtr<>::Reset()

NEW

+162

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

NEW

+156

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

NEW

+156

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

NEW

+156

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

NEW

+156

pw::sync::ThreadNotification::acquire()

NEW

+154

__llvm_libc_24_0_0_git::FreeListHeap::realloc()

NEW

+152

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

NEW

+152

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

NEW

+152

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

NEW

+152

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

NEW

+150

std::__2::__variant_detail::__assignment<>::__generic_assign[abi:nqn240000]<>()::{lambda()#1}::operator()[abi:nqn240000]<>()

NEW

+144

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

NEW

+144

pw::containers::internal::AATreeIterator<>::operator++()

NEW

+140

pw::DynamicMap<>::insert()

NEW

+140

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

NEW

+140

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

NEW

+140

std::__2::__throw_if_valueless[abi:nqn240000]<>()

NEW

+140

xTaskPriorityInherit

NEW

+138

pw::DynamicMap<>::clear()

NEW

+138

pw::containers::internal::AATreeItem::Unmap()

NEW

+136

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

NEW

+136

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

NEW

+136

pw::DynamicDeque<>::ReallocateBuffer()

NEW

+136

pw::DynamicMap<>::erase()

NEW

+132

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

NEW

+132

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

NEW

+130

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

NEW

+130

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

NEW

+128

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

NEW

+128

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

NEW

+128

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

NEW

+124

pw::DynamicMap<>::erase<>()

NEW

+124

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

NEW

+124

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

NEW

+124

pw::bluetooth::proxy::internal::L2capChannelImpl::Write()

NEW

+122

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

NEW

+122

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

NEW

+120

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

NEW

+120

pw::multibuf::v1::SimpleAllocator::InternalAllocateContiguous()

NEW

+120

pw::multibuf::v1::SimpleAllocator::SimpleAllocator()

NEW

+116

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

NEW

+116

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

NEW

+116

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

NEW

+116

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

NEW

+116

std::__2::__optional_storage_base<>::__assign_from[abi:nqn240000]<>()

NEW

+112

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

NEW

+112

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

NEW

+112

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

NEW

+112

pw::containers::internal::KeyedAATree<>::KeyedAATree()

NEW

+112

std::__2::destroy_n[abi:nqn240000]<>()

NEW

+110

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

NEW

+108

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

NEW

+108

pw::bluetooth::emboss::GenericFirstKFrameView<>::EmbossReservedVirtualPayloadSizeView::MaybeRead()

NEW

+108

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

NEW

+108

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

NEW

+108

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::OnDeregister()

NEW

+108

pw::bluetooth::proxy::internal::L2capLogicalLink::L2capLogicalLink()

NEW

+106

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

NEW

+106

pw::multibuf::v1::MultiBuf::CopyTo()

NEW

+104

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

NEW

+104

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

NEW

+104

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

NEW

+104

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

NEW

+104

pw::bluetooth::proxy::internal::CopyPacketFrom<>()

NEW

+104

pw::bluetooth::proxy::internal::L2capChannelImpl::SendEvent()

NEW

+104

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

NEW

+104

pw::sync::ThreadNotification::release()

NEW

+102

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

NEW

+100

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

NEW

+100

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

NEW

+100

std::__2::__libcpp_verbose_abort()

NEW

+98

pw::IntrusiveMap<>::insert()

NEW

+98

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

NEW

+98

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

NEW

+98

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

NEW

+96

__compiler_rt_fnorm2

NEW

+96

ceilf

NEW

+96

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

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::proxy::L2capChannelManager::FindChannelByLocalCid()

NEW

+96

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

NEW

+96

pw::bluetooth::proxy::internal::BasicModeTxEngine::HandlePduFromHost()

NEW

+96

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

NEW

+94

pw::bluetooth::proxy::internal::BorrowedL2capChannel::BorrowedL2capChannel()

NEW

+94

pw::multibuf::v1::SimpleAllocator::InsertRegion()

NEW

+92

__aeabi_ui2f

NEW

+92

__compiler_rt_funder

NEW

+92

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

NEW

+92

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

NEW

+92

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

NEW

+92

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

NEW

+92

pw::bluetooth::proxy::internal::BasicModeRxEngine::HandlePduFromController()

NEW

+92

pw::bluetooth::proxy::internal::BorrowedL2capChannel::~BorrowedL2capChannel()

NEW

+92

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

NEW

+90

pw::containers::internal::AATreeItem::Split()

NEW

+90

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

NEW

+90

pw::multibuf::v1::MultiBufAllocator::MoreMemoryAvailable()

NEW

+90

pw::multibuf::v1::SimpleAllocator::GetAvailableMemorySize()

NEW

+88

pw::DynamicMap<>::begin()

NEW

+88

pw::DynamicMap<>::end()

NEW

+88

pw::DynamicMap<>::find()

NEW

+88

pw::IntrusiveMap<>::erase()

NEW

+88

pw::IntrusiveMap<>::find()

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+88

std::__2::__optional_destruct_base<>::~__optional_destruct_base[abi:nqn240000]()

NEW

+86

std::__2::__variant_detail::__alt<>::__alt[abi:nqn240000]<>()

NEW

+84

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

NEW

+84

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

NEW

+84

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

NEW

+84

pw::bluetooth::proxy::internal::L2capLogicalLink::~L2capLogicalLink()

NEW

+84

pw::containers::internal::OptionalData<>::Clear()

NEW

+84

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

NEW

+80

__aeabi_frsub

NEW

+80

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

NEW

+80

pw::IntrusiveMap<>::begin()

NEW

+80

pw::IntrusiveMap<>::end()

NEW

+80

pw::containers::internal::OptionalData<>::AssignState()

NEW

+80

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

NEW

+80

std::__2::__optional_destruct_base<>::reset[abi:nqn240000]()

NEW

+80

xTaskGenericNotifyStateClear

NEW

+78

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

NEW

+78

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::Write()

NEW

+76

pw::Vector<>::erase()

NEW

+76

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

NEW

+76

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

NEW

+76

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

NEW

+74

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

NEW

+74

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

NEW

+74

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

NEW

+74

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

NEW

+74

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

NEW

+72

pw::DynamicMap<>::~DynamicMap()

NEW

+72

pw::allocator::internal::ManagedPtr<>::operator->()

NEW

+72

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

NEW

+72

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

NEW

+72

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

NEW

+72

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

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::internal::CreditBasedFlowControlRxEngine::CreditBasedFlowControlRxEngine()

NEW

+72

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine::AddCredits()

NEW

+72

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::BorrowL2capChannel()

NEW

+72

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::~L2capChannelManagerImpl()

NEW

+72

vQueueUnregisterQueue

NEW

+70

pw::DynamicDeque<>::IncreaseCapacity()

NEW

+70

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

NEW

+70

pw::bluetooth::proxy::internal::ChannelProxyImpl::DoCheckWriteParameter()

NEW

+70

pw::multibuf::v1::ChunkRegionTracker::CreateFirstChunk()

NEW

+70

pw::multibuf::v1::internal::LinkedRegionTracker::~LinkedRegionTracker()

NEW

+70

std::__2::__destroy[abi:nqn240000]<>()

NEW

+68

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

NEW

+68

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

NEW

+68

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

NEW

+68

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

NEW

+68

pw::bluetooth::proxy::internal::BasicModeTxEngine::CheckWriteParameter()

NEW

+68

pw::containers::internal::AATreeItem::Skew()

NEW

+68

pw::containers::internal::KeyedAATree<>::lower_bound()

NEW

+66

pw::DynamicDeque<>::try_reserve()

NEW

+66

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

NEW

+66

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

NEW

+66

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::SendAdditionalRxCredits()

NEW

+66

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

NEW

+66

pw::multibuf::v1::internal::LinkedRegionTracker::Destroy()

NEW

+64

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

NEW

+64

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

NEW

+64

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine::CheckWriteParameter()

NEW

+64

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::IsWriteAvailable()

NEW

+64

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

NEW

+64

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

NEW

+64

std::__2::optional<>::operator=[abi:nqn240000]<>()

NEW

+62

pw::DynamicMap<>::take<>()

NEW

+62

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

NEW

+62

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

NEW

+62

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

NEW

+62

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

NEW

+62

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

NEW

+60

__compiler_rt_fnan2

NEW

+60

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

NEW

+60

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

NEW

+60

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

NEW

+60

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

NEW

+60

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

NEW

+60

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

NEW

+60

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

NEW

+58

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

NEW

+58

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

NEW

+58

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

NEW

+58

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

NEW

+58

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

NEW

+58

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

NEW

+58

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

NEW

+58

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

NEW

+58

std::__2::__lower_bound_bisecting[abi:nqn240000]<>()

NEW

+56

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

NEW

+56

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

NEW

+56

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

NEW

+56

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

NEW

+56

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

NEW

+56

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

NEW

+56

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

NEW

+56

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

NEW

+56

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

NEW

+56

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::Start()

NEW

+56

pw::bluetooth::proxy::internal::L2capChannelImpl::Close()

NEW

+56

pw::bluetooth::proxy::internal::L2capChannelImpl::IsWriteAvailable()

NEW

+56

pw::containers::internal::GenericAATree::erase_one()

NEW

+56

std::__2::unique_lock<>::lock[abi:nqn240000]()

NEW

+54

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

NEW

+54

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

NEW

+54

pw::multibuf::v1::SimpleAllocator::~SimpleAllocator()

NEW

+52

emboss::support::Or<>()

NEW

+52

pw::InlineBasicString<>::SetSizeAndTerminate()

NEW

+52

pw::allocator::Hardening::Multiply<>()

NEW

+52

pw::bluetooth::emboss::GenericFirstKFrameView<>::EmbossReservedVirtualPayloadSizeView::Read()

NEW

+52

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

NEW

+52

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

NEW

+52

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

NEW

+52

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

NEW

+52

pw::bluetooth::proxy::internal::ChannelProxyImpl

NEW

+52

pw::bluetooth::proxy::internal::ChannelProxyImpl::~ChannelProxyImpl()

NEW

+52

pw::bluetooth::proxy::internal::GenericL2capChannel::Write()

NEW

+52

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::~GenericL2capChannelImpl()

NEW

+52

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::OnDeletion()

NEW

+52

pw::containers::internal::AATreeItem::IsMapped()

NEW

+52

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

NEW

+52

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

NEW

+52

pw::multibuf::v1::MultiBufChunks::push_front()

NEW

+52

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

NEW

+52

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

NEW

+50

pw::Deallocator::Delete<>()

NEW

+50

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

NEW

+50

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

NEW

+50

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::OnRegister()

NEW

+48

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

NEW

+48

pw::Result<>::Result<>()

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

pw::bluetooth::emboss::GenericFirstKFrameView<>::sdu_length()

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

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

NEW

+48

pw::bluetooth::proxy::internal::ChannelProxyImpl::ChannelProxyImpl()

NEW

+48

pw::bluetooth::proxy::internal::CreditBasedFlowControlRxEngine::AddRxCredits()

NEW

+48

std::__2::exchange[abi:nqn240000]<>()

NEW

+46

emboss::support::And<>()

NEW

+46

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

NEW

+46

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

NEW

+46

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

NEW

+46

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::L2capChannelManagerImpl()

NEW

+44

pw::PackedPtr<>::set()

NEW

+44

pw::PackedPtr<>::set_packed_value()

NEW

+44

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

NEW

+44

pw::allocator::Layout::Of<>()

NEW

+44

pw::allocator::LibCAllocator

NEW

+44

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

NEW

+44

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

NEW

+44

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

NEW

+44

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

NEW

+44

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

NEW

+44

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

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::Credits::MarkPending()

NEW

+44

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

NEW

+44

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

NEW

+44

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

NEW

+44

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

NEW

+44

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

NEW

+44

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine::CreditBasedFlowControlTxEngine()

NEW

+44

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::GenericL2capChannelImpl()

NEW

+44

pw::bluetooth::proxy::internal::L2capChannelImpl::IsStale()

NEW

+44

pw::bluetooth::proxy::internal::L2capChannelImpl::L2capChannelImpl()

NEW

+44

pw::containers::internal::GenericAATree::end()

NEW

+42

pw::InlineBasicString<>::InlineBasicString()

NEW

+42

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

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::bluetooth::proxy::L2capSignalingChannel::GetNextIdentifierAndIncrement()

NEW

+42

pw::bluetooth::proxy::internal::L2capChannelImpl::BlockWhileBorrowed()

NEW

+42

pw::containers::internal::AATreeItem::GetPredecessor()

NEW

+42

pw::containers::internal::AATreeItem::GetSuccessor()

NEW

+40

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

NEW

+40

pw::UniquePtr<>::UniquePtr<>()

NEW

+40

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

NEW

+40

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

NEW

+40

pw::bluetooth::proxy::H4PacketInterface::Reset()

NEW

+40

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

NEW

+40

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

NEW

+40

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

NEW

+40

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine::MaxBasicL2capPayloadSize()

NEW

+40

pw::bluetooth::proxy::internal::GenericL2capChannel::GenericL2capChannel()

NEW

+40

pw::containers::internal::AATreeItem::SetLevel()

NEW

+40

pw::containers::internal::AATreeItem::~AATreeItem()

NEW

+40

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

NEW

+40

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

NEW

+40

pw::multibuf::v1::MultiBufAllocator::~MultiBufAllocator()

NEW

+40

pw::string_impl::CheckedCastToSize<>()

NEW

+40

std::__2::__optional_move_base<>::__optional_move_base[abi:nqn240000]()

NEW

+40

vQueueDelete

NEW

+38

pw::DynamicMap<>::Node::~Node()

NEW

+38

pw::bluetooth::proxy::internal::CreditBasedFlowControlRxEngine::~CreditBasedFlowControlRxEngine()

NEW

+38

pw::containers::internal::AATreeItem::Replace()

NEW

+38

std::__2::optional<>::optional[abi:nqn240000]<>()

NEW

+36

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

NEW

+36

pw::allocator::internal::ManagedPtr<>::operator*()

NEW

+36

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

NEW

+36

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

NEW

+36

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

NEW

+36

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

NEW

+36

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

NEW

+36

pw::multibuf::v1::internal::LinkedRegionTracker::LinkedRegionTracker()

NEW

+36

std::__2::unique_lock<>::unlock[abi:nqn240000]()

NEW

+34

pw::Vector<>::clear()

NEW

+34

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

NEW

+34

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

NEW

+34

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

NEW

+34

std::__2::__lower_bound[abi:nqn240000]<>()

NEW

+34

std::__2::__uninitialized_move[abi:nqn240000]<>()

NEW

+32

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

NEW

+32

fit::internal::make_the_call<>()::{lambda()#1}::operator()()

NEW

+32

pw::IntrusiveMap<>::IntrusiveMap()

NEW

+32

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

NEW

+32

pw::bluetooth::emboss::GenericFirstKFrameView<>::EmbossReservedVirtualPayloadSizeView::Ok()

NEW

+32

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

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::AclDataChannel::HandleConnectionCompleteEvent()

NEW

+32

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

NEW

+32

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

NEW

+32

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

NEW

+32

pw::bluetooth::proxy::internal::BasicModeTxEngine

NEW

+32

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine

NEW

+32

pw::multibuf::v1::ChunkRegionTracker

NEW

+32

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

NEW

+32

pw::multibuf::v1::MultiBufAllocator::MultiBufAllocator()

NEW

+32

pw::multibuf::v1::internal::LinkedRegionTracker

NEW

+32

std::__2::__generic_get[abi:nqn240000]<>()

NEW

+32

std::__2::__move_impl<>::operator()[abi:nqn240000]<>()

NEW

+32

std::__2::bitset<>::test[abi:nqn240000]()

NEW

+30

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

NEW

+30

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

NEW

+30

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

NEW

+30

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

NEW

+30

pw::bluetooth::proxy::internal::GenericL2capChannel::~GenericL2capChannel()

NEW

+30

pw::containers::internal::AATreeItem::SetRight()

NEW

+30

std::__2::__optional_storage_base<>::__construct_from[abi:nqn240000]<>()

NEW

+28

pw::DynamicDeque<>::swap()

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::emboss::GenericFirstKFrameView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead()

NEW

+28

pw::bluetooth::emboss::GenericFirstKFrameView<>::EmbossReservedVirtualPayloadSizeView::UncheckedRead()

NEW

+28

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

NEW

+28

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

NEW

+28

pw::bluetooth::proxy::ChannelProxy

NEW

+28

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

NEW

+28

pw::bluetooth::proxy::internal::BasicModeRxEngine

NEW

+28

pw::bluetooth::proxy::internal::CreditBasedFlowControlRxEngine

NEW

+28

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::ReportNewTxPacketsOrCredits()

NEW

+28

pw::containers::internal::AATreeItem::SetLeft()

NEW

+28

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

NEW

+28

pw::multibuf::v1::ChunkRegionTracker::~ChunkRegionTracker()

NEW

+28

std::__2::__copy_move_unwrap_iters[abi:nqn240000]<>()

NEW

+26

pw::DynamicDeque<>::~DynamicDeque()

NEW

+26

pw::DynamicMap<>::take()

NEW

+26

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

NEW

+26

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

NEW

+26

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

NEW

+26

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

NEW

+26

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

NEW

+26

pw::containers::internal::GenericAATree::begin()

NEW

+26

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

NEW

+26

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

NEW

+24

__aeabi_uidivmod

NEW

+24

__aeabi_uread4

NEW

+24

emboss::support::Equal<>()

NEW

+24

malloc

NEW

+24

prvIsQueueEmpty

NEW

+24

pw::Allocator::Resize()

NEW

+24

pw::IntrusiveMap<>::lower_bound()

NEW

+24

pw::allocator::internal::ManagedPtr<>::Destroy()

NEW

+24

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

NEW

+24

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

NEW

+24

pw::bluetooth::emboss::AclDataFrameHeader::GenericEmbossReservedAnonymousField4View<>::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<>::header()

NEW

+24

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

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<>::opcode_bits()

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::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<>::command_header()

NEW

+24

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

NEW

+24

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

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<>::acl_data_packet_length()

NEW

+24

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

NEW

+24

pw::bluetooth::emboss::ReadBufferSizeCommandCompleteEvent::EmbossReservedValidatorForAclDataPacketLength::ValueIsOk<>()

NEW

+24

pw::bluetooth::proxy::H4PacketInterface

NEW

+24

pw::bluetooth::proxy::H4PacketWithH4

NEW

+24

pw::bluetooth::proxy::H4PacketWithHci

NEW

+24

pw::bluetooth::proxy::L2capChannel

NEW

+24

pw::bluetooth::proxy::L2capChannelManager

NEW

+24

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

NEW

+24

pw::bluetooth::proxy::ProxyHost

NEW

+24

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

NEW

+24

pw::bluetooth::proxy::internal::L2capChannelImpl::PayloadQueueEmpty()

NEW

+24

pw::containers::internal::AATreeItem::GetLevel()

NEW

+24

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

NEW

+24

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

NEW

+24

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

NEW

+24

pw::containers::internal::OptionalData<>::Assign<>()

NEW

+24

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

NEW

+24

pw::multibuf::v1::ChunkRegionTracker::ChunkRegionTracker()

NEW

+24

pw::multibuf::v1::MultiBufAllocator

NEW

+24

pw::multibuf::v1::SimpleAllocator

NEW

+24

realloc

NEW

+24

std::__2::__optional_storage_base<>::__construct[abi:nqn240000]<>()

NEW

+22

fit::internal::inline_trivial_target_move<>()

NEW

+22

pw::DynamicMap<>::lower_bound()

NEW

+22

pw::allocator::LibCAllocator::DoReallocate()

NEW

+22

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

NEW

+22

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

NEW

+22

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

NEW

+22

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

NEW

+22

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

NEW

+22

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

NEW

+22

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

NEW

+22

std::__2::lower_bound[abi:nqn240000]<>()

NEW

+20

__aeabi_fcmpeq

NEW

+20

__aeabi_fcmpge

NEW

+20

__aeabi_fcmpgt

NEW

+20

__aeabi_fcmple

NEW

+20

__aeabi_fcmplt

NEW

+20

pvTaskIncrementMutexHeldCount

NEW

+20

pw::bluetooth::proxy::AclDataChannel::ConnectionDelegate::HandleAclDataReturn::operator=()

NEW

+20

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

NEW

+20

pw::bluetooth::proxy::internal::GenericL2capChannel

NEW

+20

pw::bluetooth::proxy::internal::L2capChannelImpl::~L2capChannelImpl()

NEW

+20

pw::bluetooth::proxy::internal::L2capLogicalLink

NEW

+20

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

NEW

+20

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

NEW

+20

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

NEW

+20

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

NEW

+20

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

NEW

+20

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

NEW

+20

pw::multibuf::v1::internal::LinkedRegionTracker::DeallocateChunkClass()

NEW

+20

std::__2::uninitialized_move[abi:nqn240000]<>()

NEW

+20

std::__2::unique_lock<>::~unique_lock[abi:nqn240000]()

NEW

+18

pw::Allocator::Allocate()

NEW

+18

pw::allocator::LibCAllocator::DoAllocate()

NEW

+18

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

NEW

+18

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

NEW

+18

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

NEW

+18

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

NEW

+18

pw::containers::internal::GenericAATree::~GenericAATree()

NEW

+18

pw::containers::internal::LegacyIntrusiveList<>::Item::~Item()

NEW

+18

pw::multibuf::v1::internal::LinkedRegionTracker::AllocateChunkClass()

NEW

+18

std::__2::move[abi:nqn240000]<>()

NEW

+16

_GLOBAL__sub_I_l2cap_channel_manager.cc

NEW

+16

_GLOBAL__sub_I_l2cap_channel_sync.cc

NEW

+16

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

NEW

+16

pw::DynamicMap<>::swap()

NEW

+16

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

NEW

+16

pw::bluetooth::emboss::GenericBFrameView<>::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::GenericL2capSignalingCommandView<>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Ok()

NEW

+16

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

NEW

+16

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

NEW

+16

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

NEW

+16

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

NEW

+16

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

NEW

+16

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

NEW

+16

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

NEW

+16

pw::bluetooth::proxy::internal::BorrowedL2capChannel::operator=()

NEW

+16

pw::bluetooth::proxy::internal::CreditBasedFlowControlRxEngine::Reset()

NEW

+16

pw::bluetooth::proxy::internal::L2capLogicalLink::Init()

NEW

+16

pw::containers::internal::GenericAATree::SetRoot()

NEW

+16

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

NEW

+16

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

NEW

+16

std::__2::__throw_system_error()

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

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

NEW

+14

pw::bluetooth::proxy::internal::L2capChannelImpl::ReportNewTxPacketsOrCredits()

NEW

+14

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

NEW

+14

pw::containers::internal::AATreeItem::GetLeftmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRightmost()

NEW

+14

pw::containers::internal::AATreeItem::GetRoot()

NEW

+14

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

NEW

+14

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

NEW

+14

pw::multibuf::v1::SimpleAllocator::DoGetBackingCapacity()

NEW

+12

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

NEW

+12

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

NEW

+12

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

NEW

+12

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

NEW

+12

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

NEW

+12

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

NEW

+12

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

NEW

+12

pw::bluetooth::proxy::internal::ChannelProxyImpl::DoSendAdditionalRxCredits()

NEW

+12

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine::HandlePduFromHost()

NEW

+12

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

NEW

+12

std::__2::__optional_storage_base<>::value[abi:nqn240000]()

NEW

+12

std::__2::__throw_bad_optional_access[abi:nqn240000]()

NEW

+12

std::__2::__throw_bad_variant_access[abi:nqn240000]()

NEW

+12

std::__2::__throw_out_of_range[abi:nqn240000]()

NEW

+12

xTaskGetCurrentTaskHandle

NEW

+10

pw::allocator::LibCAllocator::DoDeallocate()

NEW

+10

pw::allocator::LibCAllocator::~LibCAllocator()

NEW

+10

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

NEW

+10

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

NEW

+10

pw::bluetooth::proxy::internal::BasicModeRxEngine::~BasicModeRxEngine()

NEW

+10

pw::bluetooth::proxy::internal::BasicModeTxEngine::AddCredits()

NEW

+10

pw::bluetooth::proxy::internal::BasicModeTxEngine::~BasicModeTxEngine()

NEW

+10

pw::bluetooth::proxy::internal::ChannelProxyImpl::DoIsWriteAvailable()

NEW

+10

pw::bluetooth::proxy::internal::ChannelProxyImpl::DoWrite()

NEW

+10

pw::bluetooth::proxy::internal::CreditBasedFlowControlTxEngine::~CreditBasedFlowControlTxEngine()

NEW

+10

pw::bluetooth::proxy::internal::L2capChannelImpl::ClearQueue()

NEW

+10

pw::containers::internal::AATreeItem::Reset()

NEW

+10

pw::containers::internal::GenericAATree::swap()

NEW

+10

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

NEW

+10

pw::multibuf::v1::internal::LinkedRegionTracker::Region()

NEW

+8

pw::allocator::AbstractAllocator::DoMeasureFragmentation()

NEW

+8

pw::allocator::GetLibCAllocator()

NEW

+8

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

NEW

+8

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

NEW

+8

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

NEW

+6

pw::allocator::AbstractAllocator::DoGetAllocated()

NEW

+6

pw::allocator::AbstractAllocator::DoGetInfo()

NEW

+6

pw::bluetooth::proxy::internal::BasicModeRxEngine::AddRxCredits()

NEW

+6

pw::bluetooth::proxy::internal::BorrowedL2capChannel::operator->()

NEW

+4

pw::allocator::AbstractAllocator::DoResize()

NEW

+4

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

NEW

+4

pw::bluetooth::proxy::H4PacketWithHci::DoGetH4Type()

NEW

+4

pw::bluetooth::proxy::H4PacketWithHci::DoSetH4Type()

NEW

+4

pw::bluetooth::proxy::internal::GenericL2capChannelImpl::Init()

NEW

+4

pw::bluetooth::proxy::internal::RxEngine::Reset()

NEW

+4

std::__2::nullopt

NEW

+2

__cxa_pure_virtual

NEW

+2

fit::internal::inline_target_get()

NEW

+2

pw::Deallocator::~Deallocator()

NEW

+2

pw::bluetooth::proxy::internal::RxEngine::~RxEngine()

NEW

+2

pw::bluetooth::proxy::internal::TxEngine::~TxEngine()

+99,380

RAM

+8

[section .data]

NEW

+80

xQueueRegistry

NEW

+72

pw::bluetooth::proxy::internal::L2capChannelImpl::static_mutex_

NEW

+72

pw::bluetooth::proxy::internal::L2capChannelManagerImpl::channels_mutex_

NEW

+8

pw::allocator::GetLibCAllocator()::kInstance

NEW

+8

pw::sync::backend::NativeThreadNotification::shared_spin_lock

+248

Roadmap#

  • ACL flow control

  • Sending GATT notifications

  • CMake support

  • Receiving GATT notifications

  • Taking ownership of a L2CAP channel

  • Bazel support

  • And more…

Security#

See pw_bluetooth_proxy threat model for the module-specific threat model.