[roll] Roll fuchsia [aml-securemem] Adopt isolated state

Adopting the isolated state async patterns described in
I25561c689ff86c477bd5dc78290e0d0557bb757c. This gets rid of a lot of
thread checking and jumping code.

The threading model remains broadly unchanged but the points of thread
hopping have been shifted to object boundaries:

Prior to the CL:
- AmlogicSecureMemDevice gets called from both the DDK dispatcher and
  the SysmemSecureMemServer's async::Loop. It then uses a ClosureQueue
  to hop to the right dispatcher (DDK dispatcher).
- SysmemSecureMemServer also gets called from both the DDK dispatcher
  and its own async::Loop. It also uses a ClosureQueue to hop to the
  right dispatcher (async::Loop dispatcher).

After the CL:
- AmlogicSecureMemDevice is only used from the DDK dispatcher.
- SysmemSecureMemServer is only used from an async::Loop dispatcher,
  which the AmlogicSecureMemDevice device owns.
- Communication between these objects happen via DispatcherBound and
  async_patterns::Receiver.
- SysmemSecureMemServer stops the FIDL connection on destruction.

Each object is used from their associated dispatcher, the thread
hopping is encapsulated by the async_patterns library. So all the
ClosureQueue usages are removed.

Tried to simplify/rewrite comments that no longer apply.

Test: ran the `core.sherlock-release` bot. played some DRM-ed video on
hardware.

Cq-Include-Trybots: luci.turquoise.global.try:run-postsubmit-tryjobs

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/818968
Original-Revision: 66044694e2cf7226e2dfc363515b37c6b370d62d
GitOrigin-RevId: 97c0a7cebb95dbf42a5ca3de5b802c7bba789e74
Change-Id: I43dea34c0f771a76711ad18fa97f5db6887cb616
1 file changed
tree: 3e5fe75ef45d3b546d63ffae9d6915162f8eee60
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. 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 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.