vm_control/any_control_tube.rs
1// Copyright 2026 The ChromiumOS Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5use base::Tube;
6
7/// All the tube types that can be "registered" with the platform specific `fn run_control`
8/// implementation. These tubes are generally one half of a tube pair, with the other half held by
9/// a device.
10#[remain::sorted]
11pub enum AnyControlTube {
12 // See `BalloonTube`.
13 Balloon(Tube),
14 // Sends `DiskControlCommand`.
15 Disk(Tube),
16 /// Receives `FsMappingRequest`.
17 Fs(Tube),
18 // Sends `GpuControlCommand`.
19 Gpu(Tube),
20 /// Receives `IrqHandlerRequest`.
21 IrqTube(Tube),
22 // Sends `PvClockCommand`.
23 PvClock(Tube),
24 // Sends `SndControlCommand`.
25 Snd(Tube),
26 /// Receives `VmRequest`.
27 Vm(Tube),
28 VmMemoryTube {
29 tube: Tube,
30 /// See devices::virtio::VirtioDevice.expose_shared_memory_region_with_viommu
31 expose_with_viommu: bool,
32 },
33 /// Receives `VmMemoryMappingRequest`.
34 VmMsync(Tube),
35}