devices: virtio: pass GuestMemory to queue activate

Now that an active Queue is a separate type than the pre-activation
QueueConfig, we can ensure that a Queue has a valid reference to the
GuestMemory at creation time instead of passing it to every queue
operation.

No functional change, but simplifies Queue callers and prepares for
use of AtomicU* types in a later change.

BUG=b:264931437
TEST=tools/dev_container tools/presubmit

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