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#

pw::bluetooth::proxy::ProxyHost#

class ProxyHost#

ProxyHost acts as the main coordinator for proxy functionality. After creation, the container then passes packets through the proxy.

Public Functions

ProxyHost(
pw::Function<void(H4PacketWithHci &&packet)> &&send_to_host_fn,
pw::Function<void(H4PacketWithH4 &&packet)> &&send_to_controller_fn,
uint16_t le_acl_credits_to_reserve,
uint16_t br_edr_acl_credits_to_reserve,
)#

Creates an ProxyHost that will process HCI packets.

Parameters:
  • send_to_host_fn[in] Callback that will be called when proxy wants to send HCI packet towards the host.

  • send_to_controller_fn[in] - Callback that will be called when proxy wants to send HCI packet towards the controller.

  • le_acl_credits_to_reserve[in] - How many buffers to reserve for the proxy out of any LE ACL buffers received from controller.

  • br_edr_acl_credits_to_reserve[in] - How many buffers to reserve for the proxy out of any BR/EDR ACL buffers received from controller.

~ProxyHost()#

Deregisters all channels, and if any channels are not yet closed, closes them and sends L2capChannelEvent::kChannelClosedByOther.

void HandleH4HciFromHost(H4PacketWithH4 &&h4_packet)#

Called by container to ask proxy to handle a H4 HCI packet sent from the host side towards the controller side. Proxy will in turn call the send_to_controller_fn provided during construction to pass the packet on to the controller. Some packets may be modified, added, or removed.

The proxy host currently does not require any from-host packets to support its current functionality. It will pass on all packets, so containers can choose to just pass all from-host packets through it.

Container is required to call this function synchronously (one packet at a time).

void HandleH4HciFromController(H4PacketWithHci &&h4_packet)#

Called by container to ask proxy to handle a H4 packet sent from the controller side towards the host side. Proxy will in turn call the send_to_host_fn provided during construction to pass the packet on to the host. Some packets may be modified, added, or removed.

To support all of its current functionality, the proxy host needs at least the following from-controller packets passed through it. It will pass on all other packets, so containers can choose to just pass all from-controller packets through the proxy host.

All packets of this type:

  • L2CAP over ACL packets (specifically those addressed to channels managed by the proxy host, including signaling packets)

HCI_Command_Complete events (7.7.14) containing return parameters for these commands:

  • HCI_LE_Read_Buffer_Size [v1] command (7.8.2)

  • HCI_LE_Read_Buffer_Size [v2] command (7.8.2)

These HCI event packets:

  • HCI_Number_Of_Completed_Packets event (7.7.19)

  • HCI_Disconnection_Complete event (7.7.5)

Container is required to call this function synchronously (one packet at a time).

void Reset()#

Called when an HCI_Reset Command packet is observed. Proxy resets its internal state. Deregisters all channels, and if any channels are not yet closed, closes them and sends L2capChannelEvent::kReset.

May also be called by container to notify proxy that the Bluetooth system is being otherwise reset.

Warning: Outstanding H4 packets are not invalidated upon reset. If they are destructed post-reset, packets generated post-reset are liable to be overwritten prematurely.

void RegisterL2capStatusDelegate(L2capStatusDelegate &delegate)#

Register for notifications of connection and disconnection for a particular L2cap service identified by its PSM.

Parameters:

delegate[in] A delegate that will be notified when a successful L2cap connection is made on its PSM. Note: This must outlive the ProxyHost.

void UnregisterL2capStatusDelegate(L2capStatusDelegate &delegate)#

Unregister a service delegate.

Parameters:

delegate[in] The delegate to unregister. Must have been previously registered.

pw::Result<L2capCoc> AcquireL2capCoc(
pw::multibuf::MultiBufAllocator &rx_multibuf_allocator,
uint16_t connection_handle,
L2capCoc::CocConfig rx_config,
L2capCoc::CocConfig tx_config,
Function<void(multibuf::MultiBuf &&payload)> &&receive_fn,
ChannelEventCallback &&event_fn,
)#

Returns an L2CAP connection-oriented channel that supports writing to and reading from a remote peer.

Parameters:
  • rx_multibuf_allocator[in] Provides the allocator the channel will use for its Rx buffers (for both queueing and returning to the client).

  • connection_handle[in] The connection handle of the remote peer.

  • rx_config[in] Parameters applying to reading packets. See l2cap_coc.h for details.

  • tx_config[in] Parameters applying to writing packets. See l2cap_coc.h for details.

  • receive_fn[in] Read callback to be invoked on Rx SDUs.

  • event_fn[in] Handle asynchronous events such as errors and flow control events encountered by the channel. See l2cap_channel_event.h.

Returns:

Code

Description

INVALID_ARGUMENT

If arguments are invalid (check logs). UNAVAILABLE: If channel could not be created because no memory was available to accommodate an additional ACL connection.

pw::Status SendAdditionalRxCredits(uint16_t connection_handle, uint16_t local_cid, uint16_t additional_rx_credits)#

