[roll] Roll fuchsia [fidl][cpp] Prepare to add natural sync event handler

This CL shaves some yaks to streamline adding a sync event handler:

- Share the dispatch logic between sync event handler and async event
  handler. It required a few tweaks on the async client innards but
  otherwise reduces duplicated logic.
- Introduce another message storage class that allocates the max of all
  events defined in a protocol. This would be shared between
  wire/natural event reading.
- Fixed a bug where we should prepare to read ZX_CHANNEL_MAX_MSG_HANDLES
  handles when one of the event has a flexible envelope, instead of the
  precise maximum determined from the shape of events.
- We no longer panic when receiving an async event in a transport that
  does not support events. Reasoning being an adversary could simply
  sent a message with a txid of zero to crash a receiving driver
  otherwise.
- A couple of tricks to reduce the length of generated code.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/681664
Original-Revision: cfa5e92439b6baecf5b84cf6887023afc9f2e8da
GitOrigin-RevId: 75324e3ff960435890cffaddd4b20a282bba93aa
Change-Id: I143173662a39f354086212f8da7155b145952d78
1 file changed
tree: 825528c6474a07409c8b1f7d422faa22ed25c8b4
  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
  12. 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.