[roll] Roll fuchsia [zircon][kernel] iovec support for channels
This CL implements the kernel side of RFC-0010. Please refer to that RFC
for higher-level questions regarding motivations and alternatives.
When the ZX_CHANNEL_WRITE_USE_IOVEC option is provided to the
zx_channel_{write,write_etc,call,call_etc} syscalls, the `bytes`
argument is reinterpreted as an array of zx_channel_iovec_t, which refer
to multiple userspace byte arrays that should be copied into the message
buffer.
The BufferChain is updated in this CL to support allocating more pages
than are needed and freeing the unused ones before sending the message.
This has the advantage of avoiding multiple allocations of pages in the
case where the size of the final buffer is initially unknown.
Original-Bug: 65677
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/448877
Original-Revision: f4858b82ce3240b52f910bb631b5c5876e3e9049
GitOrigin-RevId: 050e2da6982df64c143b577d5b199073c2d73a0e
Change-Id: I8b427d2567c0ae29048f4b8c343bdd53b14903b2
This repository contains Fuchsia's Global Integration manifest files.
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.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.