[roll] Roll fuchsia [bt][usb] Modernize & test bt-transport-usb

Add test coverage for bt-transport-usb driver, including sending
commands, receiving events, sending ACL packets, and receiving ACL
packets.

Fix use-after-free caused by hci_unbind not waiting for read thread to
complete. The read thread now starts in hci_bind and is joined
in hci_unbind (starting/stopping when channels are created/destroyed
results in race conditions).

Convert bt-transport-usb to C-style C++ and fix compiler errors and
warnings (e.g. casting, gotos).

Rename bt-transport-usb files to use underscores.

Move bt-transport-usb driver code to bt_transport_usb namespace.

Migrate the bt-transport-usb driver to the DDKTL C++ driver library.

Add add variable/method compiler flags for lock requirements and fix
violations.

Refactor Device::BtHciOpenSnoopChannel to clarify use of snoop_watch_
and prevent snoop channels from notifying the read thread. Add a
test for configuring the snoop channel multiple times.

Original-Bug: 87450
Test: fx test bt-transport-usb-tests
Multiply: bt-transport-usb-tests: 4

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/596069
Original-Revision: e03d964954e866b9e8024ea59b6162bd964c7ca3
GitOrigin-RevId: 747dcd3d06c50c4a78cc05079c27d42b8bedba69
Change-Id: If9bd3b0b15a043cc13c025e89dd19805ab1b974e
1 file changed
tree: 907645c0a0313447f3f8c6a2f221efd431419650
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.