TODO: https://pwbug.dev/380076024 - Delete after downstream client uses this method on L2capCoc.

Deprecated:

Use L2capCoc::SendAdditionalRxCredits instead.

pw::Result<BasicL2capChannel> AcquireBasicL2capChannel(
multibuf::MultiBufAllocator &rx_multibuf_allocator,
uint16_t connection_handle,
uint16_t local_cid,
uint16_t remote_cid,
AclTransportType transport,
OptionalPayloadReceiveCallback &&payload_from_controller_fn,
OptionalPayloadReceiveCallback &&payload_from_host_fn,
ChannelEventCallback &&event_fn,
)#

Returns an L2CAP channel operating in basic mode that supports writing to and reading from a remote peer.

Parameters:
  • rx_multibuf_allocator[in] Provides the allocator the channel will use for its Rx buffers (for both queueing and returning to the client).

  • connection_handle[in] The connection handle of the remote peer.

  • local_cid[in] L2CAP channel ID of the local endpoint.

  • remote_cid[in] L2CAP channel ID of the remote endpoint.

  • transport[in] Logical link transport type.

  • payload_from_controller_fn[in] Read callback to be invoked on Rx SDUs. Return value of passed-in multibuf indicates the packet should be forwarded on to host.

  • payload_from_host_fn[in] Read callback to be invoked on Tx SDUs. Return value of passed-in multibuf indicates the packet should be forwarded on to the controller.

  • event_fn[in] Handle asynchronous events such as errors encountered by the channel. See l2cap_channel_common.h.

Returns:

Code

Description

INVALID_ARGUMENT

If arguments are invalid (check logs). UNAVAILABLE: If channel could not be created because no memory was available to accommodate an additional ACL connection.

pw::Result<GattNotifyChannel> AcquireGattNotifyChannel(
int16_t connection_handle,
uint16_t attribute_handle,
ChannelEventCallback &&event_fn,
)#

Returns a GATT Notify channel channel that supports sending notifications to a particular connection handle and attribute.

Parameters:
  • connection_handle[in] The connection handle of the peer to notify. Maximum valid connection handle is 0x0EFF.

  • attribute_handle[in] The attribute handle the notify should be sent on. Cannot be 0.

  • event_fn[in] Handle asynchronous events such as errors and flow control events encountered by the channel. See l2cap_channel_event.h.

Returns:

Code

Description

INVALID_ARGUMENT

If arguments are invalid (check logs). UNAVAILABLE: If channel could not be created because no memory was available to accommodate an additional ACL connection.

pw::Result<RfcommChannel> AcquireRfcommChannel(
multibuf::MultiBufAllocator &rx_multibuf_allocator,
uint16_t connection_handle,
RfcommChannel::Config rx_config,
RfcommChannel::Config tx_config,
uint8_t channel_number,
Function<void(multibuf::MultiBuf &&payload)> &&payload_from_controller_fn,
ChannelEventCallback &&event_fn,
)#

Returns an RFCOMM channel that supports writing to and reading from a remote peer.

Parameters:
  • rx_multibuf_allocator[in] Provides the allocator the channel will use for its Rx buffers (for both queueing and returning to the client).

  • connection_handle[in] The connection handle of the remote peer.

  • rx_config[in] Parameters applying to reading packets. See rfcomm_channel.h for details.

  • tx_config[in] Parameters applying to writing packets. See rfcomm_channel.h for details.

  • channel_number[in] RFCOMM channel number to use.

  • payload_from_controller_fn[in] Read callback to be invoked on Rx frames.

  • event_fn[in] Handle asynchronous events such as errors encountered by the channel. See l2cap_channel_common.h.

Returns:

Code

Description

INVALID_ARGUMENT

If arguments are invalid (check logs). UNAVAILABLE: If channel could not be created.

bool HasSendLeAclCapability() const#

Indicates whether the proxy has the capability of sending LE ACL packets. Note that this indicates intention, so it can be true even if the proxy has not yet or has been unable to reserve credits from the host.

bool HasSendBrEdrAclCapability() const#

Indicates whether the proxy has the capability of sending BR/EDR ACL packets. Note that this indicates intention, so it can be true even if the proxy has not yet or has been unable to reserve credits from the host.

uint16_t GetNumFreeLeAclPackets() const#

Returns the number of available LE ACL send credits for the proxy. Can be zero if the controller has not yet been initialized by the host.

uint16_t GetNumFreeBrEdrAclPackets() const#

Returns the number of available BR/EDR ACL send credits for the proxy. Can be zero if the controller has not yet been initialized by the host.

Public Static Functions

static inline constexpr size_t GetNumSimultaneousAclSendsSupported()#

Returns the max number of LE ACL sends that can be in-flight at one time. That is, ACL packets that have been sent and not yet released.

static inline constexpr size_t GetMaxAclSendSize()#

Returns the max LE ACL packet size supported to be sent.

static inline constexpr size_t GetMaxNumAclConnections()#

Returns the max number of simultaneous LE ACL connections supported.

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,380

