crosvm/common
Noah Gold c286772db8 base: upstream Tube cross platform support.
Upstreams support for Tubes on Windows, splitting Tube into platform
specific files. This contains several critical enhancements:

* POSIX Tubes support multi producer multi consumer configurations, but
  Windows has remained strictly SPSC for each direction. Windows cannot
  support MPMC, and that configuration is not really something we want
  either. To address that, this CL introduces directional Tubes. A
  SendTube is clonable, and a RecvTube is not, which gives us MPSC.

* This CL also fixes multiple interface conflicts that have developed
  between Linux & Windows:
    + send wasn't async on the Linux AsyncTube.
    + send data wasn't passed as owned on the Linux AsyncTube.
    + Adds the 'static constraint for AsyncTube::send on POSIX. This is an
      requirement on Windows.
    + Event::read_timeout doesn't need to take &mut self, and it wasn't
      downstream. This CL switches to &self.

* Adds the missing notifier.rs file in base.

Note that this CL does not attempt to remove balloon's usage of
Tube::try_clone. That's a somewhat involved issue that should be tackled in
its own CL.

Test: tested downstream on Windows & Linux bots, upstream on Linux bots.

Bug: b:221484449

Change-Id: I288dbc1d1e42f8ce08258cdaaf85100ca93721ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3536897
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Noah Gold <nkgold@google.com>
2022-03-22 19:00:54 +00:00
..
assertions crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
audio_streams audio_streams: Add async interface to remove dependency on cros_async 2022-03-15 17:29:21 +00:00
balloon_control crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
cros-fuzz crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
cros_async Refactoring script: Copy common/cros_async to cros_async 2022-03-21 19:52:56 +00:00
cros_asyncv2 crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
data_model Upstream data_model 2022-03-10 18:48:52 +00:00
io_uring Refactoring script: Copy common/io_uring to io_uring 2022-03-21 19:52:56 +00:00
p9 crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
sync crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
sys_util base: upstream Tube cross platform support. 2022-03-22 19:00:54 +00:00
sys_util_core Refactoring: use super:: instead of crate:: 2022-03-16 23:59:29 +00:00
win_sys_util base: upstream Tube cross platform support. 2022-03-22 19:00:54 +00:00
win_util Upstream win_util 2022-03-14 20:39:10 +00:00
README.md docs: Use mdformat to format markdown files 2022-01-27 21:29:11 +00:00

Crosvm General Purpose Libraries

The crates in this folder are general purpose libraries used by other projects in ChromeOS as well.

To make them accessible independendly of crosvm, each of these crates is excluded from the crosvm workspace.

List of libraries

  • cros-fuzz: Support crate for fuzzing rust code in ChromeOS
  • p9: Server implementation of the 9p file system protocol