[roll] Roll fuchsia [uart] Introduce TakeUart.

For both all::KernelDriver and uart::KernelDriver TakeUart moves the
uart from one object to another.

For uart::all::Driver we introduce std::monostate as the move_from
state, and attempting to visit the uart in this state, will cause an
abort. This is only useful to detect logging in certain spots where the
handoff is in progress and it's for a very short window.

In order to simplify the dispatch and handling of this state, an
internal helper class, VariantVisitor is introduced. It essentially
wraps the provided callback provided to visit and special cases
std::monostate to produce an abort if it's the active instance, otherwise
forwards the arguments to the provided callback.

That said, uart() accessors cannot be removed for out of tree
dependencies at this point. As soon as those are migrated, we can follow
up and remove them from here.

Original-Bug: 42084617
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1121695
Original-Revision: aae453fc11ef601baf3ae01b356dfa41dc561e50
GitOrigin-RevId: bc77c96842df9a0cd712eb3c9bb0187c942553cd
Change-Id: If55eac4a1c92746e45394db1e3169802fa6403b0
1 file changed
tree: 626338c191c7291d4414841fae8515b70d8e165f
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
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 in one of the communication channels documented at get involved.

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.