[section .rodata]

+160

pw::Result<>::value()

-8

vClearInterruptMaskFromISR

+4

__bi_84

+212

main

NEW

+2,128

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

NEW

+1,184

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

NEW

+1,160

pw::bluetooth::MakeEmbossView<>()

NEW

+676

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

NEW

+600

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

NEW

+500

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

NEW

+496

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

NEW

+440

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

NEW

+420

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

+376

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

pw::Vector<>::erase()

NEW

+216

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

NEW

+192

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

NEW

+192

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

NEW

+188

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

NEW

+184

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

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::Recombiner::RecombineFragment()

NEW

+180

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

NEW

+180

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

NEW

+180

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

NEW

+176

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

NEW

+168

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

NEW

+168

vTaskPriorityDisinheritAfterTimeout

NEW

+162

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

NEW

+160

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

NEW

+160

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

NEW

+156

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

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::L2capChannel::~L2capChannel()

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::L2capChannel::MoveFields()

NEW

+140

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

NEW

+140

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

NEW

+140

xTaskPriorityInherit

NEW

+136

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

NEW

+132

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

NEW

+132

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

NEW

+132

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

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::ProxyHost::HandleCommandFromHost()

NEW

+120

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

NEW

+120

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

NEW

+116

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

NEW

+112

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

NEW

+112

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

NEW

+112

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

NEW

+106

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

NEW

+104

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

NEW

+104

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

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::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::BasicL2capChannel::DoHandlePduFromController()

NEW

+100

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

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

+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::DequeuePacket()

NEW

+96

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

NEW

+92

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

NEW

+92

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

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+88

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

NEW

+84

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

NEW

+84

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

NEW

+84

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

NEW

+84

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

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

+76

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

NEW

+76

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

NEW

+76

pw::containers::internal::DequeIterator<>::Incr()

NEW

+72

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

NEW

+72

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

NEW

+72

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

NEW

+72

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

NEW

+72

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

NEW

+72

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

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

+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

+66

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

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::BasicL2capChannel::~BasicL2capChannel()

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::containers::internal::DequeIterator<>::operator*()

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

_ZNSt3__29__destroyB8nn210000IN2pw10containers8internal13DequeIteratorINS1_16BasicInlineDequeINS1_8multibuf8MultiBufEtLj4294967295EEEEEEET_SA_SA_

NEW

+60

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

NEW

+60

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

NEW

+60

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

NEW

+60

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

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

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::H4PacketWithH4::operator=()

NEW

+56

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

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::L2capAclUSignalingChannel

NEW

+52

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

NEW

+52

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

NEW

+52

pw::bluetooth::proxy::L2capLeUSignalingChannel

NEW

+52

pw::bluetooth::proxy::L2capSignalingChannel

NEW

+52

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

NEW

+52

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

NEW

+50

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

NEW

+50

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

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::BasicL2capChannel

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::ProxyHost::HandleH4HciFromHost()

NEW

+48

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

NEW

+48

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

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

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth5proxy14H4PacketWithH4ELb0EEC2INS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleIS7_OT_EE5valueEiE4typeELi0EEESB_

NEW

+40

_ZN2pw15internal_result12StatusOrDataINS_9bluetooth5proxy14H4PacketWithH4ELb0EEC2IRKNS_6StatusETnNSt3__29enable_ifIXsr3std16is_constructibleIS7_OT_EE5valueEiE4typeELi0EEESD_

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

NEW

+40

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

NEW

+40

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

NEW

+40

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

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

+34

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

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::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::bluetooth::proxy::L2capChannel::operator=()

NEW

+30

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

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::HciTransport::~HciTransport()

NEW

+28

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

NEW

+28

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

NEW

+28

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

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::containers::internal::GenericDequeBase<>::PushBack()

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

NEW

+24

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

NEW

+24

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

NEW

+24

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

NEW

+24

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

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_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::GenericDeque<>::EmplaceBackUnchecked<>()

NEW

+22

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

NEW

+22

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

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_baseIN2pw8multibuf8MultiBufELb0EED2B8nn210000Ev

NEW

+20

_ZNSt3__224__optional_destruct_baseIN2pw9bluetooth5proxy18LockedL2capChannelELb0EED2B8nn210000Ev

NEW

+20

_ZNSt3__27destroyB8nn210000IN2pw10containers8internal13DequeIteratorINS1_16BasicInlineDequeINS1_8multibuf8MultiBufEtLj4294967295EEEEEEEvT_SA_

NEW

+20

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

NEW

+20

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

NEW

+20

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

NEW

+20

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

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

_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::H4PacketWithH4::GetH4Type()

NEW

+16

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

NEW

+16

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

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::L2capLeUSignalingChannel::~L2capLeUSignalingChannel()

NEW

+16

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

NEW

+16

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

NEW

+16

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

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

NEW

+12

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

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

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

NEW

+10

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

NEW

+10

std::__2::__libcpp_verbose_abort()

NEW

+8

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

NEW

+8

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

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

+62,424

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…