[roll] Roll fuchsia [display][banjo] Remove layer_cfg_result callee-allocated annotation.

`layer_cfg_result` field in CheckConfiguration() return values is
annotated as "callee-allocated"; the banjo C binding uses
client_t** and size_t* in the function signature so that callee
(driver) can sets the allocated vector and allocation size for the
caller (coordinator).

However, this is not the way layer_cfg_result is used in drivers.
Actually, layer_cfg_result is still caller-allocated but it stores
pointers to layer config results vector for each display. This
violates the banjo binding rules and has no memory safety guarantee.
There may be out-of-boundary access to the caller-provided
layer_cfg_result vector.

To fix this, this change removes the "callee-allocated" annotation
from layer_cfg_result, and makes layer_cfg_result a flattened
one-dimensional array sorted by display first and then by
layer. This way the callee (driver) can make sure that the caller
(coordinator) always provides valid storage for the output and
it completely complies with the banjo specification.

This change updates all drivers and display coordinator with the
updated CheckConfiguration() API.

Test: //src/graphics/display/drivers
Original-Bug: 130426
Original-Bug: 130427
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/882891
Original-Revision: 24a03c6391ab6adbbc86e36e9e35b080ee27536e
GitOrigin-RevId: 1e011c445a1f6ca9891ebaecfeb19fe580697a9f
Change-Id: I1f7010b19f468cea54de75032f68a166384f75c9
1 file changed
tree: d77a9db7f8bd4b6dced3a5e52382602e719e2beb
  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.