windows: move vm_evt_wrtube/rdtube out of Config

Config should contain only configuration data (e.g. flags, paths, etc.),
not objects used at runtime like tubes and events. The Windows code
currently passes a few Tubes from the broker to child processes via
Config, which this patch begins moving to a separate BrokerTubes struct
that will be serialized and sent over the bootstrap tube from the broker
after the Config struct.

This helps clean up the cross-platform Config struct, as well as fixing
the `crosvm run` command (which does not use the broker) on Windows;
previously the vm_evt_wrtube and vm_evt_rdtube were missing in this
case.

BUG=None
TEST=tools/presubmit --all
TEST=Boot x86-64 Linux kernel with crosvm run on Windows

Change-Id: Ida00ec3948f09735fcdc333b3b5f217dca9fdbb9
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4108782
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
3 files changed
tree: 6235a9e7d16ff8f9ac4c093b91819b495c0ab9d2
  1. .cargo/
  2. .devcontainer/
  3. .github/
  4. .vscode/
  5. aarch64/
  6. acpi_tables/
  7. anti_tamper/
  8. arch/
  9. argh_helpers/
  10. base/
  11. bit_field/
  12. broker_ipc/
  13. common/
  14. crash_report/
  15. cros_async/
  16. cros_fdt/
  17. cros_tracing/
  18. crosvm-fuzz/
  19. crosvm_cli/
  20. crosvm_control/
  21. crosvm_plugin/
  22. devices/
  23. disk/
  24. docs/
  25. e2e_tests/
  26. fuse/
  27. gpu_display/
  28. hypervisor/
  29. infra/
  30. io_uring/
  31. kernel_cmdline/
  32. kernel_loader/
  33. kvm/
  34. kvm_sys/
  35. libcras_stub/
  36. linux_input_sys/
  37. logo/
  38. media/
  39. metrics/
  40. net_sys/
  41. net_util/
  42. power_monitor/
  43. prebuilts/
  44. proto_build_tools/
  45. protos/
  46. qcow_utils/
  47. resources/
  48. rutabaga_gfx/
  49. sandbox/
  50. seccomp/
  51. serde_keyvalue/
  52. src/
  53. swap/
  54. system_api/
  55. tests/
  56. third_party/
  57. tools/
  58. tpm2/
  59. tpm2-sys/
  60. tube_transporter/
  61. usb_sys/
  62. usb_util/
  63. vfio_sys/
  64. vhost/
  65. virtio_sys/
  66. vm_control/
  67. vm_memory/
  68. win_audio/
  69. win_util/
  70. x86_64/
  71. .dockerignore
  72. .gitignore
  73. .gitmodules
  74. .rustfmt.toml
  75. ARCHITECTURE.md
  76. build.rs
  77. Cargo.lock
  78. Cargo.toml
  79. CONTRIBUTING.md
  80. DIR_METADATA
  81. LICENSE
  82. mypy.ini
  83. OWNERS
  84. OWNERS_COUNCIL
  85. PRESUBMIT.cfg
  86. pyproject.toml
  87. README.chromeos.md
  88. README.md
  89. rust-toolchain
README.md

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linux’s KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesn’t emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on ChromeOS devices.

Logo